Создание и редактирование пользовательского файла EditorConfig

В 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

  1. Откройте проект в Visual Studio для Mac. Выберите решение или узел проекта, в который нужно добавить файл EditorConfig. При добавлении файла в каталог решения параметры .editorconfig применяются ко всем проектам в решении.

  2. Щелкните узел правой кнопкой мыши и выберите команду Добавить > Новый файл, чтобы открыть диалоговое окно Новый файл.

    Пункты меню содержимого

  3. Выберите Прочее > Пустой текстовый файл и присвойте ему имя .editorconfig. Нажмите клавишу Создать для создания файла и откройте его в редакторе:

    Диалоговое окно "Новый файл"

    Когда элемент добавляется на уровне решения, он автоматически создается и помещается в папку Элементы решения:

    Элемент решения, отображаемый в окне решения

  4. Измените файл. Пример:

    # 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
    
  5. Параметры из файла .editorconfig применяются к любому новому коду, который вы напишете, но уже существующий код для согласования с новыми параметрами может потребовать переформатирования. Чтобы применить параметры из файла .editorconfig к существующему исходному файлу, откройте этот файл и выберите в строке меню параметры Правка > Формат > Форматировать документ.

    Пункт меню "Форматировать документ"

Добавление существующего файла EditorConfig

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

Может потребоваться использование уже существующего файла .editorconfig в проекте. Чтобы добавить существующий файл, выполните следующие действия.

  1. Щелкните папку, которую нужно добавить, правой кнопкой мыши и выберите параметры Добавить > Добавить файлы.

  2. Перейдите в каталог, где находится необходимый файл.

  3. Файлы, названия которых начинаются с . (например, .editorconfig), в macOS являются скрытыми, поэтому нажмите клавиши Command+Shift+. , чтобы сделать файл .editorconfig видимым.

  4. Выберите файл .editorconfig и нажмите Открыть:

    Окно добавления нового файла

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

    Параметры диалогового окна добавления файла в папку

Применение параметров .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

После:

после применения параметров 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

См. также