Памятка про .editorconfig
Бывают случаи, когда помимо основной IDE используется простой редактор для быстрого просмотра/редактирования кода. Настройки синтаксиса(например табы или пробелы в качестве отступов) могут различаться. Когда над проектом работает несколько человек, и каждый использует разные настройки — тоже может привести к проблемам. Чтобы стандартизировать настройки синтаксиса для вашего проекта — используйте .editorconfig.
.editorconfig — конфигурационный файл для настроек синтаксиса. В зависимости от IDE или редактора вам нужно установить плагин. Например есть плагин для PHPStorm. Устанавливаем его, перезапускаем IDE, заходим в настройки Settings/CodeStyle/ и убеждаемся что галочка “Enable editorconfig” стоит.
Далее создаем внутри проекта пустой файл .editorconfig и вписываем в него настройки для проекта
# Корневой файл EditorConfig root = true # Для всех файлов [*] charset = utf-8 indent_style = tab indent_size = 4 # Если нужно - отдельные настройки можно переписать для конретного типа файлов [*.jade] indent_style = space indent_size = 2 [*.scss] indent_style = tab indent_size = 8
Далее данные настройки будут переписывать настройки IDE.
Документация по всем свойствам editorconfig доступна на оф.сайте
.EDITORCONFIG — Расширение файла
Основные возможности: .EDITORCONFIG — Расширение файла
| Функции | Описание |
|---|---|
| Расширение файла | .editorconfig |
| Формат | N/A |
| Разработчик | Editorconfig |
| категория | Settings |
Advertisement
No ad for you
Что такое файл EDITORCONFIG?.
Расширение файла EditorConfig связано с EditorConfig, проектом, который помогает разработчикам определять и поддерживать последовательные стили кодирования между различными редакторами и IDE.
Файл EditorConfig содержит настройки файла конец строки и стилей отступления для файлов Python и JavaScript.
Эта запись типа файла EDITORCONFIG была помечена как устаревшая и больше не поддерживается формат файла.
Этот тип файла больше не используется активно и, скорее всего, устарел. Как правило, это относится к системным файлам в старых операционных системах, типах файлов из длительного прекращенного программного обеспечения или предыдущих версий определенных типов файлов (например, документов, проектов и т. Д.), Которые были заменены в более высоких версиях их первоначальных программ.
Как открыть: используйте EDITORCONFIG для работы с *.editorConfig Files.
Как преобразовать: преобразование в другие форматы невозможно.
Advertisement
No ad for you
Editorconfig
Settings
- .3dl — Расширение файла
- .3dz — Расширение файла
- .8st — Расширение файла
- .256 — Расширение файла
- .asp — Расширение файла
N/A
- .7z — Расширение файла
- .3gp — Расширение файла
- .3ds — Расширение файла
- .3g2 — Расширение файла
- .3dm — Расширение файла
Как решить проблемы с файлами EDITORCONFIG
- Свяжите расширение файла EDITORCONFIG с правильным приложением. На:
Windows:Щелкните правой кнопкой мыши по любому файлу EDITORCONFIG и выберите «Open with» > «Choose another app» Теперь выберите другую программу и установите флажок «Always use this app to open *.EDITORCONFIG files».Mac:Щелкните правой кнопкой мыши (или Ctrl-клик) файл EDITORCONFIG, затем щелкните «Open with» > «Other. » Затем выберите другую программу и установите флажок «Always Open With».Linux:Щелкните правой кнопкой мыши по файлу, выберите «Open with» и выберите другую программу.iPhone:Нажмите на файл. Если вы не видите приложение для открытия файла, нажмите «Поделиться» и выберите приложение. Или сохраните файл. Затем откройте приложение «Файлы» «Файлы». Там долго нажимайте на файл, затем отпустите палец. Вы увидите черную строку меню. Затем нажмите «Поделиться» и выберите приложение.Android:Нажмите значок «Настройки» на смартфоне, затем нажмите в разделе «Приложения». Нажмите значок «Параметры» в правом верхнем углу экрана, чтобы изменить приложения по умолчанию. - Обновите свое программное обеспечение, которое должно фактически открыться EDITORCONFIG — это настройки EditorConfig.. Потому что только текущая версия поддерживает последний формат файла EDITORCONFIG.
- Чтобы убедиться, что ваш файл EDITORCONFIG не поврежден и не заражен вирусом, получите файл еще раз и отсканируйте его с помощью антивирусной программы.
Создание и редактирование пользовательского файла EditorConfig в Visual Studio для Mac
Visual Studio для Mac планируется выйти на пенсию 31 августа 2024 года в соответствии с современной политикой жизненного цикла Майкрософт. Хотя вы можете продолжать работать с Visual Studio для Mac, есть несколько других вариантов для разработчиков на Mac, таких как предварительная версия нового расширения комплекта разработки C# для VS Code.
В Visual Studio для Mac в проект или решение можно добавить файл EditorConfig, чтобы обеспечить использование единообразного стиля написания кода всеми разработчиками, работающими с базой кода. Параметры, объявленные в файле EditorConfig, имеют приоритет над глобальными параметрами текстового редактора Visual Studio для Mac. Использование в проекте или в базе кода файла EditorConfig позволяет задать стиль написания кода, настройки и предупреждения для проекта. Поскольку этот файл является частью базы кода, он позволяет следить за тем, чтобы все пользователи придерживались принятых в проекте практик кодирования независимо от интегрированной среды разработки или редактора кода, в которых они работают.
Файлы EditorConfig поддерживаются многими интегрированными средами разработки и редакторами кода, включая Visual Studio.
Поддерживаемые параметры
Редактор в Visual Studio для Mac поддерживает основной набор свойств EditorConfig:
- indent_style
- indent_size
- tab_width
- end_of_line
- charset
- trim_trailing_whitespace
- insert_final_newline
- root
Кроме того, EditorConfig поддерживает соглашения о написании кода в C#.
Добавление файла EditorConfig в проект
Добавление нового файла EditorConfig
- Откройте проект в Visual Studio для Mac. Выберите решение или узел проекта, в который нужно добавить файл EditorConfig. При добавлении файла в каталог решения параметры .editorconfig применяются ко всем проектам в решении.
- Щелкните узел правой кнопкой мыши и выберите команду Добавить > Новый файл, чтобы открыть диалоговое окно Новый файл.
- Выберите Прочее > Пустой текстовый файл и присвойте ему имя .editorconfig . Нажмите клавишу Создать для создания файла и откройте его в редакторе:
Когда элемент добавляется на уровне решения, он автоматически создается и помещается в папку Элементы решения: 
- Измените файл . Например:
# This file is the top-most EditorConfig file root = true # All Files [*] indent_style = space indent_size = 8 insert_final_newline = false trim_trailing_whitespace = false [*.cs] csharp_new_line_before_open_brace = none

Добавление существующего файла EditorConfig
Если вы работаете с проектом или решением, которое уже содержит файл .editorconfig , то для применения параметров не требуется никаких действий. Все новые строки кода форматируются в соответствии с параметрами, заданными в файле EditorConfig.
Может потребоваться использование уже существующего файла .editorconfig в проекте. Чтобы добавить существующий файл, выполните следующие действия.
- Щелкните папку, которую нужно добавить, правой кнопкой мыши и выберите параметры Добавить > Добавить файлы.
- Перейдите в каталог, где находится необходимый файл.
- Файлы, названия которых начинаются с . (например, .editorconfig ), в macOS являются скрытыми, поэтому нажмите клавиши COMMAND + SHIFT + ., чтобы сделать файл .editorconfig видимым.
- Выберите файл .editorconfig и нажмите Открыть:

- Когда откроется следующее диалоговое окно, выберите вариант Скопировать файл в каталог и нажмите ОК:

Применение параметров .editorconfig
Как только вы добавите файл .EditorConfig в базу кода, весь новый код будет автоматически отформатирован в соответствии с заданными параметрами. К существующему коду параметры применяются автоматически только при форматировании базы кода.
Чтобы применить параметры из файла .editorconfig , выделите узел решения и выберите в строке меню параметры Правка > Формат > Форматировать документ.

Редактирование файла EditorConfig
В файлах EditorConfig используется простой формат для задания параметров, который описывается ниже с помощью предыдущего примера:
# This file is the top-most EditorConfig file root = true # All Files [*] indent_style = space indent_size = 4 insert_final_newline = false trim_trailing_whitespace = false [*.cs] csharp_new_line_before_open_brace = none
Установка параметра root в значение true пометит этот файл как файл верхнего уровня всей базы кода, и все файлы .editorconfig в проекте выше по уровню не будут учитываться, как это описано в разделе Переопределение параметров EditorConfig.
Каждый раздел файла обозначается квадратными скобками ([]) и задает тип файлов, к которым будут применяться параметры данного раздела.
В приведенном выше примере некоторые параметры применяются ко всем файлам в проекте, а другие задаются только для файлов C#. На рисунках ниже изображен код до и после применения параметров из файла .editorconfig :
До:

После:

Дополнительные сведения о доступных параметрах EditorConfig см. в статье Параметры соглашений о написании кода .NET в EditorConfig и в разделе Supported Properties (Поддерживаемые свойства) официальной документации.
Переопределение параметров EditorConfig
Можно иметь несколько файлов .editorconfig в одном решении. Visual Studio для Mac прочитывает файлы .editorconfig в решении сверху вниз, добавляя и переопределяя параметры в процессе операции. Это означает, что параметры в .editorconfig , ближайшие к файлу, который вы редактируете, имеют приоритет. Параметры берутся из файла .editorconfig , который находится в той же папке (если она существует), затем из файла .editorconfig в родительской папке (если она существует) и т. д., пока не будет найдено значение root=true .
Чтобы к этой части базы кода не применялись параметры из любых файлов .editorconfig более высокого уровня, добавьте свойство root=true в самое начало файла .editorconfig более низкого уровня:
# top-most EditorConfig file root = true
См. также
EditorConfig — Одни Настройки для всех Редакторов/IDE 21.04.2014 10:49

EditorConfig это конфигурационный файл и набор расширений, к большому количеству редакторов кода и IDE (Далее просто IDE).Его задача — создать единый формат настроек, и, раз и навсегда, решить вопросы вроде «табы или пробелы» для всех IDE и всех языков программирования.Файлы .editorconfig можно найти в таких проектах, как jQuery, Ruby, WordPress, и многих других.
Плагины доступны для большого количество IDE

















Давайте разберемся, как это работает.
Как выглядит файл EditorConfig? Вот пример файла .editorconfig, который задает правила отступа для Python и JavaScript кода: ## Заранее извиняюсь за отсутствие нормальной подсветки синтаксиса в этом примере и далее. ## Хоть «ini» и содержится в списке форматов поддерживаемы Хабром, код красивым не становится. ## Если кто знает, как это починить — пожалуйста напишите в личку. # # Корневой файл EditorConfig root = true
# Для всех файлов используем unix-совместимые переносы строк [*] end_of_line = lf insert_final_newline = true
# отступы в 4 пробела [*.py] indent_style = space indent_size = 4
# Используем табы для отступов (Не указываем размер) [*.js] indent_style = tab
# Перезависываем настройку отступов для js файлов в папке lib [lib/**.js] indent_style = space indent_size = 2
# Только для файлов package.json or .travis.yml [] indent_style = space indent_size = 2 Формат файла Файлы EditorConfig используют слегка модифицированный INI формат.Каждый .editorconfig должен быть в кодировке UTF-8, а в конце строк должно быть либоCRLF либо LF.В качестве имени секции выступает маска файлов, например [*.js] или [index.html].
В отличии от обычного .ini формата, в имени секции можно использовать [ и ], что позволяет указать список символов, один из которых должен находиться в указаной позиции. Например, допустимы конструкции вроде этой: [file[123].js]. Как это работает — читайте ниже.
Каждый комментарий должен быть на отдельной строке и начинаться с ; или #.
Как работает поиск файлов по маске * — Любое количество символов кроме разделителя пути (/) Пример: [*.js]hello.js // Совпадениеhellojs // Нет совпаденияindex.html // Нет совпаденияlib/source.js // Нет совпадения** — Любое количество символов Пример: [**.js]hello.js // Совпадениеhellojs // Нет совпаденияindex.html // Нет совпаденияlib/source.js // Совпадение? — Один любой символ Пример: [hell?.js]hello.js // Совпадениеhell.js // Нет совпадения[name] — Любой символ из символов содержащийся в «name» Пример: [[abc].js]a.js // Совпадениеb.js // Совпадениеabc.js // Нет совпадения[! name] — Любой символ которого нету в «name» Пример: [file[!2468].js]file1.js // Совпадениеfile2.js // Нет совпадения — Любая из строк разделенных запятыми Пример: [index.]index.js // Совпадениеindex.html // Совпадениеpackage.json // Нет совпадения\ — Экранирование служебных символов Пример: [\[abc\].js]a.js // Нет совпадения[abc].js // СовпадениеНастройки Что можно настроить? Editor config стремится быть независимым от языков и работать во всех IDE. К сожалению это не всегда возможно, поэтому некоторые из плагинов поддерживают не все настройки.Все настройки нечувствительны к регистру.
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Специальная настройка, которая должна быть на самом верху конфига. Если установлена в true, парсер не будет искать другие конфиги родительских папках (Подробности ниже).Специальное значение Ignore Некоторые файлы, например сторонние библиотеки или минифицированные файлы, лучше не трогать. В таких случаях для любой настройки можно задать значение ignore. Например: # Задаем форматирование для JS и CSS [*.] indent_style = space indent_size = 2 # Но не переформатируем минифицированные JS и CSS файлы. [*.min.*] indent_style = ignore trim_trailing_whitespace = false insert_final_newline = ignore А почему так мало настроек? Изначальная задача EditorConfig — создать минимальный набор свойств, который работал бы во всех основных IDE.Задача непростая, для примера давайте рассмотрим возможность добавления настройки, которая бы ограничила ширину строки: max_line_lengthЧтобы добавить эту настройку, нужно решить несколько вопросов:
Убедиться, что все редакторы/IDE ее поддерживают Решить, использовать ли жесткий или мягкий (когда строка физически остается длинной, но выглядит как две) перенос, или позволить пользователю выбрать это, добавив еще одну настройку (не все редакторы/IDE поддерживают оба вида переноса) Если использовать жесткий перенос, то что делать с языками где жесткий перенос может сломать код? (например HAML) На данный момент свойство max_line_length существует, но работает только в vim.Расширение EditorConfig Если или программа, использующая EditorConfig, встречает незнакомую настройку, она должна ее проигнорировать. Это позволяет сделать формат расширяемым и не ограничиваться стандартными настройками.Здесь есть два направления для развития:
Настройки для отдельных редакторов/IDE Некоторые редакторы/IDE имеют свои особенности, например в jEdit набор кодировок больше, поэтому существует настройка jedit_charset, которая работает только для jedit.Настройки для отдельных языков/расширений Сторонние программы и плагины могут расширять EditorConfig и добавлять настройки, которые будут работать только для определенных языков или расширений файлов.Например npm модуль CodePainter, который использует EditorConfig в качестве конфигурационного файла, позволяет выбрать кавычки (одинарные или двойные), которые будут использована для строк (qoute_type), или расставить пробелы внутри скобок (spaces_in_brackets). Но все это будет работать только для JavaScript.
Так же у разработчиков есть в планах целый набор возможных настроек, которые возможно будут использованы в будущем, например:
curly_bracket_next_line Задает перенос фигурной скобки на следующую строчку, для языков где она естьjava_class_path Может быть использовано другими плагинамиlanguage Позволяет задать язык по расширению файла. Это может помочь, когда шаблонизаторы, например Jinja2, используют файлы с расширением .htmlПолный список можно посмотреть тут (eng.)
Где хранятся эти файлы? Каждый раз, когда плагин будет работать с файлом, содержащим код, он будет подниматься по файловому дереву, от директории с файлом до корня, и загружать настройки из каждого .editorconfig файла на пути.Приоритет настроек в конфигах, более близких к файлу, выше.Для файла, с таким путем: /Users/username/code/project/main.js, .editorconfig будет искаться в следющих местах:
/Users/username/code/project/.editorconfig /Users/username/code/.editorconfig /Users/username/.editorconfig /Users/.editorconfig /.editorconfig Поиск можно остановить, задав root=true в одном из конфигов на пути.Такая структура позволяет, например, создать .editorconfig в пользовательской папке и таким образом получить настройки по умолчанию для все проектов, и, при необходимости, переписать эти настройки на несколько уровней выше.
Как вычисляется настройки внутри файла? Когда парсер читает файл .editorconfig, он дает больший приоритет настройкам, которые находятся ниже.Авторы создали небольшое демо, где можно поиграться с форматом и посмотреть результатФорматирование существующего кода Плагины EditorConfig созданы таким образом, что они меняют настройки IDE в зависимости от окрытого файла. Иногда приходится использовать недокументрированне или необычные возможности IDE. Из-за этого форматирование применяется только при сохранении файлов, и если вы хотите использовать EditorConfig с уже существующим кодом, придется использовать один из инструментов ниже.editorconfig-tools [ github ] Набор инструментов для проверки и переформатирования кода. Находится на ранней стадии разработки и не пока не очень стабилен.ECLint [ github ] Похож по функциональности на editorconfig-tools, но, в дополнение, умеет анализировать существующий код и генерировать .editorconfig файл. Также на стадии разработки.CodePainter [ github, npm ] Использует .editorconfig, но работает только с JavaScript кодом.Имеет специальные настройки для JS кода.Плагины, как они работают и как их создавать? В помощь создателям плагинов создан набор основных компонентов (ядер), которые могут быть использованы в плагинах и берут на себя работу по поиску и парсингуконфигурационных файлов. На данный момент существуют версии на C, Java, Python, ведется работа надJavaScript версией.Сами плагины стараются перезаписать соответствующие настройки IDE вместо того, чтобы заниматься форматированием самим.
К сожалению, все еще не существует плагинов для такие IDE как Eclipse или NetBeans, их архитектура не позволяет легко менять настройки.
Если среди читающих есть кто-то, готовый взяться за создание плагинов, здесь неплохо расписано, как начать (eng.)
Для пользователей Windows Чтобы создать файл .editorconfig в Windows Explorer, вам нужно создать файл с именем .editorconfig. и Windows Explorer переименует его в .editorconfig.Ссылки и как в этом можно поучаствовать Команда EditorConfig проделала отличную работу, но впереди еще много трудностей, интересных задач и решений: Написание и поддержка плагинов для менее известных IDE. Разработка ядер для плагинов на других языках и доработка текущих Расширение функциональности и добавление новых настроек Доработка существующих решений для трансформации кода Если кому-то из читателей интересно было бы принять участвие в работе проекта, вот хорошие способы связаться с разработчиками (все на английском): Я не в команде проекта, но использую .editorconfig сам и с удовольствием передам ваши предложения и пожелания — пишите в личную почту.
