Поддержка EditorConfig для языковой службы
Файлы EditorConfig позволяют описать общие параметры текстового редактора, такие как размер отступа, на основе каждого проекта. Дополнительные сведения о поддержке Visual Studio для файлов EditorConfig см. в статье "Создание переносимых параметров редактора" с помощью EditorConfig.
В большинстве случаев при реализации языковой службы Visual Studio не требуется выполнять никаких дополнительных действий для поддержки универсальных свойств EditorConfig. Основной редактор автоматически обнаруживает и считывает .editorconfig
файл, когда пользователи открывают файлы, и задает соответствующие параметры текстового буфера и представления. Однако для изменений, таких как вкладки и пробелы, некоторые языковые службы предпочитают использовать соответствующий параметр контекстного текстового представления, а не глобальные параметры. В этих случаях языковую службу нужно обновить для поддержки файлов EditorConfig.
Ниже приведены изменения, необходимые для обновления языковой службы для поддержки файлов EditorConfig, заменив глобальный параметр для конкретного языка контекстным параметром:
Стиль отступов
Параметры для конкретного языка | Контекстные параметры |
---|---|
Microsoft.VisualStudio.TextManager.Interop.LANGPREFERENCES.fInsertTabs Microsoft.VisualStudio.Package.LanguagePreferences.InsertTabs |
!textBufferOptions.GetOptionValue(DefaultOptions.ConvertTabsToSpacesOptionId) !textView.Options.GetOptionValue(DefaultOptions.ConvertTabsToSpacesOptionId) |
Размер отступа
Параметры для конкретного языка | Контекстные параметры |
---|---|
Microsoft.VisualStudio.TextManager.Interop.LANGPREFERENCES.uIndentSize Microsoft.VisualStudio.Package.LanguagePreferences.InsertTabs.IndentSize |
textBufferOptions.GetOptionValue(DefaultOptions.IndentSizeOptionId) textView.Options.GetOptionValue(DefaultOptions.IndentSizeOptionId) |
Размер интервала табуляции
Параметры для конкретного языка | Контекстные параметры |
---|---|
Microsoft.VisualStudio.TextManager.Interop.LANGPREFERENCES.uTabSize Microsoft.VisualStudio.Package.LanguagePreferences.InsertTabs.TabSize |
textBufferOptions.GetOptionValue(DefaultOptions.TabSizeOptionId) textView.Options.GetOptionValue(DefaultOptions.TabSizeOptionId) |