Файл .kodaignore¶
Файл .kodaignore — это механизм игнорирования файлов и папок в Koda, аналогичный .gitignore. Он указывает Koda, какие файлы и директории следует исключать из индексации, автодополнения, контекста и других функций.
Обзор¶
.kodaignore используется для:
- Исключения файлов из индексации — ускорение работы и снижение размера индекса
- Защиты конфиденциальных данных — предотвращение утечки
.env, ключей, секретов - Оптимизации контекста — исключение шумных файлов из контекста LLM
- Контроля автодополнения — отключение автодополнения в определённых файлах
- Игнорирования временных файлов — артефакты сборки, кэши, логи
Расположение файлов¶
Koda поддерживает несколько уровней .kodaignore:
| Уровень | Путь | Описание |
|---|---|---|
| Глобальный | ~/.koda/.kodaignore |
Применяется ко всем проектам |
| Рабочий (workspace) | .kodaignore в корне проекта |
Применяется только к текущему проекту |
| Вложенный | .kodaignore в подпапках |
Применяется к подпапке и ниже |
Глобальный .kodaignore¶
Глобальный файл находится в домашней директории Koda:
- macOS/Linux:
~/.koda/.kodaignore - Windows:
%USERPROFILE%\.koda\.kodaignore
Пример глобального .kodaignore:
Локальный .kodaignore¶
Создайте файл .kodaignore в корне вашего проекта:
Пример локального .kodaignore:
# Игнорировать папку сборки
dist/
build/
# Игнорировать файлы окружения
.env
*.env.local
# Игнорировать временные файлы
*.tmp
*.bak
Вложенный .kodaignore¶
Можно создать .kodaignore в любой подпапке для игнорирования файлов только в этой директории и её подпапках:
project/
├── .kodaignore # Применяется ко всему проекту
├── src/
│ └── .kodaignore # Применяется только к src/ и ниже
└── tests/
└── .kodaignore # Применяется только к tests/ и ниже
Синтаксис¶
.kodaignore использует тот же синтаксис, что и .gitignore:
Базовые правила¶
| Паттерн | Описание | Пример |
|---|---|---|
*.ext |
Игнорировать все файлы с расширением .ext |
*.log |
dir/ |
Игнорировать всю папку dir |
node_modules/ |
file |
Игнорировать файл с именем file |
README.md |
path/to/file |
Игнорировать файл по относительному пути | src/temp.txt |
/file |
Игнорировать файл только в корне проекта | /config.json |
**/file |
Игнорировать файл в любой папке | **/.gitignore |
dir/** |
Игнорировать всё внутри папки dir |
logs/** |
!file |
Исключение из игнорирования (не игнорировать) | !.env.example |
Комментарии и пустые строки¶
- Строки, начинающиеся с
#, считаются комментариями - Пустые строки игнорируются
Пример:
Исключения (negation)¶
Используйте ! для исключения файлов из игнорирования:
Глобальные паттерны¶
**означает «любая глубина вложенности»- Паттерны без
/применяются рекурсивно
Примеры:
# Игнорировать все файлы .log в любой папке
**/*.log
# Игнорировать папку temp на любом уровне
**/temp/
# Игнорировать всё в папке logs
logs/**
Приоритет игнорирования¶
Koda применяет игноры в следующем порядке (от низшего к высшему приоритету):
.gitignore— базовый уровень- По умолчанию (default ignores) — встроенные игноры Koda
- Глобальный
.kodaignore(~/.koda/.kodaignore) - Локальный
.kodaignore(в корне проекта) - Вложенный
.kodaignore(в подпапках)
Важно: Более поздние правила могут переопределять более ранние.
Пример переопределения¶
В этом случае secret.txt не будет игнорироваться, потому что .kodaignore имеет более высокий приоритет.
Игноры по умолчанию¶
Koda автоматически игнорирует следующие файлы и папки:
Игнорируемые файлы (расширения)
*.DS_Store
*-lock.json
*.lock
*.ttf
*.png
*.jpg
*.jpeg
*.gif
*.mp4
*.svg
*.ico
*.pdf
*.zip
*.gz
*.tar
*.dmg
*.tgz
*.rar
*.7z
*.exe
*.dll
*.obj
*.o
*.o.d
*.a
*.lib
*.so
*.dylib
*.ncb
*.sdf
*.woff
*.woff2
*.eot
*.cur
*.avi
*.mpg
*.mpeg
*.mov
*.mp3
*.mkv
*.webm
*.jar
*.onnx
*.parquet
*.pqt
*.wav
*.webp
*.db
*.sqlite
*.wasm
*.plist
*.profraw
*.gcda
*.gcno
go.sum
*.env
*.gitignore
*.gitkeep
*.kodaignore
*.uasset
*.pdb
*.bin
*.pag
*.swp
Игнорируемые папки
Эти игноры можно переопределить в .kodaignore.
Практические примеры¶
Для веб-разработки
# .kodaignore для веб-проекта
# Зависимости
node_modules/
vendor/
bower_components/
# Сборка
dist/
build/
out/
.next/
.nuxt/
# Логи
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# Переменные окружения
.env
.env.local
.env.*.local
# Кэш
.cache/
.parcel-cache/
.eslintcache
# ОС
.DS_Store
Thumbs.db
Для Python-проектов
Для Java/Kotlin проектов
Для C++ проектов
Для проектов с документацией
Для машинного обучения
# .kodaignore для ML-проекта
# Данные (большие файлы)
data/raw/
data/processed/
*.csv
*.parquet
*.pqt
# Модели
models/
*.h5
*.pkl
*.onnx
*.pth
*.pt
*.bin
# Логи и метрики
logs/
runs/
*.tensorboard
# Виртуальные окружения
venv/
.venv/
# Кэш
__pycache__/
.ipynb_checkpoints/
# Переменные окружения
.env
Для мобильных проектов
Конфиденциальные данные¶
Файлы с секретами
# Переменные окружения
.env
.env.local
.env.*.local
*.env
# Ключи и сертификаты
*.pem
*.key
*.crt
*.p12
*.pfx
id_rsa
id_rsa.pub
id_ed25519
id_ed25519.pub
# Конфигурации с паролями
config.secrets.json
secrets.yaml
credentials.json
service-account.json
# Базы данных
*.db
*.sqlite
*.sql.dump
# Логи с чувствительными данными
*.log
logs/
Предотвращение утечек¶
Важно
Файл .kodaignore не защищает от уже закоммиченных файлов в Git.
Для удаления чувствительных данных из истории Git используйте:
# Удалить файл из истории Git
git filter-branch --force --index-filter \
"git rm --cached --ignore-unmatch path/to/secret" \
--prune-empty --tag-name-filter cat -- --all
Или git-filter-repo:
Интеграция с Git¶
Синхронизация с .gitignore¶
Часто полезно синхронизировать .kodaignore с .gitignore:
# Скопировать .gitignore в .kodaignore
cp .gitignore .kodaignore
# Добавить дополнительные игноры для Koda
echo -e "\n# Koda-specific ignores\n.koda/\n*.log" >> .kodaignore
Различия с .gitignore¶
| Аспект | .gitignore |
.kodaignore |
|---|---|---|
| Назначение | Игнорирование в Git | Игнорирование в Koda |
| Приоритет | Ниже | Выше (может переопределять) |
| Глобальный файл | ~/.gitignore_global |
~/.koda/.kodaignore |
| Влияет на | Git commit/index | Индексация, контекст, автодополнение |
Рекомендация¶
Хорошая практика: Держите .kodaignore и .gitignore синхронизированными для консистентности, но добавляйте в .kodaignore специфичные для Koda игноры.
Взаимодействие с функциями Koda¶
Индексация¶
Файлы из .kodaignore исключаются из:
- Семантического поиска
- Контекста
@codebase - Быстрого поиска по файлам
Автодополнение¶
Koda не предлагает автодополнение в игнорируемых файлах.
Контекст¶
Игнорируемые файлы недоступны через:
@file(в чате)- Автоматический контекст
- Индексированный поиск
Диффы¶
Игнорируемые файлы могут быть исключены из анализа изменений.
Отладка¶
Проверка игнорирования¶
Чтобы проверить, игнорируется ли файл:
- Откройте чат Koda
- Попробуйте добавить файл через
@file - Если файл игнорируется, он не появится в списке
Логирование¶
Koda логирует игнорирование файлов в консоли разработчика:
Тестирование паттернов¶
Создайте тестовый .kodaignore и проверьте различные паттерны:
Рекомендации¶
Хорошие практики¶
1. Документируйте игноры:
# Логи - не нужны для контекста
*.log
# Переменные окружения - конфиденциально
.env
# Сборка - шум для индексации
dist/
build/
2. Используйте специфичные паттерны:
3. Исключайте важное:
4. Синхронизируйте с .gitignore:
Чего избегать¶
1. Игнорирование всего:
2. Игнорирование важных файлов:
3. Дублирование без необходимости:
# ❌ Плохо: дублирует default ignores
node_modules/
.git/
.koda/
# ✅ Хорошо: только кастомные игноры
custom-folder/
Производительность¶
Оптимизация:
- Минимизируйте количество паттернов
- Избегайте сложных глобальных паттернов (
**/) - Регулярно очищайте устаревшие игноры
Влияние на скорость:
- Каждый
.kodaignoreпроверяется при обходе файлов - Большое количество игноров замедляет индексацию
- Глобальный
.kodaignoreприменяется ко всем проектам