Налаштування EditorConfig для єдиного стилю коду
EditorConfig вирішує найпростішу проблему: різні редактори за замовчуванням використовують різні налаштування — пробіли або таби, 2 або 4 символи, LF або CRLF. Файл .editorconfig в корені проекту встановлює ці параметри раз і назавжди для всієї команди, незалежно від редактора.
Підтримка вбудована в VS Code, JetBrains IDE, Vim, Emacs, Sublime Text. Для інших — плагін.
.editorconfig
# Цей файл застосовується до всіх файлів проекту
root = true
# Базові налаштування для всіх файлів
[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
indent_style = space
indent_size = 2
# JavaScript та TypeScript
[*.{js,jsx,ts,tsx,mjs,cjs}]
indent_style = space
indent_size = 2
max_line_length = 100
# CSS, SCSS, Less
[*.{css,scss,less,styl}]
indent_style = space
indent_size = 2
# HTML
[*.{html,htm}]
indent_style = space
indent_size = 2
# JSON
[*.json]
indent_style = space
indent_size = 2
# YAML
[*.{yml,yaml}]
indent_style = space
indent_size = 2
# Python (якщо присутній у монорепо)
[*.py]
indent_style = space
indent_size = 4
max_line_length = 88
# Go
[*.go]
indent_style = tab
indent_size = 4
# PHP
[*.php]
indent_style = space
indent_size = 4
# Makefile — тільки таби
[Makefile]
indent_style = tab
# Markdown — не обрізуємо trailing spaces (два пробіли = перенос рядка)
[*.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
Перевірка застосування
# Встановити 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/.*"
}
Взаємодія з Prettier
EditorConfig та Prettier дублюють деякі налаштування (відступи, переносу рядків). Prettier має пріоритет у форматуванні коду. EditorConfig застосовується до файлів, які Prettier не обробляє: бінарні файли, специфічні формати, редагування в IDE без запуску Prettier.
Хороша практика: утримуйте налаштування узгодженими:
# .editorconfig
indent_size = 2
// .prettierrc
{
"tabWidth": 2
}
Налаштування VS Code без плагіна
VS Code читає .editorconfig автоматично починаючи з версії 1.0 — плагін не потрібен. Переконайтеся, що вбудована підтримка активна:
// .vscode/settings.json
{
"files.eol": "\n", // LF за замовчуванням на Windows
"files.insertFinalNewline": true,
"files.trimTrailingWhitespace": true
}
Ці налаштування застосовуються до редактора, .editorconfig — до збереження файлів. При конфлікті .editorconfig має пріоритет.
Часові рамки
Створення .editorconfig для проекту: 15–30 хвилин. Виправлення існуючих файлів під нові налаштування (trailing whitespace, переносу рядків): запустити Prettier або editorconfig-checker --fix — 30–60 хвилин.







