Skip to content

Commit 1bc5605

Browse files
Add codeQL.runVariantAnalysisContextExplorer command
1 parent ea1419a commit 1bc5605

3 files changed

Lines changed: 25 additions & 1 deletion

File tree

extensions/ql-vscode/package.json

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -545,6 +545,10 @@
545545
"command": "codeQL.runVariantAnalysisContextEditor",
546546
"title": "CodeQL: Run Variant Analysis"
547547
},
548+
{
549+
"command": "codeQL.runVariantAnalysisContextExplorer",
550+
"title": "CodeQL: Run Variant Analysis"
551+
},
548552
{
549553
"command": "codeQL.exportSelectedVariantAnalysisResults",
550554
"title": "CodeQL: Export Variant Analysis Results"
@@ -1321,6 +1325,11 @@
13211325
"group": "9_qlCommands",
13221326
"when": "resourceScheme != codeql-zip-archive"
13231327
},
1328+
{
1329+
"command": "codeQL.runVariantAnalysisContextExplorer",
1330+
"group": "9_qlCommands",
1331+
"when": "resourceExtname == .ql && config.codeQL.canary && config.codeQL.variantAnalysis.multiQuery"
1332+
},
13241333
{
13251334
"command": "codeQL.openReferencedFileContextExplorer",
13261335
"group": "9_qlCommands",
@@ -1397,6 +1406,10 @@
13971406
"command": "codeQL.runVariantAnalysis",
13981407
"when": "editorLangId == ql && resourceExtname == .ql"
13991408
},
1409+
{
1410+
"command": "codeQL.runVariantAnalysisContextExplorer",
1411+
"when": "false"
1412+
},
14001413
{
14011414
"command": "codeQL.runVariantAnalysisContextEditor",
14021415
"when": "false"

extensions/ql-vscode/src/common/commands.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -277,6 +277,7 @@ export type VariantAnalysisCommands = {
277277
) => Promise<void>;
278278
"codeQL.runVariantAnalysis": (uri?: Uri) => Promise<void>;
279279
"codeQL.runVariantAnalysisContextEditor": (uri?: Uri) => Promise<void>;
280+
"codeQL.runVariantAnalysisContextExplorer": ExplorerSelectionCommandFunction<Uri>;
280281
"codeQLQueries.runVariantAnalysisContextMenu": TreeViewContextSingleSelectionCommandFunction<QueryTreeViewItem>;
281282
};
282283

extensions/ql-vscode/src/variant-analysis/variant-analysis-manager.ts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ import {
8686
import type { QueryTreeViewItem } from "../queries-panel/query-tree-view-item";
8787
import { RequestError } from "@octokit/request-error";
8888
import { handleRequestError } from "./custom-errors";
89+
import { createMultiSelectionCommand } from "../common/vscode/selection-commands";
8990

9091
const maxRetryCount = 3;
9192

@@ -167,9 +168,11 @@ export class VariantAnalysisManager
167168
"codeQL.openVariantAnalysisView": this.showView.bind(this),
168169
"codeQL.runVariantAnalysis":
169170
this.runVariantAnalysisFromCommand.bind(this),
170-
// Since we are tracking extension usage through commands, this command mirrors the "codeQL.runVariantAnalysis" command
171171
"codeQL.runVariantAnalysisContextEditor":
172172
this.runVariantAnalysisFromCommand.bind(this),
173+
"codeQL.runVariantAnalysisContextExplorer": createMultiSelectionCommand(
174+
this.runVariantAnalysisFromExplorer.bind(this),
175+
),
173176
"codeQLQueries.runVariantAnalysisContextMenu":
174177
this.runVariantAnalysisFromQueriesPanel.bind(this),
175178
};
@@ -194,6 +197,13 @@ export class VariantAnalysisManager
194197
);
195198
}
196199

200+
private async runVariantAnalysisFromExplorer(fileURIs: Uri[]): Promise<void> {
201+
if (fileURIs.length !== 1) {
202+
throw new Error("Can only run a single query at a time");
203+
}
204+
return this.runVariantAnalysisFromCommand(fileURIs[0]);
205+
}
206+
197207
private async runVariantAnalysisFromQueriesPanel(
198208
queryTreeViewItem: QueryTreeViewItem,
199209
): Promise<void> {

0 commit comments

Comments
 (0)