Skip to content

Commit cda3483

Browse files
Use getOnDiskWorkspaceFoldersObjects early instead of getting all folders and filtering later
1 parent 78f1139 commit cda3483

File tree

1 file changed

+7
-22
lines changed

1 file changed

+7
-22
lines changed

extensions/ql-vscode/src/queries-panel/query-discovery.ts

Lines changed: 7 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import { dirname, basename, normalize, relative } from "path";
22
import { Discovery } from "../common/discovery";
33
import { CodeQLCliServer } from "../codeql-cli/cli";
4-
import { pathExists } from "fs-extra";
54
import {
65
Event,
76
EventEmitter,
@@ -12,7 +11,7 @@ import {
1211
import { MultiFileSystemWatcher } from "../common/vscode/multi-file-system-watcher";
1312
import { App } from "../common/app";
1413
import { FileTreeDirectory, FileTreeLeaf } from "../common/file-tree-nodes";
15-
import { getOnDiskWorkspaceFolders } from "../helpers";
14+
import { getOnDiskWorkspaceFoldersObjects } from "../helpers";
1615

1716
/**
1817
* The results of discovering queries.
@@ -44,10 +43,7 @@ export class QueryDiscovery extends Discovery<QueryDiscoveryResults> {
4443
new MultiFileSystemWatcher(),
4544
);
4645

47-
constructor(
48-
private readonly app: App,
49-
private readonly cliServer: CodeQLCliServer,
50-
) {
46+
constructor(app: App, private readonly cliServer: CodeQLCliServer) {
5147
super("Query Discovery");
5248

5349
this.push(app.onDidChangeWorkspaceFolders(this.refresh.bind(this)));
@@ -66,8 +62,8 @@ export class QueryDiscovery extends Discovery<QueryDiscoveryResults> {
6662
}
6763

6864
protected async discover(): Promise<QueryDiscoveryResults> {
69-
const workspaceFolders = this.app.workspaceFolders;
70-
if (workspaceFolders === undefined || workspaceFolders.length === 0) {
65+
const workspaceFolders = getOnDiskWorkspaceFoldersObjects();
66+
if (workspaceFolders.length === 0) {
7167
return {
7268
queries: [],
7369
watchPaths: [],
@@ -105,30 +101,19 @@ export class QueryDiscovery extends Discovery<QueryDiscoveryResults> {
105101
): Promise<FileTreeDirectory[]> {
106102
const rootDirectories = [];
107103
for (const workspaceFolder of workspaceFolders) {
108-
const rootDirectory = await this.discoverQueriesInWorkspace(
109-
workspaceFolder,
104+
rootDirectories.push(
105+
await this.discoverQueriesInWorkspace(workspaceFolder),
110106
);
111-
if (rootDirectory !== undefined) {
112-
rootDirectories.push(rootDirectory);
113-
}
114107
}
115108
return rootDirectories;
116109
}
117110

118111
private async discoverQueriesInWorkspace(
119112
workspaceFolder: WorkspaceFolder,
120-
): Promise<FileTreeDirectory | undefined> {
113+
): Promise<FileTreeDirectory> {
121114
const fullPath = workspaceFolder.uri.fsPath;
122115
const name = workspaceFolder.name;
123116

124-
// Don't try discovery on workspace folders that don't exist on the filesystem
125-
if (
126-
!(await pathExists(fullPath)) ||
127-
!getOnDiskWorkspaceFolders().includes(fullPath)
128-
) {
129-
return undefined;
130-
}
131-
132117
const rootDirectory = new FileTreeDirectory(fullPath, name);
133118

134119
const resolvedQueries = await this.cliServer.resolveQueries(fullPath);

0 commit comments

Comments
 (0)