Skip to content

Commit 68c48c6

Browse files
committed
Add root project folder to each key in projectTreeItemMap
In microsoft#1612, the keys of this map were changed to the Gradle project path. This path is unique for each project within one Gradle build, but not if there are multiple Gradle builds loaded in one workspace by using: 'gradle.nestedProjects': true This change combined the old and new behavior by creating the Map key from two parts: (1) The root project folder which uniquely identifies the build (accessible via definition.projectFolder) (2) The Gradle project path that uniquely identifies a project inside the build
1 parent 9ac3ffe commit 68c48c6

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

extension/src/views/gradleTasks/GradleTasksTreeDataProvider.ts

+8-3
Original file line numberDiff line numberDiff line change
@@ -254,13 +254,14 @@ export class GradleTasksTreeDataProvider implements vscode.TreeDataProvider<vsco
254254
}
255255

256256
const projectPath = definition.script.split(":").slice(0, -1);
257-
let projectTreeItem = projectTreeItemMap.get(projectPath.join(":"));
257+
const projectMapKey = definition.projectFolder + "_" + projectPath.join(":");
258+
let projectTreeItem = projectTreeItemMap.get(projectMapKey);
258259
if (!projectTreeItem) {
259260
const parentProjectPath = projectPath.length == 0 ? null : projectPath.slice(0, -1);
260261
const parentProject =
261262
parentProjectPath === null
262263
? gradleProjectTreeItem
263-
: projectTreeItemMap.get(parentProjectPath.join(":"));
264+
: projectTreeItemMap.get(definition.projectFolder + "_" + parentProjectPath.join(":"));
264265
projectTreeItem = new ProjectTreeItem(
265266
definition.project,
266267
parentProject,
@@ -271,7 +272,7 @@ export class GradleTasksTreeDataProvider implements vscode.TreeDataProvider<vsco
271272
} else {
272273
gradleProjectTreeItem.addProject(projectTreeItem);
273274
}
274-
projectTreeItemMap.set(projectPath.join(":"), projectTreeItem);
275+
projectTreeItemMap.set(projectMapKey, projectTreeItem);
275276
}
276277

277278
const taskName = definition.script.slice(definition.script.lastIndexOf(":") + 1);
@@ -309,4 +310,8 @@ export class GradleTasksTreeDataProvider implements vscode.TreeDataProvider<vsco
309310
}
310311
return [...gradleProjectTreeItemMap.values()];
311312
}
313+
314+
private projectTreeItemMapKey(rootProjectFolder: string, gradleProjectPath: string) {
315+
return rootProjectFolder + "_" + gradleProjectPath;
316+
}
312317
}

0 commit comments

Comments
 (0)