diff --git a/src/vs/editor/contrib/codeAction/codeAction.ts b/src/vs/editor/contrib/codeAction/codeAction.ts index a58d88d1a88196a6d9778b668440322576f856cf..b99aa381d6fba57a693ddc58d1ce7973bdb8e699 100644 --- a/src/vs/editor/contrib/codeAction/codeAction.ts +++ b/src/vs/editor/contrib/codeAction/codeAction.ts @@ -17,6 +17,10 @@ import { CodeActionFilter, CodeActionKind, CodeActionTrigger, filtersAction, may import { TextModelCancellationTokenSource } from 'vs/editor/browser/core/editorState'; import { DisposableStore, IDisposable, Disposable } from 'vs/base/common/lifecycle'; +export const codeActionCommandId = 'editor.action.codeAction'; +export const refactorCommandId = 'editor.action.refactor'; +export const sourceActionCommandId = 'editor.action.sourceAction'; + export interface CodeActionSet extends IDisposable { readonly actions: readonly CodeAction[]; readonly hasAutoFix: boolean; diff --git a/src/vs/editor/contrib/codeAction/codeActionCommands.ts b/src/vs/editor/contrib/codeAction/codeActionCommands.ts index 970883b9773b331d0950cf20eb6f11819437f493..25f9cccd5b3321a80d251f4700ba1dc0af89966e 100644 --- a/src/vs/editor/contrib/codeAction/codeActionCommands.ts +++ b/src/vs/editor/contrib/codeAction/codeActionCommands.ts @@ -16,7 +16,7 @@ import { IPosition } from 'vs/editor/common/core/position'; import { IEditorContribution } from 'vs/editor/common/editorCommon'; import { EditorContextKeys } from 'vs/editor/common/editorContextKeys'; import { CodeAction } from 'vs/editor/common/modes'; -import { CodeActionSet } from 'vs/editor/contrib/codeAction/codeAction'; +import { CodeActionSet, refactorCommandId, sourceActionCommandId, codeActionCommandId } from 'vs/editor/contrib/codeAction/codeAction'; import { CodeActionUi } from 'vs/editor/contrib/codeAction/codeActionUi'; import { MessageController } from 'vs/editor/contrib/message/messageController'; import * as nls from 'vs/nls'; @@ -215,11 +215,9 @@ export class QuickFixAction extends EditorAction { export class CodeActionCommand extends EditorCommand { - static readonly Id = 'editor.action.codeAction'; - constructor() { super({ - id: CodeActionCommand.Id, + id: codeActionCommandId, precondition: ContextKeyExpr.and(EditorContextKeys.writable, EditorContextKeys.hasCodeActionsProvider), description: { description: `Trigger a code action`, @@ -256,11 +254,9 @@ export class CodeActionCommand extends EditorCommand { export class RefactorAction extends EditorAction { - static readonly Id = 'editor.action.refactor'; - constructor() { super({ - id: RefactorAction.Id, + id: refactorCommandId, label: nls.localize('refactor.label', "Refactor..."), alias: 'Refactor...', precondition: ContextKeyExpr.and(EditorContextKeys.writable, EditorContextKeys.hasCodeActionsProvider), @@ -313,11 +309,9 @@ export class RefactorAction extends EditorAction { export class SourceAction extends EditorAction { - static readonly Id = 'editor.action.sourceAction'; - constructor() { super({ - id: SourceAction.Id, + id: sourceActionCommandId, label: nls.localize('source.label', "Source Action..."), alias: 'Source Action...', precondition: ContextKeyExpr.and(EditorContextKeys.writable, EditorContextKeys.hasCodeActionsProvider), diff --git a/src/vs/editor/contrib/codeAction/codeActionWidget.ts b/src/vs/editor/contrib/codeAction/codeActionWidget.ts index c4a3e20fafd4afa875bd115af83e50a1ead6fb9b..3ab3eb2484afe4f00065ed9db9df1b48b93b9628 100644 --- a/src/vs/editor/contrib/codeAction/codeActionWidget.ts +++ b/src/vs/editor/contrib/codeAction/codeActionWidget.ts @@ -14,7 +14,7 @@ import { ICodeEditor } from 'vs/editor/browser/editorBrowser'; import { IPosition, Position } from 'vs/editor/common/core/position'; import { ScrollType } from 'vs/editor/common/editorCommon'; import { CodeAction } from 'vs/editor/common/modes'; -import { CodeActionSet } from 'vs/editor/contrib/codeAction/codeAction'; +import { CodeActionSet, refactorCommandId, sourceActionCommandId, codeActionCommandId } from 'vs/editor/contrib/codeAction/codeAction'; import { CodeActionAutoApply, CodeActionCommandArgs, CodeActionKind } from 'vs/editor/contrib/codeAction/codeActionTrigger'; import { IContextMenuService } from 'vs/platform/contextview/browser/contextView'; import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding'; @@ -98,7 +98,7 @@ export class CodeActionWidget extends Disposable { // Lazy since we may not actually ever read the value const allCodeActionBindings = new Lazy(() => this._keybindingService.getKeybindings() - .filter(item => ['editor.action.refactor', 'editor.action.codeAction', 'editor.action.source'].indexOf(item.command!) >= 0) + .filter(item => new Set([refactorCommandId, codeActionCommandId, sourceActionCommandId]).has(item.command!)) .filter(item => item.resolvedKeybinding) .map((item): ResolveCodeActionKeybinding => { return { diff --git a/src/vs/workbench/contrib/codeActions/common/configuration.ts b/src/vs/workbench/contrib/codeActions/common/configuration.ts index 169729b041d5019cfa63e251099697ba3fe68c39..93651a6305f2492a4b91a61ed7d7cc7d365c1a1e 100644 --- a/src/vs/workbench/contrib/codeActions/common/configuration.ts +++ b/src/vs/workbench/contrib/codeActions/common/configuration.ts @@ -8,7 +8,7 @@ import { Emitter } from 'vs/base/common/event'; import { IJSONSchema, IJSONSchemaMap } from 'vs/base/common/jsonSchema'; import { Disposable } from 'vs/base/common/lifecycle'; import { values } from 'vs/base/common/map'; -import { CodeActionCommand, RefactorAction, SourceAction } from 'vs/editor/contrib/codeAction/codeActionCommands'; +import { codeActionCommandId, refactorCommandId, sourceActionCommandId } from 'vs/editor/contrib/codeAction/codeAction'; import { CodeActionKind } from 'vs/editor/contrib/codeAction/codeActionTrigger'; import * as nls from 'vs/nls'; import { Extensions, IConfigurationNode, IConfigurationRegistry } from 'vs/platform/configuration/common/configurationRegistry'; @@ -148,9 +148,9 @@ export class CodeActionWorkbenchContribution extends Disposable implements IWork }; return [ - conditionalSchema(CodeActionCommand.Id, getActions(CodeActionKind.Empty)), - conditionalSchema(RefactorAction.Id, getActions(CodeActionKind.Refactor)), - conditionalSchema(SourceAction.Id, getActions(CodeActionKind.Source)), + conditionalSchema(codeActionCommandId, getActions(CodeActionKind.Empty)), + conditionalSchema(refactorCommandId, getActions(CodeActionKind.Refactor)), + conditionalSchema(sourceActionCommandId, getActions(CodeActionKind.Source)), ]; } }