11import { dirname , basename , normalize , relative } from "path" ;
22import { Discovery } from "../common/discovery" ;
33import { CodeQLCliServer } from "../codeql-cli/cli" ;
4- import { pathExists } from "fs-extra" ;
54import {
65 Event ,
76 EventEmitter ,
@@ -12,7 +11,7 @@ import {
1211import { MultiFileSystemWatcher } from "../common/vscode/multi-file-system-watcher" ;
1312import { App } from "../common/app" ;
1413import { 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