言語サービスでの 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) |