Генератор .editorconfig
Создайте файл .editorconfig для единых отступов, концов строк, кодировки и пробелов во всех редакторах, с исключениями для Markdown, YAML, Python, Go, Makefile.
0 = не задано
Что такое Генератор .editorconfig?
EditorConfig поддерживает единый стиль кода в разных редакторах и IDE (VS Code, JetBrains, Vim, Visual Studio, Sublime…). Инструмент создаёт файл .editorconfig с вашими правилами отступов, концов строк, кодировки и пробелов, а также с типичными исключениями для отдельных типов файлов, например табуляция для Makefile и Go или 4 пробела для Python.
Как пользоваться Генератор .editorconfig
- Выберите Отступы (пробелы или табуляция) и Размер отступа либо Ширина табуляции.
- Задайте Конец строки, Кодировка и при желании Макс. длина строки.
- Включите или отключите Удалять пробелы в конце строк и Добавлять перевод строки в конце файла и выберите нужные Настройки по типам файлов.
- Скачайте
.editorconfigи положите его в корень проекта.
Пример
Spaces, size 2, LF, UTF-8, trim whitespace, final newline, Markdown and Makefile overrides
# EditorConfig: https://editorconfig.org root = true [*] indent_style = space indent_size = 2 end_of_line = lf charset = utf-8 trim_trailing_whitespace = true insert_final_newline = true [*.md] trim_trailing_whitespace = false [Makefile] indent_style = tab
Когда использовать Генератор .editorconfig
Используйте в любом репозитории, где работает больше одного человека или редактора, особенно в смешанных командах Windows/macOS/Linux, где различаются концы строк. EditorConfig управляет только базовыми пробелами; для полного стиля кода используйте форматтер вроде Prettier, Black или gofmt, лучше настроенный в согласии с этими параметрами.
Как работает Генератор .editorconfig
Файл начинается с root = true, чтобы редакторы не искали настройки в родительских папках, затем идёт раздел [*] с indent_style, indent_size (или tab с tab_width при табуляции), end_of_line, charset, trim_trailing_whitespace и insert_final_newline из спецификации EditorConfig. Исключения добавляются более поздними разделами с glob-шаблонами ([*.md], [*.{yml,yaml}], [*.py], [*.go], [Makefile]), которые для подходящих файлов имеют приоритет над [*].
Распространенные Случаи Использования
- Прекращение споров табуляция против пробелов и CRLF/LF в pull request
- Задание отступа в 2 пробела для проекта JavaScript
- Сохранение табуляции в Makefile при пробелах в остальных файлах
- Сохранение переносов Markdown, сделанных пробелами в конце строки
Часто Задаваемые Вопросы
Поддерживает ли VS Code .editorconfig?
Да, через официальное расширение EditorConfig. IDE JetBrains, Visual Studio и веб-редактор GitHub поддерживают его нативно.
Почему для Markdown trim_trailing_whitespace = false?
В Markdown два пробела в конце строки создают перенос, поэтому их удаление изменило бы отрисованный документ.
LF или CRLF?
LF — стандарт для большинства репозиториев, включая проекты Windows, использующие autocrlf в Git. CRLF нужен, только если этого требуют инструменты, работающие лишь в Windows.