Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Option key2 #65977

Closed
wants to merge 5 commits into from
Closed

Option key2 #65977

wants to merge 5 commits into from

Conversation

tmat
Copy link
Member

@tmat tmat commented Dec 13, 2022

The first commit simplifies implementation of GlobalOptionService.SetOptions and SetGlobalOptions and clarifies the difference.

Next, we replace OptionKey with OptionKey2 in all Roslyn code that does not deal with OptionSet or other public APIs that expose options. Eventually we'll be able to ban OptionKey internally. We also push all translations between internal and public code style option values into SolutionOptionSet and remove them from GlobalOptionService. The former exposes the values through public API while the latter does not. After this change global options only operate with internal representations. A lot of mechanical changes are needed for this change - the most interesting files to review are: OptionSet.cs, SolutionOptionSet.cs, GlobalOptionService.cs, OptionsHelpers.cs, OptionKeyTest.cs and GlobalOptionServiceTests.cs.

Adds a new integration test that enumerates all global option definitions in Roslyn assemblies and validates that each of these options can be updated in VS. This addresses test hole where we did not validate reading options from VS settings/registry.

Implements #65394

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant