Skip to content

Commit 93d1ef7

Browse files
authored
fix: Only show migration Quick fixes for opened tasks.json (#674)
1 parent 991310a commit 93d1ef7

File tree

2 files changed

+11
-26
lines changed

2 files changed

+11
-26
lines changed

src/tasks/migration/DiagnosticProvider.ts

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import * as fs from "fs";
66
import * as path from "path";
77
import * as readline from "readline";
88
import * as vscode from "vscode";
9-
import { getTasksJsonPaths } from "./utils";
109
import { DeprecatedExportJarTaskProvider, ExportJarTaskProvider } from "../../exportJarSteps/ExportJarTaskProvider";
1110

1211
export class DiagnosticProvider implements vscode.Disposable {
@@ -21,12 +20,21 @@ export class DiagnosticProvider implements vscode.Disposable {
2120
this.refreshDiagnosticsTrigger = _.debounce(this.refreshDiagnostics, 500 /** ms */);
2221
this.diagnosticCollection = vscode.languages.createDiagnosticCollection("migrateExportTask");
2322
this.disposables.push(this.diagnosticCollection);
24-
this.disposables.push(vscode.workspace.onDidChangeTextDocument(async (e) => {
23+
this.disposables.push(vscode.workspace.onDidChangeTextDocument(async (e: vscode.TextDocumentChangeEvent) => {
2524
if (path.basename(e.document.fileName) === "tasks.json") {
2625
this.refreshDiagnosticsTrigger(e.document.uri);
2726
}
2827
}));
29-
this.initializeDiagnostics();
28+
this.disposables.push(vscode.workspace.onDidOpenTextDocument(async (e: vscode.TextDocument) => {
29+
if (path.basename(e.fileName) === "tasks.json") {
30+
this.refreshDiagnosticsTrigger(e.uri);
31+
}
32+
}));
33+
this.disposables.push(vscode.workspace.onDidCloseTextDocument(async (e: vscode.TextDocument) => {
34+
if (path.basename(e.fileName) === "tasks.json") {
35+
this.diagnosticCollection.set(e.uri, undefined);
36+
}
37+
}));
3038
}
3139

3240
public dispose() {
@@ -35,14 +43,6 @@ export class DiagnosticProvider implements vscode.Disposable {
3543
}
3644
}
3745

38-
private async initializeDiagnostics(): Promise<void> {
39-
const tasksJsonPaths = await getTasksJsonPaths();
40-
for (const tasksJsonPath of tasksJsonPaths) {
41-
const diagnostics: vscode.Diagnostic[] = await DiagnosticProvider.getDiagnosticsFromTasksJsonPath(tasksJsonPath);
42-
this.diagnosticCollection.set(vscode.Uri.file(tasksJsonPath), diagnostics);
43-
}
44-
}
45-
4646
private async refreshDiagnostics(uri: vscode.Uri): Promise<void> {
4747
const diagnostics: vscode.Diagnostic[] = await DiagnosticProvider.getDiagnosticsFromTasksJsonPath(uri.fsPath);
4848
this.diagnosticCollection.set(uri, diagnostics);

src/tasks/migration/utils.ts

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,12 @@
11
// Copyright (c) Microsoft Corporation. All rights reserved.
22
// Licensed under the MIT license.
33

4-
import * as fse from "fs-extra";
5-
import * as path from "path";
64
import { Range, tasks, TextDocument, workspace, WorkspaceEdit } from "vscode";
75
import { DeprecatedExportJarTaskProvider } from "../../exportJarSteps/ExportJarTaskProvider";
86
import { contextManager } from "../../contextManager";
97
import { Context } from "../../constants";
108
import { CodeActionProvider } from "./CodeActionProvider";
119

12-
export async function getTasksJsonPaths(): Promise<string[]> {
13-
const tasksJsonPaths = [];
14-
if (workspace.workspaceFolders?.length) {
15-
for (const folder of workspace.workspaceFolders) {
16-
const tasksJsonPath = path.join(folder.uri.fsPath, ".vscode", "tasks.json");
17-
if (await fse.pathExists(tasksJsonPath)) {
18-
tasksJsonPaths.push(tasksJsonPath);
19-
}
20-
}
21-
}
22-
return tasksJsonPaths;
23-
}
24-
2510
export async function updateExportTaskType(document: TextDocument, range: Range): Promise<void> {
2611
const workspaceEdit = new WorkspaceEdit();
2712
workspaceEdit.replace(document.uri, range, CodeActionProvider.JAVA_BUILD_ARTIFACT_TYPE);

0 commit comments

Comments
 (0)