提交 bea60846 编写于 作者: J Johannes Rieken

go to def, peek def action as context menu contributions

上级 d6c30d7c
......@@ -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
......
......@@ -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,
......
......@@ -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'
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册