提交 e0ef0e67 编写于 作者: S Sandeep Somavarapu

Dep viewer: Open extension on enter

上级 6eeb98dc
...@@ -15,6 +15,7 @@ import { once } from 'vs/base/common/event'; ...@@ -15,6 +15,7 @@ import { once } from 'vs/base/common/event';
import { domEvent } from 'vs/base/browser/event'; import { domEvent } from 'vs/base/browser/event';
import { IKeyboardEvent } from 'vs/base/browser/keyboardEvent'; import { IKeyboardEvent } from 'vs/base/browser/keyboardEvent';
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
import { KeyMod, KeyCode } from 'vs/base/common/keyCodes';
export interface IExtensionTemplateData { export interface IExtensionTemplateData {
icon: HTMLImageElement; icon: HTMLImageElement;
...@@ -85,6 +86,7 @@ export class Renderer implements IRenderer { ...@@ -85,6 +86,7 @@ export class Renderer implements IRenderer {
const openExtensionAction = this.instantiationService.createInstance(OpenExtensionAction); const openExtensionAction = this.instantiationService.createInstance(OpenExtensionAction);
const extensionDisposables = [dom.addDisposableListener(name, 'click', (e: MouseEvent) => { const extensionDisposables = [dom.addDisposableListener(name, 'click', (e: MouseEvent) => {
tree.setFocus(openExtensionAction.extensionDependencies); tree.setFocus(openExtensionAction.extensionDependencies);
tree.setSelection([openExtensionAction.extensionDependencies]);
openExtensionAction.run(e.ctrlKey || e.metaKey); openExtensionAction.run(e.ctrlKey || e.metaKey);
e.stopPropagation(); e.stopPropagation();
e.preventDefault(); e.preventDefault();
...@@ -136,6 +138,7 @@ export class Controller extends DefaultController { ...@@ -136,6 +138,7 @@ export class Controller extends DefaultController {
constructor( @IExtensionsWorkbenchService private extensionsWorkdbenchService: IExtensionsWorkbenchService) { constructor( @IExtensionsWorkbenchService private extensionsWorkdbenchService: IExtensionsWorkbenchService) {
super(); super();
this.downKeyBindingDispatcher.set(KeyMod.CtrlCmd | KeyCode.Enter, (tree: ITree, event: any) => { this.openExtension(tree, true); });
} }
protected onLeftClick(tree: ITree, element: IExtensionDependencies, event: IMouseEvent): boolean { protected onLeftClick(tree: ITree, element: IExtensionDependencies, event: IMouseEvent): boolean {
...@@ -155,10 +158,15 @@ export class Controller extends DefaultController { ...@@ -155,10 +158,15 @@ export class Controller extends DefaultController {
protected onEnter(tree: ITree, event: IKeyboardEvent): boolean { protected onEnter(tree: ITree, event: IKeyboardEvent): boolean {
if (super.onEnter(tree, event)) { if (super.onEnter(tree, event)) {
this.extensionsWorkdbenchService.open(tree.getFocus(), event.ctrlKey || event.metaKey); this.openExtension(tree, false);
} }
return false; return false;
} }
private openExtension(tree: ITree, sideByside: boolean) {
const element: IExtensionDependencies = tree.getFocus();
this.extensionsWorkdbenchService.open(element.extension, sideByside);
}
} }
class OpenExtensionAction extends Action { class OpenExtensionAction extends Action {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册