Cómo funciona el filtro de patrones Glob
Code2Prompt utiliza patrones glob para incluir o excluir archivos y directorios, funcionando de manera similar a herramientas como tree o grep. Te permite pasar dos listas independientes de patrones glob:
- lista de inclusión (
--includeo-i) - “estos patrones permiten archivos” - lista de exclusión (
--excludeo-e) - “estos patrones prohíben archivos”
Code2prompt debe decidir, para cada archivo en el proyecto, si se conserva o se descarta. Esta página explica las reglas y las decisiones de diseño que las respaldan.
1. Conjuntos y Símbolos
Sección titulada «1. Conjuntos y Símbolos»A lo largo de la explicación usamos la notación de conjuntos habitual
| Símbolo | Significado |
|---|---|
| conjunto de archivos que coinciden con al menos un patrón de inclusión | |
| conjunto de archivos que coinciden con al menos un patrón de exclusión | |
| todo el árbol del proyecto (el universo) | |
| archivos que coinciden con ambas listas (la superposición) | |
| archivos que no coinciden con ninguna lista |
2. Cuatro Situaciones
Sección titulada «2. Cuatro Situaciones»Resumen de las cuatro situaciones
Sección titulada «Resumen de las cuatro situaciones»| Lista de inclusión | Lista de exclusión | Archivos conservados |
|---|---|---|
| A = ∅ | B = ∅ | Ω |
| A = ∅ | B ≠ ∅ | ¬B |
| A ≠ ∅ | B = ∅ | A |
| A ≠ ∅ | B ≠ ∅ | A \ B |
-
Sin lista de inclusión, sin lista de exclusión
Si no se especifican patrones, se conservan todos los archivos (
Ω). -
Solo lista de exclusión
En este caso, Code2Prompt actúa como una lista negra, eliminando archivos que coinciden con los patrones excluidos (
Ω \ B = ¬B). -
Solo lista de inclusión
Si solo se especifica una lista de inclusión, Code2Prompt actúa como una lista blanca, conservando solo archivos que coinciden con los patrones incluidos (
A). -
Listas de inclusión y exclusión
Si se especifican ambas listas, Code2Prompt conserva archivos que coinciden con los patrones de inclusión, pero elimina aquellos que coinciden con los patrones de exclusión (
A \ B).
3. Más sobre la superposición
Sección titulada «3. Más sobre la superposición»Con ambas listas presentes (A ≠ ∅, B ≠ ∅) tienes cuatro posibilidades lógicas
para la superposición C y el resto D.
¿Quieres C? | ¿Quieres D? | ¿Razonable? |
|---|---|---|
| No | No | Comportamiento predeterminado (A \ B) |
| Sí | No | Mismo comportamiento que el caso 3 (A) |
| No | Sí | sorprendente (“descartar lo que pedí C, conservar lo que no”) |
| Sí | Sí | Mismo comportamiento que el caso 1 (Ω) |
Por esta razón se eliminó la opción --include-priority. Porque sería el mismo resultado que si solo tuvieras una lista de inclusión (caso 3).
4. Tabla de referencia rápida
Sección titulada «4. Tabla de referencia rápida»| Quieres conservar… | Usa |
|---|---|
| todo | sin -i, sin -e |
| todo excepto algunos patrones | solo -e |
| solo lo que coincide con los patrones | solo -i |
lo que coincide con -i, menos lo que coincide con -e | -i y -e |
Este diseño mantiene el modelo mental simple:
- La lista de inclusión es una lista blanca tan pronto como existe.
- La lista de exclusión es una lista negra superpuesta encima.
- La superposición se descarta por defecto