Skip to content

Commit a157246

Browse files
Merge pull request #3239 from github/robertbrignull/multi-query-commands
Add stubs of commands for multi-query support
2 parents 5459028 + 1a7981a commit a157246

3 files changed

Lines changed: 40 additions & 1 deletion

File tree

extensions/ql-vscode/package.json

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -545,6 +545,14 @@
545545
"command": "codeQL.runVariantAnalysisContextEditor",
546546
"title": "CodeQL: Run Variant Analysis"
547547
},
548+
{
549+
"command": "codeQL.runVariantAnalysisContextExplorer",
550+
"title": "CodeQL: Run Variant Analysis"
551+
},
552+
{
553+
"command": "codeQL.runVariantAnalysisPublishedPack",
554+
"title": "CodeQL: Run Variant Analysis against published pack"
555+
},
548556
{
549557
"command": "codeQL.exportSelectedVariantAnalysisResults",
550558
"title": "CodeQL: Export Variant Analysis Results"
@@ -1321,6 +1329,11 @@
13211329
"group": "9_qlCommands",
13221330
"when": "resourceScheme != codeql-zip-archive"
13231331
},
1332+
{
1333+
"command": "codeQL.runVariantAnalysisContextExplorer",
1334+
"group": "9_qlCommands",
1335+
"when": "resourceExtname == .ql && config.codeQL.canary && config.codeQL.variantAnalysis.multiQuery"
1336+
},
13241337
{
13251338
"command": "codeQL.openReferencedFileContextExplorer",
13261339
"group": "9_qlCommands",
@@ -1397,6 +1410,14 @@
13971410
"command": "codeQL.runVariantAnalysis",
13981411
"when": "editorLangId == ql && resourceExtname == .ql"
13991412
},
1413+
{
1414+
"command": "codeQL.runVariantAnalysisContextExplorer",
1415+
"when": "false"
1416+
},
1417+
{
1418+
"command": "codeQL.runVariantAnalysisPublishedPack",
1419+
"when": "config.codeQL.canary && config.codeQL.variantAnalysis.multiQuery"
1420+
},
14001421
{
14011422
"command": "codeQL.runVariantAnalysisContextEditor",
14021423
"when": "false"

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -277,7 +277,9 @@ 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>;
282+
"codeQL.runVariantAnalysisPublishedPack": () => Promise<void>;
281283
};
282284

283285
export type DatabasePanelCommands = {

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

Lines changed: 17 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,11 +168,15 @@ 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),
178+
"codeQL.runVariantAnalysisPublishedPack":
179+
this.runVariantAnalysisFromPublishedPack.bind(this),
175180
};
176181
}
177182

@@ -194,6 +199,13 @@ export class VariantAnalysisManager
194199
);
195200
}
196201

202+
private async runVariantAnalysisFromExplorer(fileURIs: Uri[]): Promise<void> {
203+
if (fileURIs.length !== 1) {
204+
throw new Error("Can only run a single query at a time");
205+
}
206+
return this.runVariantAnalysisFromCommand(fileURIs[0]);
207+
}
208+
197209
private async runVariantAnalysisFromQueriesPanel(
198210
queryTreeViewItem: QueryTreeViewItem,
199211
): Promise<void> {
@@ -204,6 +216,10 @@ export class VariantAnalysisManager
204216
}
205217
}
206218

219+
private async runVariantAnalysisFromPublishedPack(): Promise<void> {
220+
throw new Error("Command not yet implemented");
221+
}
222+
207223
public async runVariantAnalysis(
208224
uri: Uri | undefined,
209225
progress: ProgressCallback,

0 commit comments

Comments
 (0)