---
title: "Сжатие кода"
description: "Используйте сжатие кода Repomix на основе Tree-sitter, чтобы уменьшить расход токенов, сохраняя imports, exports, классы, функции, интерфейсы и структуру."
---

# Сжатие кода

Сжатие кода — это мощная функция, которая интеллектуально извлекает существенные структуры кода, удаляя детали реализации. Это особенно полезно для уменьшения количества токенов при сохранении важной структурной информации о вашей кодовой базе.

> [!NOTE]
> Это экспериментальная функция, которую мы будем активно улучшать на основе отзывов пользователей и реального использования

## Базовое использование

Включите сжатие кода с помощью флага `--compress`:

```bash
repomix --compress
```

Вы также можете использовать его с удалёнными репозиториями:

```bash
repomix --remote user/repo --compress
```

## Как это работает

Алгоритм сжатия обрабатывает код с помощью парсинга tree-sitter для извлечения и сохранения существенных структурных элементов при удалении деталей реализации.

Сжатие сохраняет:
- Сигнатуры функций и методов
- Определения интерфейсов и типов
- Структуры классов и свойства
- Важные структурные элементы

При этом удаляет:
- Реализации функций и методов
- Детали циклов и условной логики
- Внутренние объявления переменных
- Код, специфичный для реализации

### Пример

Оригинальный код TypeScript:

```typescript
import { ShoppingItem } from './shopping-item';

/**
 * Рассчитать общую стоимость товаров
 */
const calculateTotal = (
  items: ShoppingItem[]
) => {
  let total = 0;
  for (const item of items) {
    total += item.price * item.quantity;
  }
  return total;
}

// Интерфейс товара
interface Item {
  name: string;
  price: number;
  quantity: number;
}
```

После сжатия:

```typescript
import { ShoppingItem } from './shopping-item';
⋮----
/**
 * Рассчитать общую стоимость товаров
 */
const calculateTotal = (
  items: ShoppingItem[]
) => {
⋮----
// Интерфейс товара
interface Item {
  name: string;
  price: number;
  quantity: number;
}
```

## Конфигурация

Вы можете включить сжатие в файле конфигурации:

```json
{
  "output": {
    "compress": true
  }
}
```

## Сценарии использования

Сжатие кода особенно полезно, когда:
- Анализируете структуру и архитектуру кода
- Уменьшаете количество токенов для обработки LLM
- Создаёте высокоуровневую документацию
- Изучаете паттерны кода и сигнатуры
- Делитесь дизайном API и интерфейсов

## Связанные опции

Вы можете комбинировать сжатие с другими опциями:
- `--remove-comments`: Удаление комментариев кода (см. [Удаление комментариев](/ru/guide/comment-removal))
- `--remove-empty-lines`: Удаление пустых строк
- `--output-show-line-numbers`: Добавление номеров строк в вывод

## Связанные ресурсы

- [Удаление комментариев](/ru/guide/comment-removal) - Удаление комментариев для дополнительного уменьшения токенов
- [Конфигурация](/ru/guide/configuration) - Настройка `output.compress` в файле конфигурации
- [Параметры командной строки](/ru/guide/command-line-options) - Полная справка по CLI
