mirror of
https://github.com/Microsoft/vscode
synced 2024-08-28 05:19:39 +00:00
Fix for #54085 npmScript explorer doesn´t show scripts with same name in multi root setup
This commit is contained in:
parent
2ee64bb0ad
commit
9a924f71f4
|
@ -358,7 +358,6 @@ export class NpmScriptsTreeDataProvider implements TreeDataProvider<TreeItem> {
|
|||
private buildTaskTree(tasks: Task[]): Folder[] | PackageJSON[] | NoScripts[] {
|
||||
let folders: Map<String, Folder> = new Map();
|
||||
let packages: Map<String, PackageJSON> = new Map();
|
||||
let scripts: Map<String, NpmScript> = new Map();
|
||||
|
||||
let folder = null;
|
||||
let packageJson = null;
|
||||
|
@ -380,11 +379,8 @@ export class NpmScriptsTreeDataProvider implements TreeDataProvider<TreeItem> {
|
|||
packages.set(fullPath, packageJson);
|
||||
}
|
||||
let fullScriptPath = path.join(packageJson.path, each.name);
|
||||
if (!scripts.get(fullScriptPath)) {
|
||||
let script = new NpmScript(this.extensionContext, packageJson, each);
|
||||
packageJson.addScript(script);
|
||||
scripts.set(fullScriptPath, script);
|
||||
}
|
||||
let script = new NpmScript(this.extensionContext, packageJson, each);
|
||||
packageJson.addScript(script);
|
||||
}
|
||||
});
|
||||
if (folders.size === 1) {
|
||||
|
|
|
@ -100,6 +100,7 @@ async function detectNpmScripts(): Promise<Task[]> {
|
|||
|
||||
let emptyTasks: Task[] = [];
|
||||
let allTasks: Task[] = [];
|
||||
let visitedPackageJsonFiles: Set<string> = new Set();
|
||||
|
||||
let folders = workspace.workspaceFolders;
|
||||
if (!folders) {
|
||||
|
@ -112,8 +113,10 @@ async function detectNpmScripts(): Promise<Task[]> {
|
|||
let relativePattern = new RelativePattern(folder, '**/package.json');
|
||||
let paths = await workspace.findFiles(relativePattern, '**/node_modules/**');
|
||||
for (let j = 0; j < paths.length; j++) {
|
||||
if (!isExcluded(folder, paths[j])) {
|
||||
let tasks = await provideNpmScriptsForFolder(paths[j]);
|
||||
let path = paths[j];
|
||||
if (!isExcluded(folder, path) && !visitedPackageJsonFiles.has(path.fsPath)) {
|
||||
let tasks = await provideNpmScriptsForFolder(path);
|
||||
visitedPackageJsonFiles.add(path.fsPath);
|
||||
allTasks.push(...tasks);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue