Skip to content

Commit 9f50c3d

Browse files
authored
groundwork for code action ranges for quick fix (microsoft#204191)
* added in config * fix balance between diagnostic and range * cleanup
1 parent 9db238e commit 9f50c3d

File tree

3 files changed

+8
-1
lines changed

3 files changed

+8
-1
lines changed

extensions/typescript-language-features/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@
1111
"workspaceTrust",
1212
"multiDocumentHighlightProvider",
1313
"mappedEditsProvider",
14-
"codeActionAI"
14+
"codeActionAI",
15+
"codeActionRanges"
1516
],
1617
"capabilities": {
1718
"virtualWorkspaces": {

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -331,6 +331,7 @@ class TypeScriptQuickFixProvider implements vscode.CodeActionProvider<VsCodeCode
331331
const codeAction = new VsCodeCodeAction(action, action.description, vscode.CodeActionKind.QuickFix);
332332
codeAction.edit = getEditForCodeAction(this.client, action);
333333
codeAction.diagnostics = [diagnostic];
334+
codeAction.ranges = [diagnostic.range];
334335
codeAction.command = {
335336
command: ApplyCodeActionCommand.ID,
336337
arguments: [{ action, diagnostic, document } satisfies ApplyCodeActionCommand_args],
@@ -362,6 +363,8 @@ class TypeScriptQuickFixProvider implements vscode.CodeActionProvider<VsCodeCode
362363
const inferFromBody = new VsCodeCodeAction(action, 'Infer types using Copilot', vscode.CodeActionKind.QuickFix);
363364
inferFromBody.edit = new vscode.WorkspaceEdit();
364365
inferFromBody.diagnostics = [diagnostic];
366+
console.log(diagnostic, diagnostic.range);
367+
inferFromBody.ranges = [diagnostic.range];
365368
inferFromBody.isAI = true;
366369
inferFromBody.command = {
367370
command: EditorChatFollowUp.ID,
@@ -389,6 +392,7 @@ class TypeScriptQuickFixProvider implements vscode.CodeActionProvider<VsCodeCode
389392
aiCodeAction.edit = getEditForCodeAction(this.client, action);
390393
aiCodeAction.edit?.insert(document.uri, diagnostic.range.start, '');
391394
aiCodeAction.diagnostics = [diagnostic];
395+
aiCodeAction.ranges = [diagnostic.range];
392396
aiCodeAction.isAI = true;
393397
aiCodeAction.command = {
394398
command: CompositeCommand.ID,
@@ -443,6 +447,7 @@ class TypeScriptQuickFixProvider implements vscode.CodeActionProvider<VsCodeCode
443447
vscode.CodeActionKind.QuickFix);
444448

445449
action.diagnostics = [diagnostic];
450+
action.ranges = [diagnostic.range];
446451
action.command = {
447452
command: ApplyFixAllCodeAction.ID,
448453
arguments: [{ action } satisfies ApplyFixAllCodeAction_args],

extensions/typescript-language-features/tsconfig.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
"src/**/*",
1313
"../../src/vscode-dts/vscode.d.ts",
1414
"../../src/vscode-dts/vscode.proposed.codeActionAI.d.ts",
15+
"../../src/vscode-dts/vscode.proposed.codeActionRanges.d.ts",
1516
"../../src/vscode-dts/vscode.proposed.mappedEditsProvider.d.ts",
1617
"../../src/vscode-dts/vscode.proposed.multiDocumentHighlightProvider.d.ts",
1718
"../../src/vscode-dts/vscode.proposed.workspaceTrust.d.ts",

0 commit comments

Comments
 (0)