Одинаковые настройки для всех IDE (файл .EditorConfig)

Если вы занимаетесь профессиональной web-разработкой, то скорее всего вы работаете в одном из популярных редакторов (IDE — интегрированная среда разработки). Часто приходится распространять свой программный код или использовать его там, где установлены другие редакторы. А кто-то может использовать тот редактор, который ему удобен.

С целью создания общего формата настроек используется популярный плагин EditorConfig. Работа с плагинам проста. Достаточно его установить в своей IDE и создать файл с настройками .editorconfig.

Некоторые редакторы поставляются в комплекте с встроенной поддержкой плагина EditorConfig: BBEdit, Builder, GitHub, Gogs, Intellij IDEA, Komodo, PyCharm, RubyMine, SourceLair, TortoiseGit, WebStorm.

Плагин для IDE

Если в ваш редактор не включена поддержка плагина, то вы его можете установить самостоятельно на странице с загрузкой плагина. Здесь представлен плагин для более 20+ редакторов.

Файл .editorconfig можно поместить в систему контроля версий вашего проекта. Данный подход позволит разработчикам использовать одни и те же настройки для своих сред разработки.

Как выглядит файл EditorConfig?

; top-most EditorConfig file
root = true

; Unix-style newlines
[*]
end_of_line = LF

[*.php]
indent_style = space
indent_size = 4

Выше показан пример конфигурации  файла .editorconfig для популярного фреймворка Symfony. Вы можете посмотреть на некоторые реальные примеры проектов, использующих файлы EditorConfig.

При открытии файла плагин EditorConfig ищет файл с именем .editorconfig в директории с открытым файлом и в каждом родительском каталоге. Поиск файлов .editorconfig будет остановлен тогда, когда достигнут корневой путь к файлу или найдена директива в конфигурации root = true.

Файлы EditorConfig считываются сверху вниз. Свойства из соответствующих разделов EditorConfig применяются в том порядке, в котором они были прочитаны, т.е. свойства в ближайших файлах имеют приоритет.

Формат файла

В файлах EditorConfig используется формат INI, совместимый с форматом, используемым библиотекой Python ConfigParser, но разрешены в именах разделов. Имена разделов представляют из себя шаблон glob, определяющий путь к файлу, аналогично формату в gitignore. Прямой слэш (/) используется в качестве разделителя пути, а для комментариев используется точка с запятой (;) или решетка (#). Каждый комментарий располагается на отдельной строке.

Все файлы EditorConfig должны быть в кодировке UTF-8 с разделителями строк CRLF или LF.

Шаблоны для подстановки

* Соответствует любой строке символов, кроме разделителей пути (/)
*** Соответствует любой строке символов
? Соответствует любому одиночному символу
[name] Соответствует любому одиночному символу в имени
[!name] Соответствует любому одиночному символу, а не имени
{s1,s2,s3} Соответствует любой из приведенных строк (разделенных запятыми)
{num1..num2} Соответствует любому целому числу между num1 и num2, где num1 и num2 могут быть как положительными, так и отрицательными

Специальные символы могут быть экранированы обратным слэшем (\), поэтому они не будут интерпретированы как шаблоны для подстановки.

Поддерживаемые свойства

Обратите внимание, что не все свойства поддерживаются каждым плагином. Здесь вы можете просмотреть полный список свойств. Все настройки нечувствительны к регистру.

  • indent_style (значения: tab, space) — задает жесткую или мягкую табуляцию для отступов.
  • indent_size (значения: число) — задает ширину отступа при использовании мягкой табуляции.
  • tab_width (значения: число) — задает ширину отступа при использовании жесткой табуляции. Если не определено, то возьмет значение из indent_size.
  • end_of_line (значения: lf, cr, crlf) — определяет, что будет использоваться в конце строк.
  • charset (значения: latin1, utf-8, utf-8-bom, utf-16be, utf-16le) — задает кодировку для файлов.  Не рекомендуется использовать utf-8-bom.
  • trim_trailing_whitespace (значения: true, false) — задает автоматическое удаление пробелов на концах строк.
  • insert_final_newline (значения: true, false) — задает автоматическое добавление новой строки в самый конец конце файла.
  • root (значения: true, false) — специальный параметр, который располагается в самом верху файла .editorconfig. Если значение true, то плагин перестанет искать другие конфиги в родительских каталогах.

Для любого свойства значение unset удаляет эффект этого свойства (даже если свойство было установлено ранее).

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Добавить комментарий

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: