Comment fonctionne le filtre de modèle Glob
Code2Prompt utilise des modèles glob pour inclure ou exclure des fichiers et répertoires, fonctionnant de manière similaire à des outils comme tree ou grep. Il vous permet de passer deux listes indépendantes de modèles glob :
- liste d’inclusion (
--includeou-i) - “ces modèles autorisent les fichiers” - liste d’exclusion (
--excludeou-e) - “ces modèles interdisent les fichiers”
Code2prompt doit décider, pour chaque fichier du projet, s’il est conservé ou écarté. Cette page explique les règles et les choix de conception qui les sous-tendent.
1. Ensembles et Symboles
Section intitulée « 1. Ensembles et Symboles »Tout au long de l’explication, nous utilisons la notation d’ensemble habituelle
| Symbole | Signification |
|---|---|
| ensemble des fichiers qui correspondent à au moins un modèle d’inclusion | |
| ensemble des fichiers qui correspondent à au moins un modèle d’exclusion | |
| l’arbre de projet entier (l’univers) | |
| fichiers qui correspondent aux deux listes (le chevauchement) | |
| fichiers qui ne correspondent à aucune liste |
2. Quatre Situations
Section intitulée « 2. Quatre Situations »Aperçu des quatre situations
Section intitulée « Aperçu des quatre situations »| Liste d’inclusion | Liste d’exclusion | Fichiers conservés |
|---|---|---|
| A = ∅ | B = ∅ | Ω |
| A = ∅ | B ≠ ∅ | ¬B |
| A ≠ ∅ | B = ∅ | A |
| A ≠ ∅ | B ≠ ∅ | A \ B |
-
Pas de liste d’inclusion, pas de liste d’exclusion
Si aucun modèle n’est spécifié, tous les fichiers sont conservés (
Ω). -
Liste d’exclusion seulement
Dans ce cas, Code2Prompt agit comme une liste noire, supprimant les fichiers qui correspondent aux modèles exclus (
Ω \ B = ¬B). -
Liste d’inclusion seulement
Si seule une liste d’inclusion est spécifiée, Code2Prompt agit comme une liste blanche, ne conservant que les fichiers qui correspondent aux modèles inclus (
A). -
Listes d’inclusion et d’exclusion
Si les deux listes sont spécifiées, Code2Prompt conserve les fichiers qui correspondent aux modèles d’inclusion, mais supprime ceux qui correspondent aux modèles d’exclusion (
A \ B).
3. Plus sur le chevauchement
Section intitulée « 3. Plus sur le chevauchement »Avec les deux listes présentes (A ≠ ∅, B ≠ ∅), vous avez quatre possibilités logiques
pour le chevauchement C et le reste D.
Vouloir C ? | Vouloir D ? | Raisonnable ? |
|---|---|---|
| Non | Non | Comportement par défaut (A \ B) |
| Oui | Non | Même comportement que le cas 3 (A) |
| Non | Oui | surprenant (“écarter ce que j’ai demandé C, garder ce que je n’ai pas”) |
| Oui | Oui | Même comportement que le cas 1 (Ω) |
C’est pour cette raison que l’option --include-priority a été supprimée. Parce que ce serait le même résultat que si vous n’aviez qu’une liste d’inclusion (cas 3).
4. Table de référence rapide
Section intitulée « 4. Table de référence rapide »| Vous voulez garder… | Utilisez |
|---|---|
| tout | pas de -i, pas de -e |
| tout sauf certains modèles | -e seulement |
| seulement ce qui correspond aux modèles | -i seulement |
ce qui correspond à -i, moins ce qui correspond à -e | -i et -e |
Cette conception maintient le modèle mental simple :
- La liste d’inclusion est une liste blanche dès qu’elle existe.
- La liste d’exclusion est une liste noire superposée par-dessus.
- Le chevauchement est écarté par défaut