src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts/AbstractTaskService/createTerminalTaskSystem
class AbstractTaskService:	protected createTerminalTaskSystem(): ITaskSystem {
		return new TerminalTaskSystem(
			this.terminalService, this.terminalGroupService, this.outputService, this.paneCompositeService, this.viewsService, this.markerService,
			this.modelService, this.configurationResolverService, this.telemetryService,
			this.contextService, this.environmentService,
			AbstractTaskService.OutputChannelId, this.fileService, this.terminalProfileResolverService,
			this.pathService, this.viewDescriptorService, this.logService, this.configurationService, this.notificationService,
			this,
			(workspaceFolder: IWorkspaceFolder | undefined) => {
				if (workspaceFolder) {
					return this.getTaskSystemInfo(workspaceFolder.uri.scheme);
				} else if (this._taskSystemInfos.size > 0) {
					const infos = Array.from(this._taskSystemInfos.entries());
					const notFile = infos.filter(info => info[0] !== Schemas.file);
					if (notFile.length > 0) {
						return notFile[0][1];
					}
					return infos[0][1];
				} else {
					return undefined;
				}
			}
		);
	}