src/vs/workbench/contrib/terminal/browser/terminalService.ts/TerminalService/_initInstanceListeners
class TerminalService:	protected _initInstanceListeners(instance: ITerminalInstance): void {
		const instanceDisposables: IDisposable[] = [
			instance.onTitleChanged(this._onDidChangeInstanceTitle.fire, this._onDidChangeInstanceTitle),
			instance.onIconChanged(this._onDidChangeInstanceIcon.fire, this._onDidChangeInstanceIcon),
			instance.onIconChanged(this._onDidChangeInstanceColor.fire, this._onDidChangeInstanceColor),
			instance.onProcessIdReady(this._onDidReceiveProcessId.fire, this._onDidReceiveProcessId),
			instance.statusList.onDidChangePrimaryStatus(() => this._onDidChangeInstancePrimaryStatus.fire(instance)),
			instance.onLinksReady(this._onDidReceiveInstanceLinks.fire, this._onDidReceiveInstanceLinks),
			instance.onDimensionsChanged(() => {
				this._onDidChangeInstanceDimensions.fire(instance);
				if (this.configHelper.config.enablePersistentSessions && this.isProcessSupportRegistered) {
					this._saveState();
				}
			}),
			instance.onMaximumDimensionsChanged(() => this._onDidMaxiumumDimensionsChange.fire(instance)),
			instance.onDidInputData(this._onDidInputInstanceData.fire, this._onDidInputInstanceData),
			instance.onDidFocus(this._onDidChangeActiveInstance.fire, this._onDidChangeActiveInstance),
			instance.onRequestAddInstanceToGroup(async e => await this._addInstanceToGroup(instance, e))
		];
		instance.onDisposed(() => dispose(instanceDisposables));
	}