diff --git a/src/vs/vscode.d.ts b/src/vs/vscode.d.ts index 823239c2a550e49f20d26473750c90202f018ba5..d35ee14bba6df511214bf830245942eaab5c9260 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 c7e18890186294d7ff4a8c84a45ea28a290c58bc..fd1e6aca0784eff99d6f3d71b44dcecf073464a9 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 023efed6c23cd175e4b42c30b2413187075f2f95..78888c78cf0bba07f4aa57fabb3f40967ad3d894 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 8505796749c2555417feeb7d09588e778f657686..0b88b0c7c331fc05c64551cfec689898b372dab5 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 35f6f93765b476f514a9108c53202dab3bcc792f..c02a563de80863ec422223bd319c17f6bdcd0175 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 c095e66059607f7699086b1ae47bbef441dd714d..13ee5024a99129932f4eae0301ec52f085a8a94a 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 {