diff --git a/extensions/ql-vscode/src/common/vscode/file-path-discovery.ts b/extensions/ql-vscode/src/common/vscode/file-path-discovery.ts index 47b37f9ff..4e3e53b7f 100644 --- a/extensions/ql-vscode/src/common/vscode/file-path-discovery.ts +++ b/extensions/ql-vscode/src/common/vscode/file-path-discovery.ts @@ -33,7 +33,7 @@ interface PathData { */ export abstract class FilePathDiscovery extends Discovery { /** The set of known paths and associated data that we are tracking */ - protected pathData: T[] = []; + private pathData: T[] = []; /** Event that fires whenever the contents of `pathData` changes */ protected readonly onDidChangePathDataEmitter: AppEventEmitter; @@ -71,6 +71,10 @@ export abstract class FilePathDiscovery extends Discovery { this.push(this.watcher.onDidChange(this.fileChanged.bind(this))); } + protected getPathData(): readonly T[] { + return this.pathData; + } + /** * Compute any extra data to be stored regarding the given path. */ diff --git a/extensions/ql-vscode/src/queries-panel/query-discovery.ts b/extensions/ql-vscode/src/queries-panel/query-discovery.ts index 3ff46bc8e..a813dab30 100644 --- a/extensions/ql-vscode/src/queries-panel/query-discovery.ts +++ b/extensions/ql-vscode/src/queries-panel/query-discovery.ts @@ -59,7 +59,7 @@ export class QueryDiscovery public buildQueryTree(): Array> { const roots = []; for (const workspaceFolder of getOnDiskWorkspaceFoldersObjects()) { - const queriesInRoot = this.pathData.filter((query) => + const queriesInRoot = this.getPathData().filter((query) => containsPath(workspaceFolder.uri.fsPath, query.path), ); if (queriesInRoot.length === 0) { diff --git a/extensions/ql-vscode/src/queries-panel/query-pack-discovery.ts b/extensions/ql-vscode/src/queries-panel/query-pack-discovery.ts index 495a6b801..88790091d 100644 --- a/extensions/ql-vscode/src/queries-panel/query-pack-discovery.ts +++ b/extensions/ql-vscode/src/queries-panel/query-pack-discovery.ts @@ -37,7 +37,7 @@ export class QueryPackDiscovery extends FilePathDiscovery { */ public getLanguageForQueryFile(queryPath: string): QueryLanguage | undefined { // Find all packs in a higher directory than the query - const packs = this.pathData.filter((queryPack) => + const packs = this.getPathData().filter((queryPack) => containsPath(dirname(queryPack.path), queryPath), ); diff --git a/extensions/ql-vscode/test/vscode-tests/minimal-workspace/common/vscode/file-path-discovery.test.ts b/extensions/ql-vscode/test/vscode-tests/minimal-workspace/common/vscode/file-path-discovery.test.ts index 933b9124d..81666a771 100644 --- a/extensions/ql-vscode/test/vscode-tests/minimal-workspace/common/vscode/file-path-discovery.test.ts +++ b/extensions/ql-vscode/test/vscode-tests/minimal-workspace/common/vscode/file-path-discovery.test.ts @@ -28,8 +28,8 @@ class TestFilePathDiscovery extends FilePathDiscovery { return this.onDidChangePathDataEmitter.event; } - public getPathData(): TestData[] { - return this.pathData; + public getPathData(): readonly TestData[] { + return super.getPathData(); } protected async getDataForPath(path: string): Promise {