diff --git a/src/vs/vscode.d.ts b/src/vs/vscode.d.ts index 4b88dcf51e25b0fd1ef80c35fa00c4561dac3683..4c5d0eae1959b1eb92cbb4b2b1ba2b1db5391551 100644 --- a/src/vs/vscode.d.ts +++ b/src/vs/vscode.d.ts @@ -3465,7 +3465,7 @@ declare namespace vscode { */ export function createStatusBarItem(alignment?: StatusBarAlignment, priority?: number): StatusBarItem; - export function createTerminal(name?: string): Thenable; + export function createTerminal(label?: string): Thenable; } /** diff --git a/src/vs/workbench/api/node/mainThreadTerminalService.ts b/src/vs/workbench/api/node/mainThreadTerminalService.ts index a6a6c5852cc6ce30b4f55546b47d1dbda92dd0d3..539d5310dfd22fa1808d2011b74765d6859c59d4 100644 --- a/src/vs/workbench/api/node/mainThreadTerminalService.ts +++ b/src/vs/workbench/api/node/mainThreadTerminalService.ts @@ -20,8 +20,7 @@ export class MainThreadTerminalService extends MainThreadTerminalServiceShape { } public $createTerminal(name?: string): TPromise { - // TODO: Use name here - return this._terminalService.createNew(); + return this._terminalService.createNew(name); } public $show(terminalId: number, preserveFocus: boolean): void { diff --git a/src/vs/workbench/parts/terminal/electron-browser/terminalPanel.ts b/src/vs/workbench/parts/terminal/electron-browser/terminalPanel.ts index 4d96cda1ca5edbfd31ad43caaaa6a0cb2f33d9bd..1e0dafb28efcd89c63eb5924cd5ffca66a9dd62b 100644 --- a/src/vs/workbench/parts/terminal/electron-browser/terminalPanel.ts +++ b/src/vs/workbench/parts/terminal/electron-browser/terminalPanel.ts @@ -174,8 +174,8 @@ export class TerminalPanel extends Panel { })); } - public createNewTerminalInstance(terminalProcess: ITerminalProcess, terminalFocusContextKey: IContextKey): TPromise { - return this.createTerminal(terminalProcess, terminalFocusContextKey).then((terminalInstance) => { + public createNewTerminalInstance(process: ITerminalProcess, focusContextKey: IContextKey): TPromise { + return this.createTerminal(process, focusContextKey).then((terminalInstance) => { this.updateConfig(); this.focus(); return TPromise.as(terminalInstance.id); diff --git a/src/vs/workbench/parts/terminal/electron-browser/terminalService.ts b/src/vs/workbench/parts/terminal/electron-browser/terminalService.ts index 952e7a25c46cac26475dda9e0aacba33d7d5f860..8f212bc2292c47c98b9da1e43f3e31d836125305 100644 --- a/src/vs/workbench/parts/terminal/electron-browser/terminalService.ts +++ b/src/vs/workbench/parts/terminal/electron-browser/terminalService.ts @@ -152,7 +152,7 @@ export class TerminalService implements ITerminalService { return this.focus(); } - public createNew(): TPromise { + public createNew(name?: string): TPromise { 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; }