Skip to content

Commit 18f2d79

Browse files
authored
Merge branch 'main' into aeisenberg/cli-version-telemetry
2 parents 3826e35 + cc241d0 commit 18f2d79

File tree

53 files changed

+4266
-1044
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

53 files changed

+4266
-1044
lines changed

extensions/ql-vscode/package-lock.json

Lines changed: 1439 additions & 253 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

extensions/ql-vscode/package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1461,6 +1461,7 @@
14611461
"fs-extra": "^11.1.1",
14621462
"immutable": "^4.0.0",
14631463
"js-yaml": "^4.1.0",
1464+
"minimatch": "^9.0.0",
14641465
"minimist": "~1.2.6",
14651466
"msw": "^1.2.0",
14661467
"nanoid": "^3.2.0",
@@ -1531,7 +1532,7 @@
15311532
"@types/through2": "^2.0.36",
15321533
"@types/tmp": "^0.1.0",
15331534
"@types/unzipper": "~0.10.1",
1534-
"@types/vscode": "^1.59.0",
1535+
"@types/vscode": "^1.67.0",
15351536
"@types/webpack": "^5.28.0",
15361537
"@types/webpack-env": "^1.18.0",
15371538
"@types/xml2js": "~0.4.4",
@@ -1555,7 +1556,7 @@
15551556
"eslint-plugin-react-hooks": "^4.6.0",
15561557
"eslint-plugin-storybook": "^0.6.4",
15571558
"file-loader": "^6.2.0",
1558-
"glob": "^9.3.2",
1559+
"glob": "^10.0.0",
15591560
"gulp": "^4.0.2",
15601561
"gulp-esbuild": "^0.10.5",
15611562
"gulp-replace": "^1.1.3",

extensions/ql-vscode/src/data-extensions-editor/data-extensions-editor-module.ts

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ import { showAndLogErrorMessage } from "../helpers";
1111
import { withProgress } from "../progress";
1212
import { pickExtensionPackModelFile } from "./extension-pack-picker";
1313

14+
const SUPPORTED_LANGUAGES: string[] = ["java", "csharp"];
15+
1416
export class DataExtensionsEditorModule {
1517
private readonly queryStorageDir: string;
1618

@@ -51,15 +53,22 @@ export class DataExtensionsEditorModule {
5153

5254
public getCommands(): DataExtensionsEditorCommands {
5355
return {
54-
"codeQL.openDataExtensionsEditor": async () =>
55-
withProgress(
56-
async (progress) => {
57-
const db = this.databaseManager.currentDatabaseItem;
58-
if (!db) {
59-
void showAndLogErrorMessage("No database selected");
60-
return;
61-
}
56+
"codeQL.openDataExtensionsEditor": async () => {
57+
const db = this.databaseManager.currentDatabaseItem;
58+
if (!db) {
59+
void showAndLogErrorMessage("No database selected");
60+
return;
61+
}
6262

63+
if (!SUPPORTED_LANGUAGES.includes(db.language)) {
64+
void showAndLogErrorMessage(
65+
`The data extensions editor is not supported for ${db.language} databases.`,
66+
);
67+
return;
68+
}
69+
70+
return withProgress(
71+
async (progress, token) => {
6372
if (!(await this.cliServer.cliConstraints.supportsQlpacksKind())) {
6473
void showAndLogErrorMessage(
6574
`This feature requires CodeQL CLI version ${CliVersionConstraint.CLI_VERSION_WITH_QLPACKS_KIND.format()} or later.`,
@@ -69,7 +78,9 @@ export class DataExtensionsEditorModule {
6978

7079
const modelFile = await pickExtensionPackModelFile(
7180
this.cliServer,
81+
db,
7282
progress,
83+
token,
7384
);
7485
if (!modelFile) {
7586
return;
@@ -90,7 +101,8 @@ export class DataExtensionsEditorModule {
90101
{
91102
title: "Opening Data Extensions Editor",
92103
},
93-
),
104+
);
105+
},
94106
};
95107
}
96108

extensions/ql-vscode/src/data-extensions-editor/data-extensions-editor-view.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import {
1818
showAndLogExceptionWithTelemetry,
1919
} from "../helpers";
2020
import { extLogger } from "../common";
21-
import { readFile, writeFile } from "fs-extra";
21+
import { outputFile, readFile } from "fs-extra";
2222
import { load as loadYaml } from "js-yaml";
2323
import { DatabaseItem, DatabaseManager } from "../local-databases";
2424
import { CodeQLCliServer } from "../cli";
@@ -148,9 +148,13 @@ export class DataExtensionsEditorView extends AbstractWebview<
148148
externalApiUsages: ExternalApiUsage[],
149149
modeledMethods: Record<string, ModeledMethod>,
150150
): Promise<void> {
151-
const yaml = createDataExtensionYaml(externalApiUsages, modeledMethods);
151+
const yaml = createDataExtensionYaml(
152+
this.databaseItem.language,
153+
externalApiUsages,
154+
modeledMethods,
155+
);
152156

153-
await writeFile(this.modelFilename, yaml);
157+
await outputFile(this.modelFilename, yaml);
154158

155159
void extLogger.log(`Saved data extension YAML to ${this.modelFilename}`);
156160
}
@@ -194,7 +198,6 @@ export class DataExtensionsEditorView extends AbstractWebview<
194198
queryRunner: this.queryRunner,
195199
databaseItem: this.databaseItem,
196200
queryStorageDir: this.queryStorageDir,
197-
logger: extLogger,
198201
progress: (progressUpdate: ProgressUpdate) => {
199202
void this.showProgress(progressUpdate, 1500);
200203
},

0 commit comments

Comments
 (0)