Options master plan #58717
Labels
Area-IDE
Concept-Continuous Improvement
Story
User Story
A single user-facing feature. Can be grouped under an epic.
Milestone
Work items:
TryMapEditorConfigKeyToOption
)IEditorConfigOptionMappingService
IGlobalOptionService
to LSP layer, later on to EditorFeatures once solution crawler is removedCurrently also used by LSP server to read Pull/Push diagnostics option.
Remove InlineHintsOptions.DisplayAllOverride #57283
OptionSet
,DocumentOptionSet
,SerializableOptionSet
- replaced withSolutionOptionSet
WorkspaceOptionSet
,AnalyzerConfigOptionSet
IDocumentOptionsProvider
,Remove
RazorDocumentOptionsProvider
. Razor only uses this to override indentation options. These should flow via LSP/EditorOptions.Refactor
InferredIndentationDocumentOptionsProviderFactory
to avoidIDocumentOptionsProvider
. These should be just flow from EditorOptions.IOptionService
(replaced withILegacyWorkspaceOptionService
)Document.GetOptionsAsync
Solution.Options
andWorkspace.Options
Services that currently read Solution options should be passed their options explicitly using specific option record (as described in Separate global options and solution options #55728).
The source of these options would be either
IGlobalOptionService
service accessed in client code in EditorFeatures layer or above, or LSP server who receives the options from the LSP client.Note: Need to serialize values for options read from editorconfig.
The corresponding APIs need to load these from
Solution.Options
for backward compat. These will not be available OOP.All options should be global options or .editorconfig options. SolutionExportOptionAttirbute is only needed for serialization to SerializableOptionSet. GlobalExportOptionAttribute is not needed.
AnalyzerConfigOptions
Remove
AnalyzerConfigOptionsImpl
, which combinesAnalyzerConfigOptions
withOptionSet
. Instead, represent .editorconfig option values that are stored in VS registry settings and used as defaults when no .editorconfig applies asAnalyzerConfigOptions
implementing a global .editorconfig. This instance ofAnalyzerConfigOptions
can be stored in onWorkspaceAnalyzerOptions
and trivially serializable.Editor/Platform prerequisites:
IVsTextView.IndentStyle
available throughITextView.Options
: VS #1412138Related:
The text was updated successfully, but these errors were encountered: