From 025af25591344298ec987a69ff1daa710fad5d06 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Thu, 19 Apr 2018 12:31:44 +0200 Subject: [PATCH] grid - first cut open next editor action --- .../parts/editor2/editor2.contribution.ts | 17 +++++++++ .../parts/editor2/nextEditorActions.ts | 35 +++++++++++++++++++ .../browser/parts/editor2/nextEditorPart.ts | 10 +++++- .../editor/common/nextEditorPartService.ts | 5 +++ 4 files changed, 66 insertions(+), 1 deletion(-) create mode 100644 src/vs/workbench/browser/parts/editor2/editor2.contribution.ts create mode 100644 src/vs/workbench/browser/parts/editor2/nextEditorActions.ts 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 00000000000..8f5bb4a27fb --- /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 00000000000..5eb031f9b1e --- /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 3c608986fb1..9eeb5b59689 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 8653b5ceaa8..fd7225cb1e1 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 -- GitLab