From bea60846f14515e11d118abfbfccd7001dc7b478 Mon Sep 17 00:00:00 2001 From: Johannes Rieken Date: Thu, 7 Jul 2016 18:21:03 +0200 Subject: [PATCH] go to def, peek def action as context menu contributions --- .../editor/common/editorCommonExtensions.ts | 6 +- .../browser/goToDeclaration.ts | 57 ++++++++++++------- .../browser/referenceSearch.ts | 2 - 3 files changed, 39 insertions(+), 26 deletions(-) diff --git a/src/vs/editor/common/editorCommonExtensions.ts b/src/vs/editor/common/editorCommonExtensions.ts index 5562d943e98..b2e5b177088 100644 --- a/src/vs/editor/common/editorCommonExtensions.ts +++ b/src/vs/editor/common/editorCommonExtensions.ts @@ -35,9 +35,9 @@ export interface IEditorCommandKeybindingOptions extends IKeybindings { context: ContextKey; } export interface IEditorCommandMenuOptions { - menu: MenuId; + kbExpr: KbExpr; + menu?: MenuId; group?: string; - kbExpr?: KbExpr; } // --- Editor Actions @@ -204,7 +204,7 @@ class EditorContributionRegistry { if (desc.menuOpts) { let {menu, kbExpr, group} = desc.menuOpts; - MenuRegistry.appendMenuItem(menu, { + MenuRegistry.appendMenuItem(menu || MenuId.EditorContext, { command: { id: desc.id, title: desc.label diff --git a/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.ts b/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.ts index 3aa3e4b1825..d8c2f6fc9df 100644 --- a/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.ts +++ b/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.ts @@ -7,6 +7,7 @@ import 'vs/css!./goToDeclaration'; import * as nls from 'vs/nls'; +import {KbExpr} from 'vs/platform/keybinding/common/keybinding'; import {Throttler} from 'vs/base/common/async'; import {onUnexpectedError} from 'vs/base/common/errors'; import {MarkedString, textToMarkedString} from 'vs/base/common/htmlContent'; @@ -38,7 +39,7 @@ import {optional} from 'vs/platform/instantiation/common/instantiation'; export class DefinitionActionConfig { constructor( - public condition = Behaviour.WidgetFocus | Behaviour.ShowInContextMenu | Behaviour.UpdateOnCursorPositionChange, + public condition = Behaviour.WidgetFocus | Behaviour.UpdateOnCursorPositionChange, public openToSide = false, public openInPeek = false, public filterCurrent = true @@ -59,10 +60,6 @@ export class DefinitionAction extends EditorAction { super(descriptor, editor, _configuration.condition); } - public getGroupId(): string { - return '1_goto/2_visitDefinition'; - } - public isSupported(): boolean { return DefinitionProviderRegistry.has(this.editor.getModel()) && super.isSupported(); } @@ -483,23 +480,41 @@ class GotoDefinitionWithMouseEditorContribution implements editorCommon.IEditorC } // register actions -CommonEditorRegistry.registerEditorAction(new EditorActionDescriptor(PeekDefinitionAction, PeekDefinitionAction.ID, nls.localize('actions.previewDecl.label', "Peek Definition"), { - context: ContextKey.EditorTextFocus, - primary: KeyMod.Alt | KeyCode.F12, - linux: { primary: KeyMod.CtrlCmd | KeyMod.Shift | KeyCode.F10 }, -}, 'Peek Definition')); - -let goToDeclarationKb: number; -if (platform.isWeb) { - goToDeclarationKb = KeyMod.CtrlCmd | KeyCode.F12; -} else { - goToDeclarationKb = KeyCode.F12; -} -CommonEditorRegistry.registerEditorAction(new EditorActionDescriptor(GoToDefinitionAction, GoToDefinitionAction.ID, nls.localize('actions.goToDecl.label', "Go to Definition"), { - context: ContextKey.EditorTextFocus, - primary: goToDeclarationKb -}, 'Go to Definition')); +CommonEditorRegistry.registerEditorAction({ + id: PeekDefinitionAction.ID, + ctor: PeekDefinitionAction, + label: nls.localize('actions.previewDecl.label', "Peek Definition"), + alias: 'Peek Definition', + kbOpts: { + context: ContextKey.EditorTextFocus, + primary: KeyMod.Alt | KeyCode.F12, + linux: { primary: KeyMod.CtrlCmd | KeyMod.Shift | KeyCode.F10 } + }, + menuOpts: { + group: 'navigation@11', + kbExpr: KbExpr.has('editorHasDefinitionProvider') + } +}); + +const goToDeclarationKb = platform.isWeb + ? KeyMod.CtrlCmd | KeyCode.F12 + : KeyCode.F12; + +CommonEditorRegistry.registerEditorAction({ + ctor: GoToDefinitionAction, + id: GoToDefinitionAction.ID, + label: nls.localize('actions.goToDecl.label', "Go to Definition"), + alias: 'Go to Definition', + kbOpts: { + context: ContextKey.EditorTextFocus, + primary: goToDeclarationKb + }, + menuOpts: { + group: 'navigation@10', + kbExpr: KbExpr.has('editorHasDefinitionProvider') + } +}); CommonEditorRegistry.registerEditorAction(new EditorActionDescriptor(OpenDefinitionToSideAction, OpenDefinitionToSideAction.ID, nls.localize('actions.goToDeclToSide.label', "Open Definition to the Side"), { context: ContextKey.EditorTextFocus, diff --git a/src/vs/editor/contrib/referenceSearch/browser/referenceSearch.ts b/src/vs/editor/contrib/referenceSearch/browser/referenceSearch.ts index d59b477da63..937dcea0c72 100644 --- a/src/vs/editor/contrib/referenceSearch/browser/referenceSearch.ts +++ b/src/vs/editor/contrib/referenceSearch/browser/referenceSearch.ts @@ -25,7 +25,6 @@ import {provideReferences} from '../common/referenceSearch'; import {ReferenceWidget} from './referencesWidget'; import {ReferencesController, RequestOptions, ctxReferenceSearchVisible} from './referencesController'; import {ReferencesModel} from './referencesModel'; -import {MenuId} from 'vs/platform/actions/common/actions'; import {ServicesAccessor} from 'vs/platform/instantiation/common/instantiation'; const defaultReferenceSearchOptions: RequestOptions = { @@ -141,7 +140,6 @@ CommonEditorRegistry.registerEditorAction({ primary: KeyMod.Shift | KeyCode.F12 }, menuOpts: { - menu: MenuId.EditorContext, kbExpr: KbExpr.has('editorHasReferenceProvider'), group: 'navigation' } -- GitLab