Ir al contenido

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 (--include o -i) - “estos patrones permiten archivos”
  • lista de exclusión (--exclude o -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.


A lo largo de la explicación usamos la notación de conjuntos habitual

SímboloSignificado
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

Lista de inclusiónLista de exclusiónArchivos conservados
A = ∅B = ∅Ω
A = ∅B ≠ ∅¬B
A ≠ ∅B = ∅A
A ≠ ∅B ≠ ∅A \ B
  1. Sin lista de inclusión, sin lista de exclusión

    Si no se especifican patrones, se conservan todos los archivos (Ω).

  2. 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).

  3. 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).

  4. 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).


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?
NoNoComportamiento predeterminado (A \ B)
NoMismo comportamiento que el caso 3 (A)
Nosorprendente (“descartar lo que pedí C, conservar lo que no”)
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).

Quieres conservar…Usa
todosin -i, sin -e
todo excepto algunos patronessolo -e
solo lo que coincide con los patronessolo -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