From 724192d8698f8c66501d4dd077a8b94b50e7fa22 Mon Sep 17 00:00:00 2001 From: Charis Kyriakou Date: Tue, 16 Jan 2024 11:49:38 +0000 Subject: [PATCH 1/2] Tidy up variant analysis commands --- extensions/ql-vscode/src/common/commands.ts | 4 +- .../src/variant-analysis/run-remote-query.ts | 4 +- .../variant-analysis-manager.ts | 49 +++++++++++-------- 3 files changed, 33 insertions(+), 24 deletions(-) diff --git a/extensions/ql-vscode/src/common/commands.ts b/extensions/ql-vscode/src/common/commands.ts index 320e6188c85..b1463a84853 100644 --- a/extensions/ql-vscode/src/common/commands.ts +++ b/extensions/ql-vscode/src/common/commands.ts @@ -275,8 +275,8 @@ export type VariantAnalysisCommands = { "codeQL.openVariantAnalysisView": ( variantAnalysisId: number, ) => Promise; - "codeQL.runVariantAnalysis": (uri?: Uri) => Promise; - "codeQL.runVariantAnalysisContextEditor": (uri?: Uri) => Promise; + "codeQL.runVariantAnalysis": () => Promise; + "codeQL.runVariantAnalysisContextEditor": (uri: Uri) => Promise; "codeQL.runVariantAnalysisContextExplorer": ExplorerSelectionCommandFunction; "codeQLQueries.runVariantAnalysisContextMenu": TreeViewContextSingleSelectionCommandFunction; "codeQL.runVariantAnalysisPublishedPack": () => Promise; diff --git a/extensions/ql-vscode/src/variant-analysis/run-remote-query.ts b/extensions/ql-vscode/src/variant-analysis/run-remote-query.ts index 421dc54e7f6..42779aae7e7 100644 --- a/extensions/ql-vscode/src/variant-analysis/run-remote-query.ts +++ b/extensions/ql-vscode/src/variant-analysis/run-remote-query.ts @@ -274,12 +274,12 @@ interface PreparedRemoteQuery { export async function prepareRemoteQueryRun( cliServer: CodeQLCliServer, credentials: Credentials, - uri: Uri | undefined, + uri: Uri, progress: ProgressCallback, token: CancellationToken, dbManager: DbManager, ): Promise { - if (!uri?.fsPath.endsWith(".ql")) { + if (!uri.fsPath.endsWith(".ql")) { throw new UserCancellationException("Not a CodeQL query file."); } diff --git a/extensions/ql-vscode/src/variant-analysis/variant-analysis-manager.ts b/extensions/ql-vscode/src/variant-analysis/variant-analysis-manager.ts index 16940d1e4b9..a4b632ab069 100644 --- a/extensions/ql-vscode/src/variant-analysis/variant-analysis-manager.ts +++ b/extensions/ql-vscode/src/variant-analysis/variant-analysis-manager.ts @@ -167,9 +167,9 @@ export class VariantAnalysisManager "codeQL.openVariantAnalysisLogs": this.openVariantAnalysisLogs.bind(this), "codeQL.openVariantAnalysisView": this.showView.bind(this), "codeQL.runVariantAnalysis": - this.runVariantAnalysisFromCommand.bind(this), + this.runVariantAnalysisFromCommandPalette.bind(this), "codeQL.runVariantAnalysisContextEditor": - this.runVariantAnalysisFromCommand.bind(this), + this.runVariantAnalysisFromContextEditor.bind(this), "codeQL.runVariantAnalysisContextExplorer": createMultiSelectionCommand( this.runVariantAnalysisFromExplorer.bind(this), ), @@ -184,35 +184,32 @@ export class VariantAnalysisManager return this.app.commands; } - private async runVariantAnalysisFromCommand(uri?: Uri) { - return withProgress( - async (progress, token) => - this.runVariantAnalysis( - uri || Window.activeTextEditor?.document.uri, - progress, - token, - ), - { - title: "Run Variant Analysis", - cancellable: true, - }, - ); + private async runVariantAnalysisFromCommandPalette() { + const fileUri = Window.activeTextEditor?.document.uri; + if (!fileUri) { + throw new Error("Please select a .ql file to run variant analysis on"); + } + + await this.runVariantAnalysisCommand(fileUri); + } + + private async runVariantAnalysisFromContextEditor(uri: Uri) { + await this.runVariantAnalysisCommand(uri); } private async runVariantAnalysisFromExplorer(fileURIs: Uri[]): Promise { if (fileURIs.length !== 1) { throw new Error("Can only run a single query at a time"); } - return this.runVariantAnalysisFromCommand(fileURIs[0]); + + return this.runVariantAnalysisCommand(fileURIs[0]); } private async runVariantAnalysisFromQueriesPanel( queryTreeViewItem: QueryTreeViewItem, ): Promise { if (queryTreeViewItem.path !== undefined) { - await this.runVariantAnalysisFromCommand( - Uri.file(queryTreeViewItem.path), - ); + await this.runVariantAnalysisCommand(Uri.file(queryTreeViewItem.path)); } } @@ -220,8 +217,20 @@ export class VariantAnalysisManager throw new Error("Command not yet implemented"); } + private async runVariantAnalysisCommand(uri: Uri): Promise { + return withProgress( + async (progress, token) => { + await this.runVariantAnalysis(uri, progress, token); + }, + { + title: "Run Variant Analysis", + cancellable: true, + }, + ); + } + public async runVariantAnalysis( - uri: Uri | undefined, + uri: Uri, progress: ProgressCallback, token: CancellationToken, ): Promise { From 4143a1d37bf141e747d76ad6af9125a2394bfd80 Mon Sep 17 00:00:00 2001 From: Charis Kyriakou Date: Tue, 16 Jan 2024 12:07:30 +0000 Subject: [PATCH 2/2] Update extensions/ql-vscode/src/variant-analysis/variant-analysis-manager.ts Co-authored-by: Shati Patel <42641846+shati-patel@users.noreply.github.com> --- .../ql-vscode/src/variant-analysis/variant-analysis-manager.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extensions/ql-vscode/src/variant-analysis/variant-analysis-manager.ts b/extensions/ql-vscode/src/variant-analysis/variant-analysis-manager.ts index a4b632ab069..4985386a5d5 100644 --- a/extensions/ql-vscode/src/variant-analysis/variant-analysis-manager.ts +++ b/extensions/ql-vscode/src/variant-analysis/variant-analysis-manager.ts @@ -187,7 +187,7 @@ export class VariantAnalysisManager private async runVariantAnalysisFromCommandPalette() { const fileUri = Window.activeTextEditor?.document.uri; if (!fileUri) { - throw new Error("Please select a .ql file to run variant analysis on"); + throw new Error("Please select a .ql file to run as a variant analysis"); } await this.runVariantAnalysisCommand(fileUri);