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