Wie der Glob-Musterfilter funktioniert
Code2Prompt verwendet Glob-Muster, um Dateien und Verzeichnisse einzuschließen oder auszuschließen, ähnlich wie Tools wie tree oder grep. Es ermöglicht Ihnen, zwei unabhängige Listen von Glob-Mustern zu übergeben:
- Include-Liste (
--includeoder-i) - “Diese Muster erlauben Dateien” - Exclude-Liste (
--excludeoder-e) - “Diese Muster verbieten Dateien”
Code2prompt muss für jede Datei im Projekt entscheiden, ob sie beibehalten oder verworfen wird. Diese Seite erklärt die Regeln und die dahinter stehenden Design-Entscheidungen.
1. Mengen und Symbole
Abschnitt betitelt „1. Mengen und Symbole“Während der Erklärung verwenden wir die übliche Mengennotation
| Symbol | Bedeutung |
|---|---|
| Menge der Dateien, die mindestens ein Include-Muster treffen | |
| Menge der Dateien, die mindestens ein Exclude-Muster treffen | |
| der gesamte Projektbaum (das Universum) | |
| Dateien, die beide Listen treffen (die Überschneidung) | |
| Dateien, die keine Liste treffen |
2. Vier Situationen
Abschnitt betitelt „2. Vier Situationen“Übersicht der vier Situationen
Abschnitt betitelt „Übersicht der vier Situationen“| Include-Liste | Exclude-Liste | Behaltene Dateien |
|---|---|---|
| A = ∅ | B = ∅ | Ω |
| A = ∅ | B ≠ ∅ | ¬B |
| A ≠ ∅ | B = ∅ | A |
| A ≠ ∅ | B ≠ ∅ | A \ B |
-
Keine Include-Liste, keine Exclude-Liste
Wenn keine Muster angegeben sind, werden alle Dateien beibehalten (
Ω). -
Nur Exclude-Liste
In diesem Fall fungiert Code2Prompt als Blacklist und entfernt Dateien, die den ausgeschlossenen Mustern entsprechen (
Ω \ B = ¬B). -
Nur Include-Liste
Wenn nur eine Include-Liste angegeben ist, fungiert Code2Prompt als Whitelist und behält nur Dateien, die den eingeschlossenen Mustern entsprechen (
A). -
Include- und Exclude-Listen
Wenn beide Listen angegeben sind, behält Code2Prompt Dateien, die den Include-Mustern entsprechen, entfernt aber diejenigen, die den Exclude-Mustern entsprechen (
A \ B).
3. Mehr über die Überschneidung
Abschnitt betitelt „3. Mehr über die Überschneidung“Mit beiden Listen vorhanden (A ≠ ∅, B ≠ ∅) haben Sie vier logische Möglichkeiten
für die Überschneidung C und den Rest D.
C gewünscht? | D gewünscht? | Vernünftig? |
|---|---|---|
| Nein | Nein | Standardverhalten (A \ B) |
| Ja | Nein | Gleiches Verhalten wie Fall 3 (A) |
| Nein | Ja | überraschend (“verwerfe was ich angefordert habe C, behalte was nicht”) |
| Ja | Ja | Gleiches Verhalten wie Fall 1 (Ω) |
Aus diesem Grund wurde die Option --include-priority entfernt. Denn es wäre das gleiche Ergebnis, als hätten Sie nur eine Include-Liste (Fall 3).
4. Schnelle Referenztabelle
Abschnitt betitelt „4. Schnelle Referenztabelle“| Behalten möchten… | Verwenden |
|---|---|
| alles | kein -i, kein -e |
| alles außer bestimmten Mustern | nur -e |
| nur was den Mustern entspricht | nur -i |
was -i entspricht, minus was -e entspricht | -i und -e |
Dieses Design hält das mentale Modell einfach:
- Die Include-Liste ist eine Whitelist, sobald sie existiert.
- Die Exclude-Liste ist eine darüber gelegte Blacklist.
- Die Überschneidung wird standardmäßig verworfen