feat: Automatically rename duplicate task names with additional relative path (#1265)
This commit is contained in:
Родитель
e527910c7c
Коммит
16c7a16b87
|
@ -1,4 +1,5 @@
|
|||
import * as vscode from "vscode";
|
||||
import * as path from "path";
|
||||
import { parseArgsStringToArgv } from "string-argv";
|
||||
import { GradleProject, GradleTask } from "../proto/gradle_pb";
|
||||
import { TaskArgs } from "../stores/types";
|
||||
|
@ -278,6 +279,27 @@ export async function loadTasksForProjectRoots(
|
|||
}
|
||||
}
|
||||
}
|
||||
// detect duplicate task names
|
||||
const tasksMap: Map<string, vscode.Task[]> = new Map();
|
||||
for (const task of allTasks) {
|
||||
if (tasksMap.has(task.name)) {
|
||||
tasksMap.get(task.name)!.push(task);
|
||||
} else {
|
||||
tasksMap.set(task.name, [task]);
|
||||
}
|
||||
}
|
||||
// rename duplicate task names with additional relative path
|
||||
for (const tasks of tasksMap.values()) {
|
||||
if (tasks.length !== 1) {
|
||||
for (const task of tasks) {
|
||||
const definition = task.definition as GradleTaskDefinition;
|
||||
const relativePath = path.relative(definition.workspaceFolder, definition.projectFolder);
|
||||
if (relativePath) {
|
||||
task.name = task.name + ` (${relativePath})`;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return allTasks;
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче