Add terminal location API (#131028)

This commit is contained in:
Megan Rogge
2021-08-19 19:08:06 -07:00
committed by GitHub
parent e410db3dfe
commit d3db2d1062
19 changed files with 291 additions and 148 deletions

View File

@@ -23,7 +23,21 @@ export class ExtHostTerminalService extends BaseExtHostTerminalService {
public createTerminalFromOptions(options: vscode.TerminalOptions, internalOptions?: ITerminalInternalOptions): vscode.Terminal {
const terminal = new ExtHostTerminal(this._proxy, generateUuid(), options, options.name);
this._terminals.push(terminal);
terminal.create(options, internalOptions);
terminal.create(options, this._serializeParentTerminal(options, internalOptions));
return terminal.value;
}
private _serializeParentTerminal(options: vscode.TerminalOptions, internalOptions?: ITerminalInternalOptions): ITerminalInternalOptions {
internalOptions = internalOptions ? internalOptions : {};
if (options.location && typeof options.location === 'object' && 'parentTerminal' in options.location) {
const parentTerminal = options.location.parentTerminal;
if (parentTerminal) {
const parentExtHostTerminal = this._terminals.find(t => t.value === parentTerminal);
if (parentExtHostTerminal) {
internalOptions.resolvedExtHostIdentifier = parentExtHostTerminal._id;
}
}
}
return internalOptions;
}
}