Compresión de Código
La compresión de código es una función poderosa que extrae de manera inteligente las estructuras esenciales del código mientras elimina los detalles de implementación. Esto es particularmente útil para reducir el conteo de tokens mientras se mantiene la información estructural importante de tu base de código.
NOTE
Esta es una función experimental que mejoraremos activamente según los comentarios de los usuarios y el uso en el mundo real.
Uso Básico
Habilita la compresión de código usando la bandera --compress
:
repomix --compress
También puedes usarlo con repositorios remotos:
repomix --remote user/repo --compress
Cómo Funciona
El algoritmo de compresión procesa el código utilizando el análisis de Tree-sitter para extraer y preservar elementos estructurales esenciales mientras elimina los detalles de implementación.
La compresión preserva:
- Firmas de funciones y métodos
- Definiciones de interfaces y tipos
- Estructuras de clases y propiedades
- Elementos estructurales importantes
Mientras elimina:
- Implementaciones de funciones y métodos
- Detalles de lógica de bucles y condicionales
- Declaraciones de variables internas
- Código específico de implementación
Ejemplo
Código TypeScript original:
import { ShoppingItem } from './shopping-item';
/**
* Calculate the total price of shopping items
*/
const calculateTotal = (
items: ShoppingItem[]
) => {
let total = 0;
for (const item of items) {
total += item.price * item.quantity;
}
return total;
}
// Shopping item interface
interface Item {
name: string;
price: number;
quantity: number;
}
Después de la compresión:
import { ShoppingItem } from './shopping-item';
⋮----
/**
* Calculate the total price of shopping items
*/
const calculateTotal = (
items: ShoppingItem[]
) => {
⋮----
// Shopping item interface
interface Item {
name: string;
price: number;
quantity: number;
}
Configuración
Puedes habilitar la compresión en tu archivo de configuración:
{
"output": {
"compress": true
}
}
Casos de Uso
La compresión de código es particularmente útil cuando:
- Analizas la estructura y arquitectura del código
- Reduces el conteo de tokens para procesamiento con LLM
- Creas documentación de alto nivel
- Comprendes patrones y firmas de código
- Compartes diseños de API e interfaces
Opciones Relacionadas
Puedes combinar la compresión con otras opciones:
--remove-comments
: Eliminar comentarios del código--remove-empty-lines
: Eliminar líneas vacías--output-show-line-numbers
: Agregar números de línea a la salida