Генератор EditorConfig

.editorconfig
Результаты

Файл .editorconfig в корне репозитория сообщает всем современным IDE, как этот проект форматирует свои файлы, и решает спор «табы или пробелы» для каждого файла. Python: 4 пробела. JavaScript: 2. Makefile: табы (обязательно). Этот генератор собирает .editorconfig из ваших настроек форматирования (стиль и размер отступа, конец строки, кодировка, максимальная длина строки, перенос строки в конце файла и удаление пробелов в конце строки) и всегда добавляет две стандартные правки: [*.md] сохраняет пробелы в конце строки для переносов в Markdown, а [Makefile] использует табы, как требует сам make.

Как создать файл .editorconfig

  1. 1

    Задайте глобальные значения по умолчанию

    Кодировка (по умолчанию utf-8), конец строки (lf или crlf), стиль и размер отступа, максимальная длина строки, перенос строки в конце файла, удаление пробелов в конце строки.

  2. 2

    Проверьте встроенные правки

    Генератор всегда добавляет `[*.md]` с `trim_trailing_whitespace = false` (Markdown нуждается в пробелах в конце строки для переносов) и `[Makefile]` с `indent_style = tab`, что требует сам make.

  3. 3

    Скопируйте файл

    С помощью кнопки копирования получите готовый `.editorconfig` и положите его в корень репозитория.

  4. 4

    Расширьте позже

    Нужны правила для отдельных языков? Добавьте свои секции, например `[*.py]` с `indent_size = 4`.

Что делает файл .editorconfig

Файл .editorconfig в корне проекта (или в любой директории) объявляет соглашения о форматировании. Редакторы с поддержкой EditorConfig (все основные IDE и большинство современных текстовых редакторов) применяют эти правила при открытии файла.

Пример вывода

При настройках по умолчанию (пробелы, размер 4, LF, utf-8) генератор выдаёт:

root = true

[*]
indent_style = space
indent_size = 4
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
max_line_length = 120

[*.md]
trim_trailing_whitespace = false

[Makefile]
indent_style = tab

Основные директивы

Директива Допустимые значения Примечания
root true / false Установите true в корне проекта, чтобы поиск остановился
charset utf-8, utf-8-bom, latin1, utf-16-be, utf-16-le По умолчанию utf-8
end_of_line lf, crlf, cr lf, для кроссплатформенных репозиториев; crlf, для репозиториев только под Windows
indent_style space, tab
indent_size целое число Число пробелов; игнорируется при tab
tab_width целое число Визуальная ширина табуляции (по умолчанию равна indent_size)
insert_final_newline true / false Обеспечивает соответствие файлов стандарту POSIX
trim_trailing_whitespace true / false Отключите для Markdown (пробелы в конце строки означают перенос)

Соглашения языков вкратце

Язык / файл Соглашение
JS, TS, JSON 2 пробела
HTML, CSS, YAML 2 пробела
Python 4 пробела (PEP 8)
PHP 4 пробела (PSR-12)
Ruby 2 пробела
Go Табы (задаёт gofmt)
Rust 4 пробела (задаёт rustfmt)
Java 4 пробела
Makefile Табы (требует сам make)
Markdown Сохранять пробелы в конце строки (используются для <br>)
Batch / CMD (.bat) Концы строк crlf

Ловушка: пробелы в конце строки в Markdown

В Markdown два пробела в конце строки означают «вставить здесь <br>». Если .editorconfig удаляет пробелы в конце строки во всех файлах, эти переносы исчезнут. Переопределите правилом trim_trailing_whitespace = false для [*.md].

Поддерживает ли ваша IDE EditorConfig?

Встроенная поддержка: VS Code, семейство IntelliJ от JetBrains, Sublime Text, Vim (через плагин), Emacs (через плагин), Atom, Notepad++, Xcode. Если редактор не поддерживает EditorConfig «из коробки», обычно есть плагин. Файл также машиночитаем, поэтому линтеры и форматтеры могут его учитывать.

Часто задаваемые вопросы

В корне проекта с root = true. Чтобы переопределить отдельные пути, можно добавить дополнительные файлы .editorconfig во вложенных директориях: поиск поднимается вверх по дереву и останавливается на первом найденном файле с root = true.

Нет. EditorConfig отвечает за базовые вещи, пробелы и концы строк, во всех редакторах. Prettier и языковые линтеры отвечают за более глубокие правила стиля (кавычки, точки с запятой, замыкающие запятые). Они дополняют друг друга.

Установите end_of_line = crlf, если Windows-инструменты в репозитории действительно этого требуют. Лучший вариант, закоммитить end_of_line = lf и добавить .gitattributes с * text=auto, чтобы Git нормализовал концы строк при коммите, а при checkout они соответствовали ОС.

Нет. Ваши настройки используются только для создания файла; на наших серверах ничего не хранится и ничего не сохраняется после ухода со страницы.

Сопутствующие инструменты

Справочная таблица ASCII

Полная таблица ASCII от 0 до 127 с десятичным, шестнадцатеричным, восьмеричным и двоичным представлением, а также записью числовых ссылок HTML, включая NUL, LF и DEL.

Справочник сочетаний клавиш

Ищите документированные сочетания по умолчанию для VS Code, Chrome и Bash с GNU Readline в macOS, Windows и Linux.

Справочник символов HTML

Справочник HTML-сущностей с поиском, их именованными и числовыми кодами, а также копированием специальных символов и знаков одним кликом.

Счетчик FPS

Измерьте FPS браузера через requestAnimationFrame: сглаживание, минимальная и максимальная частота кадров, порог предупреждения и график по желанию. Работает локально, без загрузок и API.

Генератор случайных букв

Генерируйте случайные буквы A-Z. Выберите количество, верхний или нижний регистр либо смешанный вариант для игр, заданий и уроков.

Генератор цветовой палитры

Создавайте монохромные, аналоговые, комплементарные, триадные или тетрадные палитры из базового HEX-цвета и экспортируйте готовые CSS-переменные.

Инструмент доступен на других языках