diff --git a/src/vs/workbench/browser/parts/editor2/editor2.contribution.ts b/src/vs/workbench/browser/parts/editor2/editor2.contribution.ts new file mode 100644 index 0000000000000000000000000000000000000000..8f5bb4a27fbdc3c3153480f6560e800620871a40 --- /dev/null +++ b/src/vs/workbench/browser/parts/editor2/editor2.contribution.ts @@ -0,0 +1,17 @@ +/*--------------------------------------------------------------------------------------------- + * 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(ActionExtensions.WorkbenchActions); +registry.registerWorkbenchAction(new SyncActionDescriptor(OpenNextEditorAction, OpenNextEditorAction.ID, OpenNextEditorAction.LABEL), 'View: Open Next Editor in Group', category); diff --git a/src/vs/workbench/browser/parts/editor2/nextEditorActions.ts b/src/vs/workbench/browser/parts/editor2/nextEditorActions.ts new file mode 100644 index 0000000000000000000000000000000000000000..5eb031f9b1edb32b6ebacbef32906d0e42933f12 --- /dev/null +++ b/src/vs/workbench/browser/parts/editor2/nextEditorActions.ts @@ -0,0 +1,35 @@ +/*--------------------------------------------------------------------------------------------- + * 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 { + const input = this.legacyEditorService.createInput({ resource: URI.file('') }); + + return this.nextEditorPartService.openEditor(input as EditorInput); + } +} \ No newline at end of file diff --git a/src/vs/workbench/browser/parts/editor2/nextEditorPart.ts b/src/vs/workbench/browser/parts/editor2/nextEditorPart.ts index 3c608986fb1805ad0e6b624588d7a1bcab27fc1e..9eeb5b5968900ec419f21bf86a5839e6039ae54d 100644 --- a/src/vs/workbench/browser/parts/editor2/nextEditorPart.ts +++ b/src/vs/workbench/browser/parts/editor2/nextEditorPart.ts @@ -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 { + console.log('open: ', input); + + return TPromise.as(void 0); + } + private initStyles(): void { // Letterpress Background when Empty diff --git a/src/vs/workbench/services/editor/common/nextEditorPartService.ts b/src/vs/workbench/services/editor/common/nextEditorPartService.ts index 8653b5ceaa886ec9e53c68d3bb3f4c2ecc95bc62..fd7225cb1e142f88261913dd13cc62798489da5c 100644 --- a/src/vs/workbench/services/editor/common/nextEditorPartService.ts +++ b/src/vs/workbench/services/editor/common/nextEditorPartService.ts @@ -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('nextEditorPartService'); export interface INextEditorPartService { + _serviceBrand: ServiceIdentifier; + + openEditor(input: EditorInput, options?: EditorOptions): TPromise; } \ No newline at end of file