Skip to content

Commit 2d96b9b

Browse files
committed
Fix global tasks again
Fixes microsoft#78817
1 parent 84786d3 commit 2d96b9b

4 files changed

Lines changed: 17 additions & 5 deletions

File tree

src/vs/workbench/api/browser/mainThreadTask.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -264,7 +264,7 @@ namespace TaskSourceDTO {
264264
}
265265
} else if (value.kind === TaskSourceKind.Workspace) {
266266
result.extensionId = '$core';
267-
result.scope = value.config.workspaceFolder.uri;
267+
result.scope = value.config.workspaceFolder ? value.config.workspaceFolder.uri : TaskScope.Global;
268268
}
269269
return result;
270270
}

src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -983,7 +983,12 @@ export abstract class AbstractTaskService extends Disposable implements ITaskSer
983983
private getResourceForTask(task: CustomTask): URI {
984984
let uri = this.getResourceForKind(task._source.kind);
985985
if (!uri) {
986-
uri = task.getWorkspaceFolder().toResource(task._source.config.file);
986+
const taskFolder = task.getWorkspaceFolder();
987+
if (taskFolder) {
988+
uri = taskFolder.toResource(task._source.config.file);
989+
} else {
990+
uri = this.workspaceFolders[0].uri;
991+
}
987992
}
988993
return uri;
989994
}

src/vs/workbench/contrib/tasks/browser/terminalTaskSystem.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -462,7 +462,14 @@ export class TerminalTaskSystem implements ITaskSystem {
462462
}
463463

464464
private executeCommand(task: CustomTask | ContributedTask, trigger: string): Promise<ITaskSummary> {
465-
const workspaceFolder = this.currentTask.workspaceFolder = task.getWorkspaceFolder();
465+
const taskWorkspaceFolder = task.getWorkspaceFolder();
466+
let workspaceFolder: IWorkspaceFolder | undefined;
467+
if (taskWorkspaceFolder) {
468+
workspaceFolder = this.currentTask.workspaceFolder = taskWorkspaceFolder;
469+
} else {
470+
const folders = this.contextService.getWorkspace().folders;
471+
workspaceFolder = folders.length > 0 ? folders[0] : undefined;
472+
}
466473
const systemInfo: TaskSystemInfo | undefined = this.currentTask.systemInfo = workspaceFolder ? this.taskSystemInfoResolver(workspaceFolder) : undefined;
467474

468475
let variables = new Set<string>();

src/vs/workbench/contrib/tasks/common/tasks.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -380,7 +380,7 @@ export namespace TaskSourceKind {
380380
}
381381

382382
export interface TaskSourceConfigElement {
383-
workspaceFolder: IWorkspaceFolder;
383+
workspaceFolder?: IWorkspaceFolder;
384384
workspace?: IWorkspace;
385385
file: string;
386386
index: number;
@@ -728,7 +728,7 @@ export class CustomTask extends CommonTask {
728728
return JSON.stringify(key);
729729
}
730730

731-
public getWorkspaceFolder(): IWorkspaceFolder {
731+
public getWorkspaceFolder(): IWorkspaceFolder | undefined {
732732
return this._source.config.workspaceFolder;
733733
}
734734

0 commit comments

Comments
 (0)