Adds editor options overload to showTextDocument

This commit is contained in:
Eric Amodio
2017-03-30 02:29:32 -04:00
parent e9269c39de
commit b5340dbec3
4 changed files with 38 additions and 5 deletions

View File

@@ -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(); }

View File

@@ -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;

View File

@@ -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 => {