Skip to content

Commit ca6a4fd

Browse files
committed
Have single instance of task provider
Match setup of plugin task provider
1 parent 1275cec commit ca6a4fd

File tree

3 files changed

+7
-4
lines changed

3 files changed

+7
-4
lines changed

src/WorkspaceContext.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ import { DocCDocumentationRequest, ReIndexProjectRequest } from "./sourcekit-lsp
3535
import { TestKind } from "./TestExplorer/TestKind";
3636
import { isValidWorkspaceFolder, searchForPackages } from "./utilities/workspace";
3737
import { SwiftPluginTaskProvider } from "./tasks/SwiftPluginTaskProvider";
38+
import { SwiftTaskProvider } from "./tasks/SwiftTaskProvider";
3839

3940
/**
4041
* Context for whole workspace. Holds array of contexts for each workspace folder
@@ -49,6 +50,7 @@ export class WorkspaceContext implements vscode.Disposable {
4950
public languageClientManager: LanguageClientToolchainCoordinator;
5051
public tasks: TaskManager;
5152
public diagnostics: DiagnosticsManager;
53+
public taskProvider: SwiftTaskProvider;
5254
public pluginProvider: SwiftPluginTaskProvider;
5355
public subscriptions: vscode.Disposable[];
5456
public commentCompletionProvider: CommentCompletionProviders;
@@ -78,6 +80,7 @@ export class WorkspaceContext implements vscode.Disposable {
7880
this.languageClientManager = new LanguageClientToolchainCoordinator(this);
7981
this.tasks = new TaskManager(this);
8082
this.diagnostics = new DiagnosticsManager(this);
83+
this.taskProvider = new SwiftTaskProvider(this);
8184
this.pluginProvider = new SwiftPluginTaskProvider(this);
8285
this.documentation = new DocumentationManager(extensionContext, this);
8386
this.currentDocument = null;

src/extension.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ import * as vscode from "vscode";
1919
import * as commands from "./commands";
2020
import * as debug from "./debugger/launch";
2121
import { ProjectPanelProvider } from "./ui/ProjectPanelProvider";
22-
import { SwiftTaskProvider } from "./tasks/SwiftTaskProvider";
2322
import { FolderEvent, FolderOperation, WorkspaceContext } from "./WorkspaceContext";
2423
import { FolderContext } from "./FolderContext";
2524
import { TestExplorer } from "./TestExplorer/TestExplorer";
@@ -96,7 +95,9 @@ export async function activate(context: vscode.ExtensionContext): Promise<Api> {
9695
context.subscriptions.push(new SelectedXcodeWatcher(outputChannel));
9796

9897
// Register task provider.
99-
context.subscriptions.push(SwiftTaskProvider.register(workspaceContext));
98+
context.subscriptions.push(
99+
vscode.tasks.registerTaskProvider("swift", workspaceContext.taskProvider)
100+
);
100101

101102
// Register swift plugin task provider.
102103
context.subscriptions.push(

test/integration-tests/tasks/SwiftTaskProvider.test.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ import * as vscode from "vscode";
1717
import * as assert from "assert";
1818
import { WorkspaceContext } from "../../../src/WorkspaceContext";
1919
import {
20-
SwiftTaskProvider,
2120
createSwiftTask,
2221
createBuildAllTask,
2322
getBuildAllTask,
@@ -154,7 +153,7 @@ suite("SwiftTaskProvider Test Suite", () => {
154153
});
155154

156155
test("includes product release task", async () => {
157-
const taskProvider = new SwiftTaskProvider(workspaceContext);
156+
const taskProvider = workspaceContext.taskProvider;
158157
const tasks = await taskProvider.provideTasks(
159158
new vscode.CancellationTokenSource().token
160159
);

0 commit comments

Comments
 (0)