Skip to content

Commit 56968c5

Browse files
authored
Turn Copilot Hover on by default. React immediately to settings changes for copilot hover. Change flight check to new flag to indicate a disabled state. (#13385)
1 parent 0681d82 commit 56968c5

File tree

3 files changed

+9
-19
lines changed

3 files changed

+9
-19
lines changed

Extension/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3339,7 +3339,8 @@
33393339
"type": "string",
33403340
"enum": [
33413341
"default",
3342-
"disabled"
3342+
"disabled",
3343+
"enabled"
33433344
],
33443345
"default": "default",
33453346
"markdownDescription": "%c_cpp.configuration.copilotHover.markdownDescription%",

Extension/src/LanguageServer/Providers/CopilotHoverProvider.ts

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,10 @@ export class CopilotHoverProvider implements vscode.HoverProvider {
3333
await this.client.ready;
3434

3535
const settings: CppSettings = new CppSettings(vscode.workspace.getWorkspaceFolder(document.uri)?.uri);
36-
if (settings.hover === "disabled") {
36+
if (settings.hover === "disabled" ||
37+
settings.copilotHover === "disabled" ||
38+
(settings.copilotHover === "default" && await telemetry.isFlightEnabled("CppCopilotHoverDisabled"))) {
39+
// Either disabled by the user or by the flight.
3740
return undefined;
3841
}
3942

@@ -46,13 +49,6 @@ export class CopilotHoverProvider implements vscode.HoverProvider {
4649
}
4750
}
4851

49-
if (new CppSettings().copilotHover === "default") {
50-
// Check flight to make sure the feature is enabled.
51-
if (!await telemetry.isFlightEnabled("CppCopilotHover")) {
52-
return undefined;
53-
}
54-
}
55-
5652
const newHover = this.isNewHover(document, position);
5753
if (newHover) {
5854
this.reset();

Extension/src/LanguageServer/client.ts

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1332,17 +1332,9 @@ export class DefaultClient implements Client {
13321332
initializedClientCount = 0;
13331333
this.inlayHintsProvider = new InlayHintsProvider();
13341334
this.hoverProvider = new HoverProvider(this);
1335+
this.copilotHoverProvider = new CopilotHoverProvider(this);
13351336

1336-
const settings: CppSettings = new CppSettings();
1337-
this.currentCopilotHoverEnabled = new PersistentWorkspaceState<string>("cpp.copilotHover", settings.copilotHover);
1338-
if (settings.copilotHover !== "disabled") {
1339-
this.copilotHoverProvider = new CopilotHoverProvider(this);
1340-
this.disposables.push(vscode.languages.registerHoverProvider(util.documentSelector, instrument(this.copilotHoverProvider)));
1341-
}
1342-
1343-
if (settings.copilotHover !== this.currentCopilotHoverEnabled.Value) {
1344-
this.currentCopilotHoverEnabled.Value = settings.copilotHover;
1345-
}
1337+
this.disposables.push(vscode.languages.registerHoverProvider(util.documentSelector, instrument(this.copilotHoverProvider)));
13461338
this.disposables.push(vscode.languages.registerHoverProvider(util.documentSelector, instrument(this.hoverProvider)));
13471339
this.disposables.push(vscode.languages.registerInlayHintsProvider(util.documentSelector, instrument(this.inlayHintsProvider)));
13481340
this.disposables.push(vscode.languages.registerRenameProvider(util.documentSelector, instrument(new RenameProvider(this))));
@@ -1362,6 +1354,7 @@ export class DefaultClient implements Client {
13621354
this.codeFoldingProvider = new FoldingRangeProvider(this);
13631355
this.codeFoldingProviderDisposable = vscode.languages.registerFoldingRangeProvider(util.documentSelector, instrument(this.codeFoldingProvider));
13641356

1357+
const settings: CppSettings = new CppSettings();
13651358
if (settings.isEnhancedColorizationEnabled && semanticTokensLegend) {
13661359
this.semanticTokensProvider = instrument(new SemanticTokensProvider());
13671360
this.semanticTokensProviderDisposable = vscode.languages.registerDocumentSemanticTokensProvider(util.documentSelector, this.semanticTokensProvider, semanticTokensLegend);

0 commit comments

Comments
 (0)