Определение согласованных стилей программирования с помощью EditorConfig
Чтобы применить согласованные стили программирования для всех, кто работает в базе кода, можно добавить .editorConfig
файл в решение или проект. Параметры файла EditorConfig соответствуют спецификации формата файла, поддерживаемой EditorConfig.org. Многие редакторы кода и приложения поддерживают файлы EditorConfig, включая Visual Studio. Так как параметры находятся в файле, они сопровождают код и могут использоваться даже за пределами Visual Studio.
В Visual Studio параметры файла EditorConfig имеют приоритет над различными параметрами глобального текстового редактора, доступными в разделе >>"Текстовый редактор параметров">C/C++>Code Style. Файл EditorConfig можно использовать для настройки каждой базы кода для использования параметров текстового редактора, относящихся к проекту.
Вы можете вручную заполнить файл EditorConfig или автоматически создать его на основе параметров стиля кода, выбранных в Visual Studio. Чтобы создать новый .editorconfig
файл на основе текущих параметров Visual Studio, в главном меню Visual Studio выберите "Параметры текстового редактора>">>C/C++>General. Затем выберите "Создать файл .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
- end_of_line
- charset
- trim_trailing_whitespace
- insert_final_newline
- root
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 в проект или решение, выполните следующие действия.
Откройте проект или решение в Visual Studio. Выберите решение или узел проекта в зависимости от того, должны ли параметры EditorConfig применяться ко всем проектам в решении или только к одному. Вы также можете выбрать папку в проекте или решении, чтобы добавить
.editorconfig
этот файл.В меню выберите "Добавить новый элемент проекта>" или нажмите клавиши CTRL+SHIFT+A.
Откроется диалоговое окно Добавление нового элемента .
В поле поиска введите editorconfig.
В результатах поиска отобразятся два шаблона элементов для файла editorconfig.
Выберите шаблон файла editorconfig (пустой), чтобы добавить файл EditorConfig, предварительно заполненный параметрами EditorConfig по умолчанию для пробелов, стиля кода и соглашений об именовании. Или выберите шаблон файла editorconfig (.NET), чтобы добавить файл EditorConfig, предварительно заполненный стандартным пробелами .NET, стилем кода и соглашениями об именовании.
Новый
.editorconfig
файл отображается в Обозреватель решений и открывается в редакторе в качестве новой вкладки.При необходимости измените файл и сохраните его.
Другие способы добавления файла EditorConfig
Существует еще несколько способов добавления в проект файла EditorConfig:
Используйте IntelliCode для Visual Studio для создания
.editorconfig
файла в решении. Щелкните правой кнопкой мыши Обозреватель решений и выберите в контекстном меню команду Add>New EditorConfig (IntelliCode). IntelliCode для Visual Studio определяет стили кода из существующего кода, а затем создает файл 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. Например:
Если вы редактируете множество файлов EditorConfig, вы можете найти расширение Language Service EditorConfig. В число возможностей этого расширения входят выделение синтаксиса, улучшенная технология IntelliSense, функции проверки и форматирования кода.
Пример
В следующем примере показано состояние отступа фрагмента кода C# до и после добавления файла EditorConfig в проект:
В диалоговом окне "Параметры инструментов>" задайте параметры текстового редактора>C#>TAB для текстового редактора Visual Studio, чтобы создать четыре пробела при нажатии клавиши TAB.
Как ожидалось, при нажатии клавиши TAB на следующей строке она отступит, добавив четыре пробела символов.
Используйте EditorConfig для переключения параметров вкладок для использования вкладок.
Выберите "Использовать вкладки " в файле EditorConfig.
Добавьте новый файл с именем
.editorconfig
в проект со следующим содержимым. Индикатор[*.cs]
означает, что это изменение применяется только к файлам кода C#в проекте.# Top-most EditorConfig file root = true # Tab indentation [*.cs] indent_style = tab
При нажатии клавиши TAB символы вкладок теперь отображаются вместо пробелов.
Устранение неполадок параметров EditorConfig
Если файл EditorConfig существует в любом месте структуры каталогов в расположении проекта или выше, Visual Studio применяет параметры редактора в этом файле к редактору. В этом случае в строке состояния может появиться следующее сообщение:
User preferences for this file type are overridden by this project's coding conventions.
Это означает, что если какие-либо параметры редактора в текстовом редакторе параметров инструментов>>(например, размер отступа, размер вкладки или соглашения о коде) указаны в файле EditorConfig или выше проекта в структуре каталогов, соглашения в файле EditorConfig переопределяют параметры в текстовом редакторе.
Чтобы устранить неполадки EditorConfig, выполните следующие действия.
Чтобы отключить поддержку EditorConfig для Visual Studio, снимите флажок "Следовать соглашениям о написании проекта" в текстовом редакторе параметров>инструментов.>
Чтобы найти файлы EditorConfig в родительских каталогах проекта, откройте командную строку и выполните следующую команду из корня диска, содержащего проект.
dir .editorconfig /s
Чтобы управлять областью соглашений EditorConfig, задайте
root=true
свойство в файле в.editorconfig
корне репозитория или в каталоге, который находится в проекте.Visual Studio ищет файл с именем
.editorconfig
в каталоге открытого файла и в каждом родительском каталоге. Поиск заканчивается, когда он достигает корневого пути к файлу или если.editorconfig
файл найденroot=true
.