---
title: Cómo funciona el filtro de patrones Glob
description: Cómo Code2Prompt decide qué archivos conservar o descartar usando globs de inclusión (-i) y exclusión (-e).
---

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.

---

## 1. Conjuntos y Símbolos

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

| Símbolo                           | Significado                                                                |
| --------------------------------- | -------------------------------------------------------------------------- |
| $A$                               | conjunto de archivos que coinciden con **al menos un** patrón de inclusión |
| $B$                               | conjunto de archivos que coinciden con **al menos un** patrón de exclusión |
| $\Omega$                          | todo el árbol del proyecto (el _universo_)                                 |
| $C = A \cap B$                    | archivos que coinciden con ambas listas (la _superposición_)               |
| $D = \Omega \setminus (A \cup B)$ | archivos que no coinciden con ninguna lista                                |

---

## 2. Cuatro Situaciones

### 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                |

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

---

## 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

| 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
