From 1c1117f7a3eadaed653deedb3c9bbb3401372f5e Mon Sep 17 00:00:00 2001 From: Nora Date: Wed, 7 Dec 2022 16:35:51 +0100 Subject: [PATCH 1/2] Suggestion: initialize DbManager when newQueryRun is enabled --- extensions/ql-vscode/src/extension.ts | 17 +++++++++++++---- .../remote-queries/variant-analysis-manager.ts | 2 +- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/extensions/ql-vscode/src/extension.ts b/extensions/ql-vscode/src/extension.ts index 51c9a0274..b470f3675 100644 --- a/extensions/ql-vscode/src/extension.ts +++ b/extensions/ql-vscode/src/extension.ts @@ -38,6 +38,7 @@ import { CliConfigListener, DistributionConfigListener, isCanary, + isNewQueryRunExperienceEnabled, isVariantAnalysisLiveResultsEnabled, joinOrderWarningThreshold, MAX_QUERIES, @@ -138,6 +139,7 @@ import { VariantAnalysisResultsManager } from "./remote-queries/variant-analysis import { initializeDbModule } from "./databases/db-module"; import { ExtensionApp } from "./common/vscode/vscode-app"; import { RepositoriesFilterSortStateWithIds } from "./pure/variant-analysis-filter-sort"; +import { AppMode } from "./common/app"; /** * extension.ts @@ -623,9 +625,15 @@ async function activateWithInstalledDistribution( void extLogger.log("Initializing variant analysis manager."); - const app = new ExtensionApp(ctx); - const dbModule = await initializeDbModule(app); - ctx.subscriptions.push(dbModule); + // We only want to initialize the new db panel when the newQueryRunExperience is enabled + let dbModule; + if (isCanary() && isNewQueryRunExperienceEnabled()) { + const app = new ExtensionApp(ctx); + if (app.mode === AppMode.Development) { + dbModule = await initializeDbModule(app); + ctx.subscriptions.push(dbModule); + } + } const variantAnalysisStorageDir = join( ctx.globalStorageUri.fsPath, @@ -636,12 +644,13 @@ async function activateWithInstalledDistribution( cliServer, extLogger, ); + const variantAnalysisManager = new VariantAnalysisManager( ctx, cliServer, variantAnalysisStorageDir, variantAnalysisResultsManager, - dbModule.dbManager, + dbModule ? dbModule.dbManager : undefined, // the dbModule is only needed when the newQueryRunExperience is enabled ); ctx.subscriptions.push(variantAnalysisManager); ctx.subscriptions.push(variantAnalysisResultsManager); diff --git a/extensions/ql-vscode/src/remote-queries/variant-analysis-manager.ts b/extensions/ql-vscode/src/remote-queries/variant-analysis-manager.ts index 5adc28506..e045e4575 100644 --- a/extensions/ql-vscode/src/remote-queries/variant-analysis-manager.ts +++ b/extensions/ql-vscode/src/remote-queries/variant-analysis-manager.ts @@ -101,7 +101,7 @@ export class VariantAnalysisManager private readonly cliServer: CodeQLCliServer, private readonly storagePath: string, private readonly variantAnalysisResultsManager: VariantAnalysisResultsManager, - private readonly dbManager: DbManager, + private readonly dbManager?: DbManager, // the dbManager is only needed when the newQueryRunExperience is enabled ) { super(); this.variantAnalysisMonitor = this.push( From e7bab9207d9c99a99190b433433706df96383486 Mon Sep 17 00:00:00 2001 From: Nora Date: Fri, 9 Dec 2022 09:59:59 +0000 Subject: [PATCH 2/2] Remove unused checks --- .../ql-vscode/src/databases/db-module.ts | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/extensions/ql-vscode/src/databases/db-module.ts b/extensions/ql-vscode/src/databases/db-module.ts index 52bec696b..ae0fb8663 100644 --- a/extensions/ql-vscode/src/databases/db-module.ts +++ b/extensions/ql-vscode/src/databases/db-module.ts @@ -1,6 +1,5 @@ import { window } from "vscode"; -import { App, AppMode } from "../common/app"; -import { isCanary, isNewQueryRunExperienceEnabled } from "../config"; +import { App } from "../common/app"; import { extLogger } from "../common"; import { DisposableObject } from "../pure/disposable-object"; import { DbConfigStore } from "./config/db-config-store"; @@ -19,18 +18,7 @@ export class DbModule extends DisposableObject { this.dbManager = new DbManager(app, this.dbConfigStore); } - public async initialize(app: App): Promise { - if ( - app.mode !== AppMode.Development || - !isCanary() || - !isNewQueryRunExperienceEnabled() - ) { - // Currently, we only want to expose the new database panel when we - // are in development and canary mode and the developer has enabled the - // new query run experience. - return; - } - + public async initialize(): Promise { void extLogger.log("Initializing database module"); await this.dbConfigStore.initialize(); @@ -49,6 +37,6 @@ export class DbModule extends DisposableObject { export async function initializeDbModule(app: App): Promise { const dbModule = new DbModule(app); - await dbModule.initialize(app); + await dbModule.initialize(); return dbModule; }