Merge from vscode 2f984aad710215f4e4684a035bb02f55d1a9e2cc (#9819)

This commit is contained in:
Anthony Dresser
2020-04-01 00:44:39 -07:00
committed by GitHub
parent 0e27aaa61f
commit 0bfbdc62ed
247 changed files with 5402 additions and 3311 deletions

View File

@@ -1240,7 +1240,7 @@ export abstract class AbstractTaskService extends Disposable implements ITaskSer
}
}
private getResourceForTask(task: CustomTask | ContributedTask): URI {
private getResourceForTask(task: CustomTask | ConfiguringTask | ContributedTask): URI {
if (CustomTask.is(task)) {
let uri = this.getResourceForKind(task._source.kind);
if (!uri) {
@@ -1257,7 +1257,7 @@ export abstract class AbstractTaskService extends Disposable implements ITaskSer
}
}
public openConfig(task: CustomTask | undefined): Promise<void> {
public openConfig(task: CustomTask | ConfiguringTask | undefined): Promise<void> {
let resource: URI | undefined;
if (task) {
resource = this.getResourceForTask(task);
@@ -2596,6 +2596,10 @@ export abstract class AbstractTaskService extends Disposable implements ITaskSer
return result;
}
private configHasTasks(taskConfig?: TaskConfig.ExternalTaskRunnerConfiguration): boolean {
return !!taskConfig && !!taskConfig.tasks && taskConfig.tasks.length > 0;
}
private openTaskFile(resource: URI, taskSource: string) {
let configFileCreated = false;
this.fileService.resolve(resource).then((stat) => stat, () => undefined).then(async (stat) => {
@@ -2604,9 +2608,9 @@ export abstract class AbstractTaskService extends Disposable implements ITaskSer
let tasksExistInFile: boolean;
let target: ConfigurationTarget;
switch (taskSource) {
case TaskSourceKind.User: tasksExistInFile = !!configValue.userValue; target = ConfigurationTarget.USER; break;
case TaskSourceKind.WorkspaceFile: tasksExistInFile = !!configValue.workspaceValue; target = ConfigurationTarget.WORKSPACE; break;
default: tasksExistInFile = !!configValue.value; target = ConfigurationTarget.WORKSPACE_FOLDER;
case TaskSourceKind.User: tasksExistInFile = this.configHasTasks(configValue.userValue); target = ConfigurationTarget.USER; break;
case TaskSourceKind.WorkspaceFile: tasksExistInFile = this.configHasTasks(configValue.workspaceValue); target = ConfigurationTarget.WORKSPACE; break;
default: tasksExistInFile = this.configHasTasks(configValue.value); target = ConfigurationTarget.WORKSPACE_FOLDER;
}
let content;
if (!tasksExistInFile) {