diff --git a/extensions/typescript/src/features/quickFixProvider.ts b/extensions/typescript/src/features/quickFixProvider.ts index 9293818f1b0..24f493e49e5 100644 --- a/extensions/typescript/src/features/quickFixProvider.ts +++ b/extensions/typescript/src/features/quickFixProvider.ts @@ -106,7 +106,7 @@ export default class TypeScriptQuickFixProvider implements vscode.CodeActionProv private getCommandForAction(action: Proto.CodeAction): vscode.CodeAction { return { title: action.description, - edits: getEditForCodeAction(this.client, action), + edit: getEditForCodeAction(this.client, action), command: action.commands ? { command: ApplyCodeActionCommand.ID, arguments: [action], @@ -115,4 +115,4 @@ export default class TypeScriptQuickFixProvider implements vscode.CodeActionProv diagnostics: [] }; } -} \ No newline at end of file +} diff --git a/src/vs/vscode.proposed.d.ts b/src/vs/vscode.proposed.d.ts index 7fe3e931dd6..802d64df976 100644 --- a/src/vs/vscode.proposed.d.ts +++ b/src/vs/vscode.proposed.d.ts @@ -210,11 +210,11 @@ declare module 'vscode' { title: string; /** - * Optional edit that performs the code action. + * A workspace edit this code action performs. * - * Either `command` or `edits` must be provided for a `CodeAction`. + * *Note* that either an [`edit`](CodeAction#edit) or a [`command`](CodeAction#command) must be supplied. */ - edits?: TextEdit[] | WorkspaceEdit; + edit?: WorkspaceEdit; /** * Diagnostics that this code action resolves. @@ -222,9 +222,9 @@ declare module 'vscode' { diagnostics?: Diagnostic[]; /** - * Optional command that performs the code action. + * A command this code action performs. * - * Executed after `edits` if any edits are provided. Either `command` or `edits` must be provided for a `CodeAction`. + * *Note* that either an [`edit`](CodeAction#edit) or a [`command`](CodeAction#command) must be supplied. */ command?: Command; @@ -237,7 +237,7 @@ declare module 'vscode' { * @param title The title of the code action. * @param edits The edit of the code action. */ - constructor(title: string, edits?: TextEdit[] | WorkspaceEdit); + constructor(title: string, edit?: WorkspaceEdit); } export interface CodeActionProvider { diff --git a/src/vs/workbench/api/node/extHostLanguageFeatures.ts b/src/vs/workbench/api/node/extHostLanguageFeatures.ts index 2425ca991c8..3f8e0d8603c 100644 --- a/src/vs/workbench/api/node/extHostLanguageFeatures.ts +++ b/src/vs/workbench/api/node/extHostLanguageFeatures.ts @@ -314,9 +314,7 @@ class CodeActionAdapter { title: candidate.title, command: candidate.command && this._commands.toInternal(candidate.command), diagnostics: candidate.diagnostics && candidate.diagnostics.map(DiagnosticCollection.toMarkerData), - edits: Array.isArray(candidate.edits) - ? TypeConverters.WorkspaceEdit.fromTextEdits(resource, candidate.edits) - : candidate.edits && TypeConverters.WorkspaceEdit.from(candidate.edits), + edits: candidate.edit && TypeConverters.WorkspaceEdit.from(candidate.edit), }); } } diff --git a/src/vs/workbench/api/node/extHostTypeConverters.ts b/src/vs/workbench/api/node/extHostTypeConverters.ts index f2e7dce967d..8b10ccba4ba 100644 --- a/src/vs/workbench/api/node/extHostTypeConverters.ts +++ b/src/vs/workbench/api/node/extHostTypeConverters.ts @@ -241,18 +241,6 @@ export namespace WorkspaceEdit { return result; } - export function fromTextEdits(uri: vscode.Uri, textEdits: vscode.TextEdit[]): modes.WorkspaceEdit { - const result: modes.WorkspaceEdit = { edits: [] }; - for (let textEdit of textEdits) { - result.edits.push({ - resource: uri, - newText: textEdit.newText, - range: fromRange(textEdit.range) - }); - } - return result; - } - export function to(value: modes.WorkspaceEdit) { const result = new types.WorkspaceEdit(); for (const edit of value.edits) {