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

Adds editor options overload to showTextDocument

上级 e9269c39
......@@ -3659,6 +3659,18 @@ declare module 'vscode' {
*/
export function showTextDocument(document: TextDocument, column?: ViewColumn, preserveFocus?: boolean): Thenable<TextEditor>;
/**
* Show the given document in a text editor. A [column](#ViewColumn) can be provided
* to control where the editor is being shown. Might change the [active editor](#window.activeTextEditor).
*
* @param document A text document to be shown.
* @param column A view column in which the editor should be shown. The default is the [one](#ViewColumn.One), other values
* are adjusted to be __Min(column, columnCount + 1)__.
* @param options Editor options for showing the text editor.
* @return A promise that resolves to an [editor](#TextEditor).
*/
export function showTextDocument(document: TextDocument, column?: ViewColumn, options?: { preserveFocus?: boolean, pinned?: boolean }): Thenable<TextEditor>;
/**
* Create a TextEditorDecorationType that can be used to add decorations to text editors.
*
......
......@@ -134,7 +134,10 @@ export abstract class MainThreadDocumentsShape {
}
export abstract class MainThreadEditorsShape {
$tryShowTextDocument(resource: URI, position: EditorPosition, preserveFocus: boolean): TPromise<string> { throw ni(); }
$tryShowTextDocument(resource: URI, position: EditorPosition, preserveFocus: boolean): TPromise<string>;
$tryShowTextDocument(resource: URI, position: EditorPosition, options: { preserveFocus: boolean, pinned: boolean }): TPromise<string>;
$tryShowTextDocument(resource: URI, position: EditorPosition, preserveFocusOrOptions: boolean | { preserveFocus: boolean, pinned: boolean }): TPromise<string>;
$tryShowTextDocument(resource: URI, position: EditorPosition, preserveFocusOrOptions: boolean | { preserveFocus: boolean, pinned: boolean }): 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(); }
......
......@@ -55,8 +55,10 @@ export class ExtHostEditors extends ExtHostEditorsShape {
return this._extHostDocumentsAndEditors.allEditors();
}
showTextDocument(document: vscode.TextDocument, column: vscode.ViewColumn, preserveFocus: boolean): TPromise<vscode.TextEditor> {
return this._proxy.$tryShowTextDocument(<URI>document.uri, TypeConverters.fromViewColumn(column), preserveFocus).then(id => {
showTextDocument(document: vscode.TextDocument, column: vscode.ViewColumn, preserveFocus: boolean): TPromise<vscode.TextEditor>;
showTextDocument(document: vscode.TextDocument, column: vscode.ViewColumn, options: { preserveFocus: boolean, pinned: boolean }): TPromise<vscode.TextEditor>;
showTextDocument(document: vscode.TextDocument, column: vscode.ViewColumn, preserveFocusOrOptions: boolean | { preserveFocus: boolean, pinned: boolean }): TPromise<vscode.TextEditor> {
return this._proxy.$tryShowTextDocument(<URI>document.uri, TypeConverters.fromViewColumn(column), preserveFocusOrOptions).then(id => {
let editor = this._extHostDocumentsAndEditors.getEditor(id);
if (editor) {
return editor;
......
......@@ -104,11 +104,27 @@ export class MainThreadEditors extends MainThreadEditorsShape {
// --- from extension host process
$tryShowTextDocument(resource: URI, position: EditorPosition, preserveFocus: boolean): TPromise<string> {
$tryShowTextDocument(resource: URI, position: EditorPosition, preserveFocus: boolean): TPromise<string>;
$tryShowTextDocument(resource: URI, position: EditorPosition, options: { preserveFocus: boolean, pinned: boolean }): TPromise<string>;
$tryShowTextDocument(resource: URI, position: EditorPosition, preserveFocusOrOptions: boolean | { preserveFocus: boolean, pinned: boolean }): TPromise<string>;
$tryShowTextDocument(resource: URI, position: EditorPosition, preserveFocusOrOptions: boolean | { preserveFocus: boolean, pinned: boolean }): TPromise<string> {
let options: { preserveFocus: boolean, pinned: boolean };
if (typeof preserveFocusOrOptions === 'object') {
options = {
preserveFocus: preserveFocusOrOptions.preserveFocus,
pinned: preserveFocusOrOptions.pinned === undefined ? true : preserveFocusOrOptions.pinned
};
} else {
options = {
preserveFocus: preserveFocusOrOptions,
pinned: true
};
}
const input = {
resource,
options: { preserveFocus, pinned: true }
options
};
return this._workbenchEditorService.openEditor(input, position).then(editor => {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册