From ca163e0de1beedd5ddc955ee158c4d2aa94e434a Mon Sep 17 00:00:00 2001 From: Eric Amodio Date: Tue, 25 Apr 2017 09:33:26 -0400 Subject: [PATCH] Changes ShowTextDocumentOptions to TextDocumentShowOptions Changes pinned property to preview Adds ITextDocumentShowOptions as main-side DTO --- src/vs/vscode.d.ts | 6 +++--- src/vs/workbench/api/node/extHost.api.impl.ts | 2 +- src/vs/workbench/api/node/extHost.protocol.ts | 8 +++++++- src/vs/workbench/api/node/extHostTextEditors.ts | 14 +++++++------- src/vs/workbench/api/node/mainThreadEditors.ts | 9 +++------ src/vs/workbench/electron-browser/commands.ts | 4 ++-- 6 files changed, 23 insertions(+), 20 deletions(-) diff --git a/src/vs/vscode.d.ts b/src/vs/vscode.d.ts index 823239c2a55..d35ee14bba6 100644 --- a/src/vs/vscode.d.ts +++ b/src/vs/vscode.d.ts @@ -701,7 +701,7 @@ declare module 'vscode' { /** * Represents options to configure the behavior of showing a [document](#TextDocument) in an [editor](#TextEditor). */ - export interface ShowTextDocumentOptions { + export interface TextDocumentShowOptions { /** * An optional view column in which the [editor](#TextEditor) should be shown. The default is the [one](#ViewColumn.One), other values are adjusted to be __Min(column, columnCount + 1)__. */ @@ -715,7 +715,7 @@ declare module 'vscode' { /** * An optional flag that when `true` will pin the [editor](#TextEditor). */ - pinned?: boolean + preview?: boolean } /** @@ -3687,7 +3687,7 @@ declare module 'vscode' { * @param options [Editor options](#ShowTextDocumentOptions) to configure the behavior of showing the [editor](#TextEditor). * @return A promise that resolves to an [editor](#TextEditor). */ - export function showTextDocument(document: TextDocument, options?: ShowTextDocumentOptions): Thenable; + export function showTextDocument(document: TextDocument, options?: TextDocumentShowOptions): Thenable; /** * Create a TextEditorDecorationType that can be used to add decorations to text editors. diff --git a/src/vs/workbench/api/node/extHost.api.impl.ts b/src/vs/workbench/api/node/extHost.api.impl.ts index c7e18890186..fd1e6aca078 100644 --- a/src/vs/workbench/api/node/extHost.api.impl.ts +++ b/src/vs/workbench/api/node/extHost.api.impl.ts @@ -299,7 +299,7 @@ export function createApiFactory( get visibleTextEditors() { return extHostEditors.getVisibleTextEditors(); }, - showTextDocument(document: vscode.TextDocument, columnOrOptions?: vscode.ViewColumn | vscode.ShowTextDocumentOptions, preserveFocus?: boolean): TPromise { + showTextDocument(document: vscode.TextDocument, columnOrOptions?: vscode.ViewColumn | vscode.TextDocumentShowOptions, preserveFocus?: boolean): TPromise { return extHostEditors.showTextDocument(document, columnOrOptions, preserveFocus); }, createTextEditorDecorationType(options: vscode.DecorationRenderOptions): vscode.TextEditorDecorationType { diff --git a/src/vs/workbench/api/node/extHost.protocol.ts b/src/vs/workbench/api/node/extHost.protocol.ts index 023efed6c23..78888c78cf0 100644 --- a/src/vs/workbench/api/node/extHost.protocol.ts +++ b/src/vs/workbench/api/node/extHost.protocol.ts @@ -133,8 +133,14 @@ export abstract class MainThreadDocumentsShape { $trySaveDocument(uri: URI): TPromise { throw ni(); } } +export interface ITextDocumentShowOptions { + position?: EditorPosition; + preserveFocus?: boolean; + pinned?: boolean; +} + export abstract class MainThreadEditorsShape { - $tryShowTextDocument(resource: URI, options: vscode.ShowTextDocumentOptions): TPromise { throw ni(); } + $tryShowTextDocument(resource: URI, options: ITextDocumentShowOptions): TPromise { throw ni(); } $registerTextEditorDecorationType(key: string, options: editorCommon.IDecorationRenderOptions): void { throw ni(); } $removeTextEditorDecorationType(key: string): void { throw ni(); } $tryShowEditor(id: string, position: EditorPosition): TPromise { throw ni(); } diff --git a/src/vs/workbench/api/node/extHostTextEditors.ts b/src/vs/workbench/api/node/extHostTextEditors.ts index 8505796749c..0b88b0c7c33 100644 --- a/src/vs/workbench/api/node/extHostTextEditors.ts +++ b/src/vs/workbench/api/node/extHostTextEditors.ts @@ -14,7 +14,7 @@ import { IResolvedTextEditorConfiguration, ISelectionChangeEvent } from 'vs/work import * as TypeConverters from './extHostTypeConverters'; import { TextEditorDecorationType, ExtHostTextEditor } from './extHostTextEditor'; import { ExtHostDocumentsAndEditors } from './extHostDocumentsAndEditors'; -import { MainContext, MainThreadEditorsShape, ExtHostEditorsShape, ITextEditorPositionData } from './extHost.protocol'; +import { MainContext, MainThreadEditorsShape, ExtHostEditorsShape, ITextDocumentShowOptions, ITextEditorPositionData } from './extHost.protocol'; import * as vscode from 'vscode'; export class ExtHostEditors extends ExtHostEditorsShape { @@ -57,20 +57,20 @@ export class ExtHostEditors extends ExtHostEditorsShape { showTextDocument(document: vscode.TextDocument, column: vscode.ViewColumn, preserveFocus: boolean): TPromise; showTextDocument(document: vscode.TextDocument, options: { column: vscode.ViewColumn, preserveFocus: boolean, pinned: boolean }): TPromise; - showTextDocument(document: vscode.TextDocument, columnOrOptions: vscode.ViewColumn | vscode.ShowTextDocumentOptions, preserveFocus?: boolean): TPromise; - showTextDocument(document: vscode.TextDocument, columnOrOptions: vscode.ViewColumn | vscode.ShowTextDocumentOptions, preserveFocus?: boolean): TPromise { - let options: vscode.ShowTextDocumentOptions; + showTextDocument(document: vscode.TextDocument, columnOrOptions: vscode.ViewColumn | vscode.TextDocumentShowOptions, preserveFocus?: boolean): TPromise; + showTextDocument(document: vscode.TextDocument, columnOrOptions: vscode.ViewColumn | vscode.TextDocumentShowOptions, preserveFocus?: boolean): TPromise { + let options: ITextDocumentShowOptions; if (typeof columnOrOptions === 'number') { options = { - column: columnOrOptions, + position: TypeConverters.fromViewColumn(columnOrOptions), preserveFocus: preserveFocus, pinned: true }; } else { options = { - column: columnOrOptions.column, + position: TypeConverters.fromViewColumn(columnOrOptions.column), preserveFocus: columnOrOptions.preserveFocus, - pinned: columnOrOptions.pinned === undefined ? true : columnOrOptions.pinned + pinned: columnOrOptions.preview === undefined ? true : !columnOrOptions.preview }; } diff --git a/src/vs/workbench/api/node/mainThreadEditors.ts b/src/vs/workbench/api/node/mainThreadEditors.ts index 35f6f93765b..c02a563de80 100644 --- a/src/vs/workbench/api/node/mainThreadEditors.ts +++ b/src/vs/workbench/api/node/mainThreadEditors.ts @@ -13,15 +13,13 @@ import { ICodeEditorService } from 'vs/editor/common/services/codeEditorService' import { IWorkbenchEditorService } from 'vs/workbench/services/editor/common/editorService'; import { IEditorGroupService } from 'vs/workbench/services/group/common/groupService'; import { IEditorOptions, Position as EditorPosition } from 'vs/platform/editor/common/editor'; -import * as TypeConverters from './extHostTypeConverters'; import { TextEditorRevealType, MainThreadTextEditor, IApplyEditsOptions, IUndoStopOptions, ITextEditorConfigurationUpdate } from 'vs/workbench/api/node/mainThreadEditor'; import { MainThreadDocumentsAndEditors } from './mainThreadDocumentsAndEditors'; import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry'; import { equals as objectEquals } from 'vs/base/common/objects'; -import { ExtHostContext, MainThreadEditorsShape, ExtHostEditorsShape, ITextEditorPositionData } from './extHost.protocol'; +import { ExtHostContext, MainThreadEditorsShape, ExtHostEditorsShape, ITextDocumentShowOptions, ITextEditorPositionData } from './extHost.protocol'; import { IRange } from "vs/editor/common/core/range"; import { ISelection } from "vs/editor/common/core/selection"; -import * as vscode from 'vscode'; export class MainThreadEditors extends MainThreadEditorsShape { @@ -106,8 +104,7 @@ export class MainThreadEditors extends MainThreadEditorsShape { // --- from extension host process - $tryShowTextDocument(resource: URI, options: vscode.ShowTextDocumentOptions): TPromise { - const position: EditorPosition = TypeConverters.fromViewColumn(options.column); + $tryShowTextDocument(resource: URI, options: ITextDocumentShowOptions): TPromise { const editorOptions: IEditorOptions = { preserveFocus: options.preserveFocus, pinned: options.pinned @@ -118,7 +115,7 @@ export class MainThreadEditors extends MainThreadEditorsShape { options: editorOptions }; - return this._workbenchEditorService.openEditor(input, position).then(editor => { + return this._workbenchEditorService.openEditor(input, options.position).then(editor => { if (!editor) { return undefined; } diff --git a/src/vs/workbench/electron-browser/commands.ts b/src/vs/workbench/electron-browser/commands.ts index c095e660596..13ee5024a99 100644 --- a/src/vs/workbench/electron-browser/commands.ts +++ b/src/vs/workbench/electron-browser/commands.ts @@ -376,7 +376,7 @@ export function registerCommands(): void { win: { primary: void 0 } }); - CommandsRegistry.registerCommand('_workbench.diff', function (accessor: ServicesAccessor, args: [URI, URI, string, string, vscode.ShowTextDocumentOptions]) { + CommandsRegistry.registerCommand('_workbench.diff', function (accessor: ServicesAccessor, args: [URI, URI, string, string, vscode.TextDocumentShowOptions]) { const editorService = accessor.get(IWorkbenchEditorService); let [leftResource, rightResource, label, description, options] = args; @@ -386,7 +386,7 @@ export function registerCommands(): void { position = TypeConverters.fromViewColumn(options.column); editorOptions = { preserveFocus: options.preserveFocus, - pinned: options.pinned + pinned: !options.preview }; } else { -- GitLab