open or focus editor

This commit is contained in:
meganrogge 2021-07-04 11:35:10 -07:00
parent 71e9f1f7cb
commit 6efcb92e34
No known key found for this signature in database
GPG key ID: 3155C8B2F0428C81
3 changed files with 16 additions and 1 deletions

View file

@ -197,6 +197,7 @@ export interface ITerminalEditorService extends ITerminalInstanceHost, ITerminal
readonly instances: readonly ITerminalInstance[];
openEditor(instance: ITerminalInstance): Promise<void>;
openOrFocusEditor(instance: ITerminalInstance): Promise<void>;
getOrCreateEditorInput(instance: ITerminalInstance | SerializedTerminalEditorInput): TerminalEditorInput;
detachActiveEditorInstance(): ITerminalInstance;
detachInstance(instance: ITerminalInstance): void;

View file

@ -145,6 +145,20 @@ export class TerminalEditorService extends Disposable implements ITerminalEditor
);
}
async openOrFocusEditor(instance: ITerminalInstance): Promise<void> {
const input = this.getOrCreateEditorInput(instance);
console.log(this._editorService.activeEditorPane?.group);
if (!this._editorService.activeEditorPane?.group.contains(input)) {
instance.focus();
return;
}
await this._editorService.openEditor(input, {
pinned: true,
forceReload: true
}
);
}
getOrCreateEditorInput(instance: ITerminalInstance | SerializedTerminalEditorInput, isFutureSplit: boolean = false): TerminalEditorInput {
let cachedEditor;
if ('id' in instance) {

View file

@ -121,7 +121,7 @@ export class TerminalQuickAccessProvider extends PickerQuickAccessProvider<IPick
},
accept: (keyMod, event) => {
if (terminal.target === TerminalLocation.Editor) {
terminal.focus();
this._terminalEditorService.openOrFocusEditor(terminal);
this._terminalEditorService.setActiveInstance(terminal);
} else {
this._terminalGroupService.showPanel(!event.inBackground);