src/vs/workbench/contrib/tasks/browser/terminalTaskSystem.ts/TerminalTaskSystem/constructor
class TerminalTaskSystem:	constructor(
		private terminalService: ITerminalService,
		private terminalGroupService: ITerminalGroupService,
		private outputService: IOutputService,
		private panelService: IPanelService,
		private viewsService: IViewsService,
		private markerService: IMarkerService, private modelService: IModelService,
		private configurationResolverService: IConfigurationResolverService,
		private telemetryService: ITelemetryService,
		private contextService: IWorkspaceContextService,
		private environmentService: IWorkbenchEnvironmentService,
		private outputChannelId: string,
		private fileService: IFileService,
		private terminalProfileResolverService: ITerminalProfileResolverService,
		private pathService: IPathService,
		private viewDescriptorService: IViewDescriptorService,
		private logService: ILogService,
		private configurationService: IConfigurationService,
		taskService: ITaskService,
		taskSystemInfoResolver: TaskSystemInfoResolver,
	) {
		super();

		this.activeTasks = Object.create(null);
		this.instances = Object.create(null);
		this.busyTasks = Object.create(null);
		this.terminals = Object.create(null);
		this.idleTaskTerminals = new LinkedMap<string, string>();
		this.sameTaskTerminals = Object.create(null);

		this._onDidStateChange = new Emitter();
		this.taskSystemInfoResolver = taskSystemInfoResolver;
		this._register(this.terminalStatusManager = new TaskTerminalStatus(taskService));
	}