提交 025af255 编写于 作者: B Benjamin Pasero

grid - first cut open next editor action

上级 4d379f24
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
import { localize } from 'vs/nls';
import { Registry } from 'vs/platform/registry/common/platform';
import { IWorkbenchActionRegistry, Extensions as ActionExtensions } from 'vs/workbench/common/actions';
import { SyncActionDescriptor } from 'vs/platform/actions/common/actions';
import { OpenNextEditorAction } from 'vs/workbench/browser/parts/editor2/nextEditorActions';
// Register Next Editor Actions
const category = localize('nextEditor', "Next Editor");
const registry = Registry.as<IWorkbenchActionRegistry>(ActionExtensions.WorkbenchActions);
registry.registerWorkbenchAction(new SyncActionDescriptor(OpenNextEditorAction, OpenNextEditorAction.ID, OpenNextEditorAction.LABEL), 'View: Open Next Editor in Group', category);
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
import URI from 'vs/base/common/uri';
import { Action } from 'vs/base/common/actions';
import { localize } from 'vs/nls';
import { TPromise } from 'vs/base/common/winjs.base';
import { INextEditorPartService } from 'vs/workbench/services/editor/common/nextEditorPartService';
import { IWorkbenchEditorService } from 'vs/workbench/services/editor/common/editorService';
import { EditorInput } from 'vs/workbench/common/editor';
export class OpenNextEditorAction extends Action {
public static readonly ID = 'workbench.action.openNextEditor';
public static readonly LABEL = localize('openNextEditor', "Next Editor");
constructor(
id: string,
label: string,
@IWorkbenchEditorService private legacyEditorService: IWorkbenchEditorService,
@INextEditorPartService private nextEditorPartService: INextEditorPartService
) {
super(id, label);
}
public run(): TPromise<any> {
const input = this.legacyEditorService.createInput({ resource: URI.file('') });
return this.nextEditorPartService.openEditor(input as EditorInput);
}
}
\ No newline at end of file
......@@ -6,7 +6,8 @@
'use strict';
import 'vs/css!./media/nextEditorpart';
import 'vs/workbench/browser/parts/editor/editor.contribution';
import 'vs/workbench/browser/parts/editor2/editor2.contribution';
import { TPromise } from 'vs/base/common/winjs.base';
import { IThemeService } from 'vs/platform/theme/common/themeService';
import { Part } from 'vs/workbench/browser/part';
import { Dimension, addClass, createCSSRule } from 'vs/base/browser/dom';
......@@ -15,6 +16,7 @@ import { IEnvironmentService } from 'vs/platform/environment/common/environment'
import { join } from 'vs/base/common/paths';
import { editorBackground } from 'vs/platform/theme/common/colorRegistry';
import { INextEditorPartService } from 'vs/workbench/services/editor/common/nextEditorPartService';
import { EditorInput, EditorOptions } from 'vs/workbench/common/editor';
// import { IStorageService } from 'vs/platform/storage/common/storage';
export class NextEditorPart extends Part implements INextEditorPartService {
......@@ -41,6 +43,12 @@ export class NextEditorPart extends Part implements INextEditorPartService {
this.initStyles();
}
public openEditor(input: EditorInput, options?: EditorOptions): TPromise<void> {
console.log('open: ', input);
return TPromise.as(void 0);
}
private initStyles(): void {
// Letterpress Background when Empty
......
......@@ -6,9 +6,14 @@
'use strict';
import { createDecorator, ServiceIdentifier } from 'vs/platform/instantiation/common/instantiation';
import { EditorInput, EditorOptions } from 'vs/workbench/common/editor';
import { TPromise } from 'vs/base/common/winjs.base';
export const INextEditorPartService = createDecorator<INextEditorPartService>('nextEditorPartService');
export interface INextEditorPartService {
_serviceBrand: ServiceIdentifier<any>;
openEditor(input: EditorInput, options?: EditorOptions): TPromise<void>;
}
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册