Единый стиль кода с EditorConfig: настройка под ключ
Представьте: в команде пять разработчиков, каждый использует свой редактор — VS Code, WebStorm, Vim. Один ставит отступы пробелами, другой табами. При коммите git показывает сотни изменений из-за замены пробелов на табы. Тратится часы на согласование и правку. В одном реальном проекте с командой из 8 человек мы внедрили EditorConfig — и количество конфликтов в git сократилось на 95%. Файл .editorconfig в корне проекта задаёт единые правила для всех редакторов: отступы, окончания строк, кодировку и trailing whitespace. Больше никаких споров о форматировании. EditorConfig поддерживается из коробки в VS Code, JetBrains IDE, Vim, Emacs, Sublime Text. Для остальных — плагин, который есть практически для любого редактора. Настройка занимает от 1 до 4 часов и окупается за первую неделю за счёт сокращения времени на код-ревью.
Как EditorConfig решает проблему разногласий в стиле кода?
EditorConfig действует на уровне редактора: при открытии файла он автоматически применяет заданные настройки. Это означает:
- Все разработчики видят код с одинаковыми отступами.
- Новые файлы создаются с правильным окончанием строк (LF).
- Финальный перевод строки добавляется автоматически.
- Trailing whitespace удаляется при сохранении.
Мы настраиваем EditorConfig под конкретный стек проекта. Например, для проектов на JavaScript используем indent_size = 2, для Python — indent_size = 4, для Go — табы. Ниже пример типового конфига:
# EditorConfig
root = true
[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
indent_style = space
indent_size = 2
[*.{js,jsx,ts,tsx,mjs,cjs}]
indent_style = space
indent_size = 2
max_line_length = 100
[*.{css,scss,less,styl}]
indent_style = space
indent_size = 2
[*.{html,htm}]
indent_style = space
indent_size = 2
[*.json]
indent_style = space
indent_size = 2
[*.{yml,yaml}]
indent_style = space
indent_size = 2
[*.py]
indent_style = space
indent_size = 4
max_line_length = 88
[*.go]
indent_style = tab
indent_size = 4
[*.php]
indent_style = space
indent_size = 4
[Makefile]
indent_style = tab
[*.md]
trim_trailing_whitespace = false
max_line_length = off
[*.{png,jpg,jpeg,gif,ico,webp,svg,woff,woff2,eot,ttf,otf,mp4,mp3,pdf,zip}]
insert_final_newline = false
trim_trailing_whitespace = false
Проверка применения и интеграция с CI
EditorConfig сам не форматирует существующие файлы. Чтобы проверить и автоматически исправить нарушения, используем editorconfig-checker:
npm install --save-dev editorconfig-checker npx ec src/ Добавляем проверку в CI:
{ "scripts": { "lint:editorconfig": "editorconfig-checker" } } Исключения настраиваем в .ecrc:
{
"Exclude": [
"dist",
"node_modules",
".git",
"*.min.js",
"*.min.css"
],
"ExcludeRegex": "vendor/.*"
} Что входит в настройку EditorConfig?
Мы предоставляем полный пакет: файл .editorconfig с правилами под ваш стек, настройку IDE (до 3 редакторов), интеграцию с Prettier и CI, исправление существующих файлов и обучение команды за 15 минут.
Почему стоит доверить настройку профессионалам?
У нас за плечами более 5 лет опыта в веб-разработке. Мы настроили EditorConfig для 50+ проектов — от небольших лендингов до крупных SaaS. Гарантируем: после настройки 99% конфликтов форматирования исчезают. Передаём готовый конфиг, проверочный скрипт и документацию.
Процесс нашей работы
- Анализ проекта — определяем используемые языки, фреймворки, текущие конфликты форматирования.
- Создание
.editorconfig— пишем правила под ваш стек, включая редкие языки. - Настройка IDE — конфигурируем VS Code (или другие редакторы) для автоматического применения.
- Интеграция с Prettier/ESLint — согласовываем настройки, чтобы они не противоречили друг другу.
- Проверка и исправление — запускаем
editorconfig-checker --fixна всём проекте, исправляем найденные нарушения. - Добавление в CI — настраиваем проверку при каждом коммите.
- Передача результатов — отдаём готовый
.editorconfig, документацию, обучение команды (15 минут).
Сроки и стоимость
Настройка Basic (только создание файла и проверка) — от 1 часа. Full (включая интеграцию с CI, исправление существующих файлов, обучение) — от 4 часов. Стоимость рассчитывается индивидуально в зависимости от размера проекта и количества языков. Свяжитесь с нами — оценим ваш проект.
EditorConfig vs Prettier vs ESLint: сравнение
| Инструмент | Что контролирует | Применение | Приоритет |
|---|---|---|---|
| EditorConfig | Отступы, окончания строк, кодировку | При открытии файла в IDE | Базовый (редактор) |
| Prettier | Форматирование кода (скобки, точки с запятой, переносы) | При сохранении файла (on save) | Форматировщик |
| ESLint | Качество и стиль кода (правила, best practices) | При линтинге или сохранении | Линтер (правила) |
EditorConfig проще в настройке: один файл, нет зависимостей. Но он не форматирует код — для этого нужен Prettier. Рекомендуем использовать EditorConfig как основу, а Prettier — для форматирования.
Типичные ошибки при самостоятельной настройке
| Ошибка | Последствие | Решение |
|---|---|---|
Не указан root = true |
EditorConfig может применить правила из родительской директории, ломая структуру | Всегда указывать root = true в корневом конфиге |
| Забыли про Makefile | В Makefile обязательны табы, иначе сборка упадёт | Добавить правило для Makefile: [Makefile] indent_style = tab |
| Несовпадение с Prettier | Конфликты между indent_size в EditorConfig и tabWidth в Prettier |
Согласовать значения: например, оба 2 или 4 |
| Не исключены бинарные файлы | EditorConfig попытается добавить final newline к изображениям, повреждая их | Исключить бинарные расширения в конфиге |
Мы учитываем все эти нюансы и гарантируем единый стандарт. Закажите настройку прямо сейчас — это сэкономит вашей команде до 2 часов в неделю на код-ревью. Получите консультацию по текущей конфигурации.







