Поделиться через


Определение согласованных стилей программирования с помощью EditorConfig

Чтобы обеспечить согласованные стили программирования для всех, кто работает в базе кода, можно добавить файл .editorConfig в решение или проект. Параметры файла EditorConfig соответствуют спецификации формата файла, поддерживаемой EditorConfig.org. Многие редакторы кода и приложения поддерживают файлы EditorConfig, включая Visual Studio. Так как параметры находятся в файле, они сопровождают код и могут использоваться даже за пределами Visual Studio.

В Visual Studio параметры файла EditorConfig имеют приоритет над различными настройками глобального текстового редактора, доступными в разделе Параметры>>текстового редактора>C/C++>стиль кода. Файл EditorConfig можно использовать для настройки каждой базы кода для использования параметров текстового редактора, относящихся к проекту.

Вы можете вручную заполнить файл EditorConfig или автоматически создать его на основе параметров стиля кода, выбранных в Visual Studio. Чтобы создать новый файл .editorconfig на основе текущих параметров Visual Studio, в главном меню Visual Studio выберите >Параметры>Текстовый редактор>C/C++>Стиль кода. Затем выберите Создать файл editorconfig из параметров. Выберите папку, в которой находится проект, а затем выберите выбрать папку, чтобы сохранить файл .editorconfig.

При использовании файла EditorConfig можно по-прежнему задавать собственные параметры редактора в текстовом редакторе Visual Studio. Эти параметры текстового редактора применяются всякий раз, когда вы работаете в базе кода без файла EditorConfig или когда файл EditorConfig не переопределяет определенный параметр. Пример такого предпочтения заключается в том, следует ли использовать вкладки или пробелы для стиля отступа кода.

При добавлении файла EditorConfig в проект в Visual Studio только новые строки кода форматируются на основе параметров EditorConfig. Форматирование существующего кода не изменяется, если вы не выполните одну из следующих команд:

  • очистка кода.

    Выберите очистки кода в редакторе Visual Studio или нажмите клавиши CTRL+K, CTRL+E. Эта команда применяется к параметрам пробела, таким как стиль отступа и выбранные параметры стиля кода, такие как параметры круглых скобок.

  • Формат документа.

    Выберите Изменить>расширенные>формат документаили нажмите клавиши CTRL+K, CTRL+D по умолчанию. Эта команда применяется только к настройкам пробелов, таким как стиль отступов.

Согласованность кода

Параметры файла EditorConfig позволяют поддерживать согласованные стили кода и соглашения в базе кода независимо от используемого редактора или интегрированной среды разработки. Некоторые стили кода, которые вы можете настроить, включают задание стиля отступов, ширину табуляции, символы конца строки и кодировку. Например, если в кодовой базе на C# принято делать отступы из пяти пробелов, использовать кодировку UTF-8 в документах, а строки заканчивать на CR/LF, можно настроить файл EditorConfig для соблюдения этого соглашения.

Файлы EditorConfig полезны, когда соглашения о кодировке, которые вы используете в своих личных проектах, отличаются от соглашений, используемых в проектах вашей команды. Например, вы можете предпочесть, чтобы отступ добавлял символ табуляции в ваш код. Однако ваша команда может предпочесть, чтобы отступ состоял из четырёх пробелов. Файлы EditorConfig устраняют эту проблему, позволяя иметь конфигурацию для каждого сценария.

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

Заметка

Соглашения, заданные в файле EditorConfig, не могут быть применены в конвейере CI/CD в качестве ошибок сборки или предупреждений. Любые отклонения стиля появляются исключительно в редакторе Visual Studio и в списке ошибок .

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

Редактор в Visual Studio поддерживает основной набор свойств EditorConfig:

  • indent_style
  • indent_size
  • tab_width
  • конец_строки
  • кодировка
  • trim_trailing_whitespace
  • insert_final_newline
  • корень

EditorConfig поддерживает все языки, поддерживаемые Visual Studio, за исключением параметров редактора EditorConfig поддержки XML.

EditorConfig поддерживает соглашения стиле кода, включая языка, форматированиеи соглашения об именовании для C# и Visual Basic.

Добавление и удаление файлов EditorConfig

При добавлении файла EditorConfig в проект или базу кода Visual Studio форматирует все новые строки кода, которые вы записываете в соответствии с параметрами файла EditorConfig. Однако Visual Studio не преобразует существующие стили в новые, пока не отформатируйте документ или не выполните очистку кода. Например, если отступы в вашем файле отформатированы с помощью табуляций, и вы добавляете файл EditorConfig, который форматирует отступы пробелами, символы отступов не преобразуются в пробелы автоматически. При форматировании документа (выберите Изменить>Дополнительные>Форматировать документ или нажмите Ctrl+K, Ctrl+D), настройки пробелов из файла EditorConfig применяются к существующим строкам кода.

При удалении файла EditorConfig из проекта или базы кода необходимо закрыть и повторно открыть все открытые файлы кода для параметров глобального редактора, чтобы повлиять на новые строки кода.

Добавление файла EditorConfig в проект

Чтобы добавить файл EditorConfig в проект или решение, выполните следующие действия.

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

  2. В меню выберите Project>Добавить новый элементили нажмите клавиши CTRL+SHIFT+A.

    Диалоговое окно добавления нового элемента открывается.

  3. В поле поиска введите editorconfig.

    В результатах поиска отображаются два шаблона элементов editorconfig File.

    снимок экрана, на котором показаны шаблоны элементов файла EditorConfig в Visual Studio.

  4. Выберите шаблон editorconfig File (empty), чтобы добавить файл EditorConfig, предварительно заполненный параметрами EditorConfig по умолчанию для пробелов, стиля кода и соглашений об именовании. Или выберите шаблон файла editorconfig (.NET), чтобы добавить файл EditorConfig, предварительно заполненный стандартным пробелами .NET, стилем кода и соглашениями об именовании.

    Новый файл .editorconfig отображается в обозревателе решений и открывается в редакторе в качестве новой вкладки.

    снимок экрана, на котором показан файл editorconfig в обозревателе решений и редакторе.

  5. При необходимости измените файл и сохраните его.

Другие способы добавления файла EditorConfig

В проект можно добавить файл EditorConfig несколькими другими способами:

Иерархия файлов и приоритет

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

Следуйте этим рекомендациям:

  • Чтобы переопределить некоторые или все параметры EditorConfig, добавьте файл .editorconfig на том уровне иерархии файлов, к которому вы хотите применить изменённые параметры. Новые параметры файла EditorConfig применяются к файлам на том же уровне и файлах в любых подкаталогах.

    снимок экрана, на котором показана иерархия EditorConfig.

  • Если вы хотите переопределить некоторые параметры, но не все параметры, укажите только эти параметры в файле .editorconfig. Переопределяются только те свойства, которые вы явно перечисляете в файле .editorconfig нижнего уровня. Другие параметры из любых файлов с более высоким уровнем .editorconfig продолжают применяться.

  • Если вы хотите убедиться, что к этой части базы кода не применяются параметры из файлов с более высоким уровнем .editorconfig, добавьте свойство root=true в файл .editorconfig нижнего уровня.

    # top-most EditorConfig file for this level
    root = true
    

Файлы EditorConfig считываются сверху вниз. Если есть несколько свойств с одинаковым именем, последнее найденное свойство с одинаковым именем имеет приоритет.

Изменение файлов EditorConfig

Visual Studio 2022 предоставляет визуальный редактор для файлов EditorConfig.

После изменения файла EditorConfig необходимо перезагрузить файлы кода, чтобы новые параметры вошли в силу.

Visual Studio помогает редактировать файлы EditorConfig, предоставляя списки завершения IntelliSense. Например:

снимок экрана, показывающий IntelliSense в файле EditorConfig.

Если вы редактируете много файлов EditorConfig, вы можете найти расширение EditorConfig Language Service полезным. Некоторые функции этого расширения включают выделение синтаксиса, улучшенное форматирование IntelliSense, проверку и форматирование кода.

снимок экрана, на котором показан IntelliSense с расширением EditorConfig Language Service.

Пример

В следующем примере показано состояние отступа фрагмента кода C# до и после добавления файла EditorConfig в проект:

  1. В диалоговом окне ">параметры" задайте текстовый редактор>вкладки C#>вкладки для текстового редактора Visual Studio, чтобы создать четыре пробела при нажатии клавиши TAB.

    снимок экрана, на котором показан параметр вкладки

  2. Как и ожидалось, при нажатии клавиши Tab на следующей строке она делает отступ, добавляя четыре пробела.

    снимок экрана, на котором показан ключ TAB, добавляющий пробелы в коде.

    снимок экрана, на котором показан ключ TAB, добавляющий пробелы в коде.

  3. Используйте EditorConfig для переключения параметров вкладок для использования вкладок.

    Выберите Использовать вкладки в файле EditorConfig.

    снимок экрана, показывающий настройку использования вкладок для клавиши TAB.

    Добавьте новый файл с именем .editorconfig в проект со следующим содержимым. Индикатор [*.cs] означает, что это изменение применяется только к файлам кода C# в проекте.

    # Top-most EditorConfig file
    root = true
    
    # Tab indentation
    [*.cs]
    indent_style = tab
    
  4. При нажатии клавиши вкладки теперь вместо пробелов отображаются символы вкладок.

    снимок экрана, на котором показана клавиша TAB, добавляющая символы табуляции в код.

    снимок экрана, на котором показано, как клавиша Tab добавляет символы табуляции в код.

Устранение неполадок параметров EditorConfig

Если файл EditorConfig существует в любом месте структуры каталогов в расположении проекта или выше, Visual Studio применяет параметры редактора в этом файле к редактору. В этом случае в строке состояния может появиться следующее сообщение:

User preferences for this file type are overridden by this project's coding conventions.

Это означает, что если какие-либо настройки редактора в Сервисе>Параметры>Текстовый редактор (например, размер и стиль отступа, размер табуляции или соглашения о кодировании) указаны в файле EditorConfig на уровне проекта или выше в структуре каталогов, то соглашения в файле EditorConfig переопределяют параметры в Текстовом редакторе.

Чтобы устранить неполадки EditorConfig, выполните следующие действия.

  1. Чтобы отключить поддержку EditorConfig для Visual Studio, снимите флажок Следовать соглашениям о кодировании проекта в Tools>Options>Text Editor.

    снимок экрана, на котором показан параметр

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

    dir .editorconfig /s
    
  3. Чтобы управлять областью соглашений EditorConfig, задайте свойство root=true в файле .editorconfig в корне репозитория или в каталоге, который находится в проекте.

    Visual Studio ищет файл с именем .editorconfig в каталоге открытого файла и в каждом родительском каталоге. Поиск заканчивается, когда он достигает корневого пути к файлу или если найден файл .editorconfig с root=true.