提交 9d16f3c1 编写于 作者: D Daniel Imms

Support setting terminal name

上级 0d902387
......@@ -3465,7 +3465,7 @@ declare namespace vscode {
*/
export function createStatusBarItem(alignment?: StatusBarAlignment, priority?: number): StatusBarItem;
export function createTerminal(name?: string): Thenable<vscode.Terminal>;
export function createTerminal(label?: string): Thenable<vscode.Terminal>;
}
/**
......
......@@ -20,8 +20,7 @@ export class MainThreadTerminalService extends MainThreadTerminalServiceShape {
}
public $createTerminal(name?: string): TPromise<number> {
// TODO: Use name here
return this._terminalService.createNew();
return this._terminalService.createNew(name);
}
public $show(terminalId: number, preserveFocus: boolean): void {
......
......@@ -174,8 +174,8 @@ export class TerminalPanel extends Panel {
}));
}
public createNewTerminalInstance(terminalProcess: ITerminalProcess, terminalFocusContextKey: IContextKey<boolean>): TPromise<number> {
return this.createTerminal(terminalProcess, terminalFocusContextKey).then((terminalInstance) => {
public createNewTerminalInstance(process: ITerminalProcess, focusContextKey: IContextKey<boolean>): TPromise<number> {
return this.createTerminal(process, focusContextKey).then((terminalInstance) => {
this.updateConfig();
this.focus();
return TPromise.as(terminalInstance.id);
......
......@@ -152,7 +152,7 @@ export class TerminalService implements ITerminalService {
return this.focus();
}
public createNew(): TPromise<number> {
public createNew(name?: string): TPromise<number> {
let self = this;
let processCount = this.terminalProcesses.length;
......@@ -170,7 +170,7 @@ export class TerminalService implements ITerminalService {
}
self.initConfigHelper(terminalPanel.getContainer());
return terminalPanel.createNewTerminalInstance(self.createTerminalProcess(), this._terminalFocusContextKey).then((terminalId) => {
return terminalPanel.createNewTerminalInstance(self.createTerminalProcess(name), this._terminalFocusContextKey).then((terminalId) => {
self._onInstancesChanged.fire();
return TPromise.as(terminalId);
});
......@@ -245,11 +245,11 @@ export class TerminalService implements ITerminalService {
}
}
private createTerminalProcess(): ITerminalProcess {
private createTerminalProcess(name?: string): ITerminalProcess {
let locale = this.configHelper.isSetLocaleVariables() ? platform.locale : undefined;
let env = TerminalService.createTerminalEnv(process.env, this.configHelper.getShell(), this.contextService.getWorkspace(), locale);
let terminalProcess = {
title: '',
title: name,
process: cp.fork('./terminalProcess', [], {
env: env,
cwd: URI.parse(path.dirname(require.toUrl('./terminalProcess'))).fsPath
......@@ -259,12 +259,15 @@ export class TerminalService implements ITerminalService {
this._onInstancesChanged.fire();
this.activeTerminalIndex = this.terminalProcesses.length - 1;
this._onActiveInstanceChanged.fire();
terminalProcess.process.on('message', (message) => {
if (message.type === 'title') {
terminalProcess.title = message.content;
this._onInstanceTitleChanged.fire();
}
});
if (!name) {
// Only listen for process title changes when a name is not provided
terminalProcess.process.on('message', (message) => {
if (message.type === 'title') {
terminalProcess.title = message.content;
this._onInstanceTitleChanged.fire();
}
});
}
return terminalProcess;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册