Skip to content

Commit ef3a39f

Browse files
authored
Merge pull request #240011 from gabritto/reverthover
Revert "[typescript-language-features] Expandable hover (#228255)"
2 parents e38edc4 + c071cfb commit ef3a39f

File tree

4 files changed

+10
-52
lines changed

4 files changed

+10
-52
lines changed

extensions/typescript-language-features/package.json

+1-11
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,7 @@
1111
"workspaceTrust",
1212
"multiDocumentHighlightProvider",
1313
"codeActionAI",
14-
"codeActionRanges",
15-
"editorHoverVerbosityLevel"
14+
"codeActionRanges"
1615
],
1716
"capabilities": {
1817
"virtualWorkspaces": {
@@ -1515,15 +1514,6 @@
15151514
"type": "boolean",
15161515
"default": true,
15171516
"markdownDescription": "%configuration.updateImportsOnPaste%"
1518-
},
1519-
"typescript.experimental.expandableHover": {
1520-
"type": "boolean",
1521-
"default": false,
1522-
"description": "%configuration.expandableHover%",
1523-
"scope": "window",
1524-
"tags": [
1525-
"experimental"
1526-
]
15271517
}
15281518
}
15291519
},

extensions/typescript-language-features/package.nls.json

+1-2
Original file line numberDiff line numberDiff line change
@@ -224,8 +224,7 @@
224224
"configuration.tsserver.web.projectWideIntellisense.suppressSemanticErrors": "Suppresses semantic errors on web even when project wide IntelliSense is enabled. This is always on when project wide IntelliSense is not enabled or available. See `#typescript.tsserver.web.projectWideIntellisense.enabled#`",
225225
"configuration.tsserver.web.typeAcquisition.enabled": "Enable/disable package acquisition on the web. This enables IntelliSense for imported packages. Requires `#typescript.tsserver.web.projectWideIntellisense.enabled#`. Currently not supported for Safari.",
226226
"configuration.tsserver.nodePath": "Run TS Server on a custom Node installation. This can be a path to a Node executable, or 'node' if you want VS Code to detect a Node installation.",
227-
"configuration.updateImportsOnPaste": "Enable updating imports when pasting code. Requires TypeScript 5.7+.\n\nBy default this shows a option to update imports after pasting. You can use the `#editor.pasteAs.preferences#` setting to update imports automatically when pasting: `\"editor.pasteAs.preferences\": [ \"text.updateImports.jsts\" ]`.",
228-
"configuration.expandableHover": "Enable expanding/contracting the hover to reveal more/less information from the TS server.",
227+
"configuration.updateImportsOnPaste": "Automatically update imports when pasting code. Requires TypeScript 5.6+.",
229228
"walkthroughs.nodejsWelcome.title": "Get started with JavaScript and Node.js",
230229
"walkthroughs.nodejsWelcome.description": "Make the most of Visual Studio Code's first-class JavaScript experience.",
231230
"walkthroughs.nodejsWelcome.downloadNode.forMacOrWindows.title": "Install Node.js",

extensions/typescript-language-features/src/languageFeatures/hover.ts

+7-37
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,10 @@ import { DocumentSelector } from '../configuration/documentSelector';
1111
import { documentationToMarkdown } from './util/textRendering';
1212
import * as typeConverters from '../typeConverters';
1313
import FileConfigurationManager from './fileConfigurationManager';
14-
import { API } from '../tsServer/api';
14+
1515

1616

1717
class TypeScriptHoverProvider implements vscode.HoverProvider {
18-
private lastHoverAndLevel: [vscode.Hover, number] | undefined;
1918

2019
public constructor(
2120
private readonly client: ITypeScriptServiceClient,
@@ -25,49 +24,27 @@ class TypeScriptHoverProvider implements vscode.HoverProvider {
2524
public async provideHover(
2625
document: vscode.TextDocument,
2726
position: vscode.Position,
28-
token: vscode.CancellationToken,
29-
context?: vscode.HoverContext,
30-
): Promise<vscode.VerboseHover | undefined> {
27+
token: vscode.CancellationToken
28+
): Promise<vscode.Hover | undefined> {
3129
const filepath = this.client.toOpenTsFilePath(document);
3230
if (!filepath) {
3331
return undefined;
3432
}
3533

36-
const enableExpandableHover = vscode.workspace.getConfiguration('typescript').get('experimental.expandableHover');
37-
let verbosityLevel: number | undefined;
38-
if (enableExpandableHover && this.client.apiVersion.gte(API.v570)) {
39-
verbosityLevel = Math.max(0, this.getPreviousLevel(context?.previousHover) + (context?.verbosityDelta ?? 0));
40-
}
41-
const args = { ...typeConverters.Position.toFileLocationRequestArgs(filepath, position), verbosityLevel };
42-
4334
const response = await this.client.interruptGetErr(async () => {
4435
await this.fileConfigurationManager.ensureConfigurationForDocument(document, token);
4536

37+
const args = typeConverters.Position.toFileLocationRequestArgs(filepath, position);
4638
return this.client.execute('quickinfo', args, token);
4739
});
4840

4941
if (response.type !== 'response' || !response.body) {
5042
return undefined;
5143
}
5244

53-
const contents = this.getContents(document.uri, response.body, response._serverType);
54-
const range = typeConverters.Range.fromTextSpan(response.body);
55-
const hover = verbosityLevel !== undefined ?
56-
new vscode.VerboseHover(
57-
contents,
58-
range,
59-
// @ts-expect-error
60-
/*canIncreaseVerbosity*/ response.body.canIncreaseVerbosityLevel,
61-
/*canDecreaseVerbosity*/ verbosityLevel !== 0
62-
) : new vscode.Hover(
63-
contents,
64-
range
65-
);
66-
67-
if (verbosityLevel !== undefined) {
68-
this.lastHoverAndLevel = [hover, verbosityLevel];
69-
}
70-
return hover;
45+
return new vscode.Hover(
46+
this.getContents(document.uri, response.body, response._serverType),
47+
typeConverters.Range.fromTextSpan(response.body));
7148
}
7249

7350
private getContents(
@@ -95,13 +72,6 @@ class TypeScriptHoverProvider implements vscode.HoverProvider {
9572
parts.push(md);
9673
return parts;
9774
}
98-
99-
private getPreviousLevel(previousHover: vscode.Hover | undefined): number {
100-
if (previousHover && this.lastHoverAndLevel && this.lastHoverAndLevel[0] === previousHover) {
101-
return this.lastHoverAndLevel[1];
102-
}
103-
return 0;
104-
}
10575
}
10676

10777
export function register(

extensions/typescript-language-features/tsconfig.json

+1-2
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
"../../src/vscode-dts/vscode.proposed.codeActionAI.d.ts",
1515
"../../src/vscode-dts/vscode.proposed.codeActionRanges.d.ts",
1616
"../../src/vscode-dts/vscode.proposed.multiDocumentHighlightProvider.d.ts",
17-
"../../src/vscode-dts/vscode.proposed.workspaceTrust.d.ts",
18-
"../../src/vscode-dts/vscode.proposed.editorHoverVerbosityLevel.d.ts",
17+
"../../src/vscode-dts/vscode.proposed.workspaceTrust.d.ts"
1918
]
2019
}

0 commit comments

Comments
 (0)