Skip to content

Conversation

@tmat
Copy link
Member

@tmat tmat commented Oct 6, 2021

ForceRoslynLSPCompletionExperiment is no longer necessary since LspCompletionFeatureFlag feature flag can be turned on/off directly as a global option.
UsePartialSemanticForCompletion is a test-hook flag that can be set directly on CompletionServiceWithProviders.

@tmat tmat requested a review from a team as a code owner October 6, 2021 19:44
@ghost ghost added the Area-IDE label Oct 6, 2021
@tmat
Copy link
Member Author

tmat commented Oct 6, 2021

@allisonchou

Copy link
Member

@CyrusNajmabadi CyrusNajmabadi left a comment

Choose a reason for hiding this comment

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

Approving with the TestAccessor change.

Copy link
Contributor

@allisonchou allisonchou left a comment

Choose a reason for hiding this comment

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

Thanks Tomas! lgtm.

Copy link
Contributor

@sharwell sharwell left a comment

Choose a reason for hiding this comment

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

LspOptions.LspCompletionFeatureFlag only has a feature flag storage location. Feature flags cannot be set on machines without telemetry enabled (not even through manual local override for testing), so we either need to retain the ForceRoslynLSPCompletionExperiment option or add a RoamingProfileStorageLocation to LspCompletionFeatureFlag

@tmat
Copy link
Member Author

tmat commented Oct 6, 2021

LspOptions.LspCompletionFeatureFlag only has a feature flag storage location. Feature flags cannot be set on machines without telemetry enabled (not even through manual local override for testing), so we either need to retain the ForceRoslynLSPCompletionExperiment option or add a RoamingProfileStorageLocation to LspCompletionFeatureFlag

Is this to allow manually changing it in the registry? I don't understand the scenario.

@sharwell
Copy link
Contributor

sharwell commented Oct 6, 2021

Is this to allow manually changing it in the registry?

Yes, otherwise there is no way to test the flag.

@tmat
Copy link
Member Author

tmat commented Oct 6, 2021

Is this to allow manually changing it in the registry?

Yes, otherwise there is no way to test the flag.

Testing where? Integration tests on CI? In unit tests the flag is tested, the registry storage is not needed. Integration Tests can also use IGlobalOptionsService to set the flag as needed.

@sharwell
Copy link
Contributor

sharwell commented Oct 6, 2021

Testing where?

Locally. It's impossible to set a feature flag for local testing. All feature flags are backed by secondary option with registry storage so local developers can set the value for smoke testing and/or debugging.

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.

UsePartialSemanticForCompletion part LGTM

@tmat
Copy link
Member Author

tmat commented Oct 6, 2021

@sharwell This feature flag can be set locally in UI here:
image

@sharwell
Copy link
Contributor

sharwell commented Oct 6, 2021

@tmat Awesome, verified locally that IVsFeatureFlags (unlike IVsExperimentationService) can be used locally when telemetry is disabled.

@tmat
Copy link
Member Author

tmat commented Oct 6, 2021

Thanks for the extra validation!

@sharwell
Copy link
Contributor

sharwell commented Oct 6, 2021

Note this means there are a bunch of other options using the dual pattern that can likely be consolidated.

@tmat
Copy link
Member Author

tmat commented Oct 6, 2021

@sharwell Yeah, that's likely. Will add it to the list of things to clean up :)

@tmat
Copy link
Member Author

tmat commented Oct 6, 2021

Not all our feature flags are shown in the above UI. Maybe they should be. #55974

@tmat tmat enabled auto-merge (squash) October 6, 2021 22:53
@tmat tmat merged commit d1a39e2 into dotnet:main Oct 7, 2021
@ghost ghost added this to the Next milestone Oct 7, 2021
@tmat tmat deleted the CompletionOptions2 branch October 7, 2021 04:51
@sharwell

This comment has been minimized.

@sharwell
Copy link
Contributor

sharwell commented Oct 7, 2021

I don't think we need to show all feature flags in the UI. For items we don't expect users to change, it's sufficient to allow them to be set via vsregedit.

@RikkiGibson RikkiGibson modified the milestones: Next, 17.1.P1 Oct 25, 2021
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.

6 participants