提交 ca163e0d 编写于 作者: E Eric Amodio

Changes ShowTextDocumentOptions to TextDocumentShowOptions

Changes pinned property to preview
Adds ITextDocumentShowOptions as main-side DTO
上级 d44fa8fe
......@@ -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<TextEditor>;
export function showTextDocument(document: TextDocument, options?: TextDocumentShowOptions): Thenable<TextEditor>;
/**
* Create a TextEditorDecorationType that can be used to add decorations to text editors.
......
......@@ -299,7 +299,7 @@ export function createApiFactory(
get visibleTextEditors() {
return extHostEditors.getVisibleTextEditors();
},
showTextDocument(document: vscode.TextDocument, columnOrOptions?: vscode.ViewColumn | vscode.ShowTextDocumentOptions, preserveFocus?: boolean): TPromise<vscode.TextEditor> {
showTextDocument(document: vscode.TextDocument, columnOrOptions?: vscode.ViewColumn | vscode.TextDocumentShowOptions, preserveFocus?: boolean): TPromise<vscode.TextEditor> {
return extHostEditors.showTextDocument(document, columnOrOptions, preserveFocus);
},
createTextEditorDecorationType(options: vscode.DecorationRenderOptions): vscode.TextEditorDecorationType {
......
......@@ -133,8 +133,14 @@ export abstract class MainThreadDocumentsShape {
$trySaveDocument(uri: URI): TPromise<boolean> { throw ni(); }
}
export interface ITextDocumentShowOptions {
position?: EditorPosition;
preserveFocus?: boolean;
pinned?: boolean;
}
export abstract class MainThreadEditorsShape {
$tryShowTextDocument(resource: URI, options: vscode.ShowTextDocumentOptions): TPromise<string> { throw ni(); }
$tryShowTextDocument(resource: URI, options: ITextDocumentShowOptions): TPromise<string> { throw ni(); }
$registerTextEditorDecorationType(key: string, options: editorCommon.IDecorationRenderOptions): void { throw ni(); }
$removeTextEditorDecorationType(key: string): void { throw ni(); }
$tryShowEditor(id: string, position: EditorPosition): TPromise<void> { throw ni(); }
......
......@@ -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<vscode.TextEditor>;
showTextDocument(document: vscode.TextDocument, options: { column: vscode.ViewColumn, preserveFocus: boolean, pinned: boolean }): TPromise<vscode.TextEditor>;
showTextDocument(document: vscode.TextDocument, columnOrOptions: vscode.ViewColumn | vscode.ShowTextDocumentOptions, preserveFocus?: boolean): TPromise<vscode.TextEditor>;
showTextDocument(document: vscode.TextDocument, columnOrOptions: vscode.ViewColumn | vscode.ShowTextDocumentOptions, preserveFocus?: boolean): TPromise<vscode.TextEditor> {
let options: vscode.ShowTextDocumentOptions;
showTextDocument(document: vscode.TextDocument, columnOrOptions: vscode.ViewColumn | vscode.TextDocumentShowOptions, preserveFocus?: boolean): TPromise<vscode.TextEditor>;
showTextDocument(document: vscode.TextDocument, columnOrOptions: vscode.ViewColumn | vscode.TextDocumentShowOptions, preserveFocus?: boolean): TPromise<vscode.TextEditor> {
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
};
}
......
......@@ -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<string> {
const position: EditorPosition = TypeConverters.fromViewColumn(options.column);
$tryShowTextDocument(resource: URI, options: ITextDocumentShowOptions): TPromise<string> {
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;
}
......
......@@ -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 {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册