Skip to content

Conversation

@CyrusNajmabadi
Copy link
Member

We will still have reg keys available if absolutely necessary. But this will no longer be a supported config as we need OOP for several core capabilities (reloading generators/analyzers, Razor, semantic search and others).

@ghost ghost added Area-IDE untriaged Issues and PRs which have not yet been triaged by a lead labels Mar 20, 2025
@CyrusNajmabadi CyrusNajmabadi changed the base branch from main to release/dev17.15 March 21, 2025 16:02
@CyrusNajmabadi CyrusNajmabadi marked this pull request as ready for review March 21, 2025 16:45
@CyrusNajmabadi CyrusNajmabadi requested a review from a team as a code owner March 21, 2025 16:45
{"dotnet_enable_event_hook_up", new LocalUserProfileStorage(@"Roslyn\Internal\OnOff\Features", "Event Hookup")},
{"dotnet_format_on_save", new LocalUserProfileStorage(@"Roslyn\Internal\OnOff\Features", "FormatOnSave")},
{"dotnet_code_analysis_in_separate_process", new LocalUserProfileStorage(@"Roslyn\Internal\OnOff\Features", "OOP64Bit")},
{"dotnet_code_analysis_in_separate_process", new LocalUserProfileStorage(@"Roslyn\Internal\OnOff\Features", "OOP64Bit_New")},
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

these flags still exist as an unsupported way to opt out of these features. however, i've moved them to new regkeys so that everyone defualts into the supported state. that way someone who disabled something in the past, isn't able to reenable if they want that.

Copy link
Member

@genlu genlu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:shipit:

{"dotnet_enable_event_hook_up", new LocalUserProfileStorage(@"Roslyn\Internal\OnOff\Features", "Event Hookup")},
{"dotnet_format_on_save", new LocalUserProfileStorage(@"Roslyn\Internal\OnOff\Features", "FormatOnSave")},
{"dotnet_code_analysis_in_separate_process", new LocalUserProfileStorage(@"Roslyn\Internal\OnOff\Features", "OOP64Bit")},
{"dotnet_code_analysis_in_separate_process", new LocalUserProfileStorage(@"Roslyn\Internal\OnOff\Features", "DotnetCodeAnalysisInSeparateProcess")},
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

these flags still exist as an unsupported way to opt out of these features. however, i've moved them to new regkeys so that everyone defualts into the supported state. that way someone who disabled something in the past, isn't able to reenable if they want that.

@dotnet dotnet deleted a comment from CyrusNajmabadi Mar 21, 2025
Copy link
Member

@jasonmalinowski jasonmalinowski left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:shipit:

SourceGeneratorExecution: globalOptions.GetOption(SourceGeneratorExecution),
ReloadChangedAnalyzerReferences:
globalOptions.GetOption(ReloadChangedAnalyzerReferences) ?? globalOptions.GetOption(ReloadChangedAnalyzerReferencesFeatureFlag),
globalOptions.GetOption(ReloadChangedAnalyzerReferences),
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we just pull this entirely? Whereas the in-proc/out-of-proc can have a bit of user impact if they depend on it in obscure ways, this is only needed if we have bugs, right?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes. but if there is a bug, i don't mind having a reg-key to disable this if a big customer needs it.

{"dotnet_enable_event_hook_up", new LocalUserProfileStorage(@"Roslyn\Internal\OnOff\Features", "Event Hookup")},
{"dotnet_format_on_save", new LocalUserProfileStorage(@"Roslyn\Internal\OnOff\Features", "FormatOnSave")},
{"dotnet_code_analysis_in_separate_process", new LocalUserProfileStorage(@"Roslyn\Internal\OnOff\Features", "OOP64Bit")},
{"dotnet_code_analysis_in_separate_process", new LocalUserProfileStorage(@"Roslyn\Internal\OnOff\Features", "DotnetCodeAnalysisInSeparateProcess")},
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
{"dotnet_code_analysis_in_separate_process", new LocalUserProfileStorage(@"Roslyn\Internal\OnOff\Features", "DotnetCodeAnalysisInSeparateProcess")},
{"dotnet_code_analysis_in_separate_process", new LocalUserProfileStorage(@"Roslyn\Internal\OnOff\Features", "CodeAnalysisInSeparateProcess")},

The "dotnet" prefix isn't really needed for the regkey since it's already Roslyn prefixed. Not worth changing if you don't have to touch this PR for some other reason but I'm generally but not sure we want to start a tradition of prefixing everything redundantly.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do. the idea for me was to keep teh name of the value in line with the snake_cased_name. so it's all 'consistent' in that way.

@CyrusNajmabadi CyrusNajmabadi merged commit f518467 into dotnet:release/dev17.15 Mar 21, 2025
22 of 25 checks passed
@CyrusNajmabadi CyrusNajmabadi deleted the oopPublicOptin branch March 21, 2025 19:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Area-IDE Needs UX Triage untriaged Issues and PRs which have not yet been triaged by a lead VSCode

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants