Skip to content

Commit 0166f9a

Browse files
Merge branch 'main' into robertbrignull/variant_analysis_commands
2 parents 5af0ebc + 56c83eb commit 0166f9a

File tree

16 files changed

+1015
-866
lines changed

16 files changed

+1015
-866
lines changed

extensions/ql-vscode/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
## [UNRELEASED]
44

55
- Show data flow paths of a variant analysis in a new tab
6+
- Show labels of entities in exported CSV results [#2170](https://github.com/github/vscode-codeql/pull/2170)
67

78
## 1.8.0 - 9 March 2023
89

extensions/ql-vscode/src/commandRunner.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ export type ProgressTaskWithArgs<R> = (
8989
* @param args arguments passed to this task passed on from
9090
* `commands.registerCommand`.
9191
*/
92-
type NoProgressTask = (...args: any[]) => Promise<any>;
92+
export type NoProgressTask = (...args: any[]) => Promise<any>;
9393

9494
/**
9595
* This mediates between the kind of progress callbacks we want to

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

Lines changed: 62 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import type { CommandManager } from "../packages/commands";
2-
import type { Uri } from "vscode";
2+
import type { Uri, Range } from "vscode";
33
import type { DbTreeViewItem } from "../databases/ui/db-tree-view-item";
4+
import type { DatabaseItem } from "../local-databases";
45
import type { QueryHistoryInfo } from "../query-history/query-history-info";
56
import type { RepositoriesFilterSortStateWithIds } from "../pure/variant-analysis-filter-sort";
67
import type {
@@ -34,6 +35,21 @@ export type BaseCommands = {
3435
"codeQL.openDocumentation": () => Promise<void>;
3536
};
3637

38+
// Commands used for running local queries
39+
export type LocalQueryCommands = {
40+
"codeQL.runQuery": (uri?: Uri) => Promise<void>;
41+
"codeQL.runQueryContextEditor": (uri?: Uri) => Promise<void>;
42+
"codeQL.runQueryOnMultipleDatabases": (uri?: Uri) => Promise<void>;
43+
"codeQL.runQueryOnMultipleDatabasesContextEditor": (
44+
uri?: Uri,
45+
) => Promise<void>;
46+
"codeQL.runQueries": SelectionCommandFunction<Uri>;
47+
"codeQL.quickEval": (uri: Uri) => Promise<void>;
48+
"codeQL.quickEvalContextEditor": (uri: Uri) => Promise<void>;
49+
"codeQL.codeLensQuickEval": (uri: Uri, range: Range) => Promise<void>;
50+
"codeQL.quickQuery": () => Promise<void>;
51+
};
52+
3753
// Commands used for the query history panel
3854
export type QueryHistoryCommands = {
3955
// Commands in the "navigation" group
@@ -66,6 +82,46 @@ export type QueryHistoryCommands = {
6682
"codeQLQueryHistory.copyRepoList": SelectionCommandFunction<QueryHistoryInfo>;
6783
};
6884

85+
// Commands used for the local databases panel
86+
export type LocalDatabasesCommands = {
87+
// Command palette commands
88+
"codeQL.chooseDatabaseFolder": () => Promise<void>;
89+
"codeQL.chooseDatabaseArchive": () => Promise<void>;
90+
"codeQL.chooseDatabaseInternet": () => Promise<void>;
91+
"codeQL.chooseDatabaseGithub": () => Promise<void>;
92+
"codeQL.upgradeCurrentDatabase": () => Promise<void>;
93+
"codeQL.clearCache": () => Promise<void>;
94+
95+
// Explorer context menu
96+
"codeQL.setCurrentDatabase": (uri: Uri) => Promise<void>;
97+
98+
// Database panel view title commands
99+
"codeQLDatabases.chooseDatabaseFolder": () => Promise<void>;
100+
"codeQLDatabases.chooseDatabaseArchive": () => Promise<void>;
101+
"codeQLDatabases.chooseDatabaseInternet": () => Promise<void>;
102+
"codeQLDatabases.chooseDatabaseGithub": () => Promise<void>;
103+
"codeQLDatabases.sortByName": () => Promise<void>;
104+
"codeQLDatabases.sortByDateAdded": () => Promise<void>;
105+
106+
// Database panel context menu
107+
"codeQLDatabases.setCurrentDatabase": (
108+
databaseItem: DatabaseItem,
109+
) => Promise<void>;
110+
111+
// Database panel selection commands
112+
"codeQLDatabases.removeDatabase": SelectionCommandFunction<DatabaseItem>;
113+
"codeQLDatabases.upgradeDatabase": SelectionCommandFunction<DatabaseItem>;
114+
"codeQLDatabases.renameDatabase": SelectionCommandFunction<DatabaseItem>;
115+
"codeQLDatabases.openDatabaseFolder": SelectionCommandFunction<DatabaseItem>;
116+
"codeQLDatabases.addDatabaseSource": SelectionCommandFunction<DatabaseItem>;
117+
118+
// Codespace template commands
119+
"codeQL.setDefaultTourDatabase": () => Promise<void>;
120+
121+
// Internal commands
122+
"codeQLDatabases.removeOrphanedDatabases": () => Promise<void>;
123+
};
124+
69125
// Commands tied to variant analysis
70126
export type VariantAnalysisCommands = {
71127
"codeQL.autoDownloadVariantAnalysisResult": (
@@ -108,7 +164,12 @@ export type DatabasePanelCommands = {
108164

109165
export type AllCommands = BaseCommands &
110166
QueryHistoryCommands &
167+
LocalDatabasesCommands &
111168
VariantAnalysisCommands &
112169
DatabasePanelCommands;
113170

114171
export type AppCommandManager = CommandManager<AllCommands>;
172+
173+
// Separate command manager because it uses a different logger
174+
export type QueryServerCommands = LocalQueryCommands;
175+
export type QueryServerCommandManager = CommandManager<QueryServerCommands>;

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

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,18 @@
11
import { commands } from "vscode";
2-
import { commandRunner } from "../../commandRunner";
2+
import { commandRunner, NoProgressTask } from "../../commandRunner";
33
import { CommandFunction, CommandManager } from "../../packages/commands";
4+
import { OutputChannelLogger } from "../logging";
45

56
/**
67
* Create a command manager for VSCode, wrapping the commandRunner
78
* and vscode.executeCommand.
89
*/
910
export function createVSCodeCommandManager<
1011
Commands extends Record<string, CommandFunction>,
11-
>(): CommandManager<Commands> {
12-
return new CommandManager(commandRunner, wrapExecuteCommand);
12+
>(outputLogger?: OutputChannelLogger): CommandManager<Commands> {
13+
return new CommandManager((commandId, task: NoProgressTask) => {
14+
return commandRunner(commandId, task, outputLogger);
15+
}, wrapExecuteCommand);
1316
}
1417

1518
/**

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

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,23 @@ import { VSCodeCredentials } from "../../authentication";
33
import { Disposable } from "../../pure/disposable-object";
44
import { App, AppMode } from "../app";
55
import { AppEventEmitter } from "../events";
6-
import { extLogger, Logger } from "../logging";
6+
import { extLogger, Logger, queryServerLogger } from "../logging";
77
import { Memento } from "../memento";
88
import { VSCodeAppEventEmitter } from "./events";
9-
import { AppCommandManager } from "../commands";
9+
import { AppCommandManager, QueryServerCommandManager } from "../commands";
1010
import { createVSCodeCommandManager } from "./commands";
1111

1212
export class ExtensionApp implements App {
1313
public readonly credentials: VSCodeCredentials;
1414
public readonly commands: AppCommandManager;
15+
public readonly queryServerCommands: QueryServerCommandManager;
1516

1617
public constructor(
1718
public readonly extensionContext: vscode.ExtensionContext,
1819
) {
1920
this.credentials = new VSCodeCredentials();
2021
this.commands = createVSCodeCommandManager();
22+
this.queryServerCommands = createVSCodeCommandManager(queryServerLogger);
2123
extensionContext.subscriptions.push(this.commands);
2224
}
2325

0 commit comments

Comments
 (0)