Skip to content

Commit dacaf4e

Browse files
authored
Update title in Data extensions editor tab (#2625)
1 parent 778f839 commit dacaf4e

8 files changed

Lines changed: 52 additions & 5 deletions

File tree

extensions/ql-vscode/src/common/query-language.ts

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,29 @@ export enum QueryLanguage {
99
Swift = "swift",
1010
}
1111

12+
export function getLanguageDisplayName(language: string): string {
13+
switch (language) {
14+
case QueryLanguage.CSharp:
15+
return "C#";
16+
case QueryLanguage.Cpp:
17+
return "C / C++";
18+
case QueryLanguage.Go:
19+
return "Go";
20+
case QueryLanguage.Java:
21+
return "Java";
22+
case QueryLanguage.Javascript:
23+
return "JavaScript";
24+
case QueryLanguage.Python:
25+
return "Python";
26+
case QueryLanguage.Ruby:
27+
return "Ruby";
28+
case QueryLanguage.Swift:
29+
return "Swift";
30+
default:
31+
return language;
32+
}
33+
}
34+
1235
export const PACKS_BY_QUERY_LANGUAGE = {
1336
[QueryLanguage.Cpp]: ["codeql/cpp-queries"],
1437
[QueryLanguage.CSharp]: [

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ import { Mode } from "./shared/mode";
4949
import { loadModeledMethods, saveModeledMethods } from "./modeled-method-fs";
5050
import { join } from "path";
5151
import { pickExtensionPack } from "./extension-pack-picker";
52+
import { getLanguageDisplayName } from "../common/query-language";
5253

5354
export class DataExtensionsEditorView extends AbstractWebview<
5455
ToDataExtensionsEditorMessage,
@@ -78,7 +79,9 @@ export class DataExtensionsEditorView extends AbstractWebview<
7879
protected async getPanelConfig(): Promise<WebviewPanelConfig> {
7980
return {
8081
viewId: "data-extensions-editor",
81-
title: "Data Extensions Editor",
82+
title: `Modeling ${getLanguageDisplayName(
83+
this.extensionPack.language,
84+
)} (${this.extensionPack.name})`,
8285
viewColumn: ViewColumn.Active,
8386
preserveFocus: true,
8487
view: "data-extensions-editor",

extensions/ql-vscode/src/data-extensions-editor/extension-pack-picker.ts

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ export async function pickExtensionPack(
8888

8989
let extensionPack: ExtensionPack;
9090
try {
91-
extensionPack = await readExtensionPack(path);
91+
extensionPack = await readExtensionPack(path, databaseItem.language);
9292
} catch (e: unknown) {
9393
void showAndLogErrorMessage(
9494
logger,
@@ -253,7 +253,10 @@ async function autoCreateExtensionPack(
253253
if (existingExtensionPackPaths?.length === 1) {
254254
let extensionPack: ExtensionPack;
255255
try {
256-
extensionPack = await readExtensionPack(existingExtensionPackPaths[0]);
256+
extensionPack = await readExtensionPack(
257+
existingExtensionPackPaths[0],
258+
language,
259+
);
257260
} catch (e: unknown) {
258261
void showAndLogErrorMessage(
259262
logger,
@@ -317,6 +320,7 @@ async function writeExtensionPack(
317320
yamlPath: packYamlPath,
318321
name: formatPackName(packName),
319322
version: "0.0.0",
323+
language,
320324
extensionTargets: {
321325
[`codeql/${language}-all`]: "*",
322326
},
@@ -337,7 +341,10 @@ async function writeExtensionPack(
337341
return extensionPack;
338342
}
339343

340-
async function readExtensionPack(path: string): Promise<ExtensionPack> {
344+
async function readExtensionPack(
345+
path: string,
346+
language: string,
347+
): Promise<ExtensionPack> {
341348
const qlpackPath = await getQlPackPath(path);
342349
if (!qlpackPath) {
343350
throw new Error(
@@ -374,6 +381,7 @@ async function readExtensionPack(path: string): Promise<ExtensionPack> {
374381
yamlPath: qlpackPath,
375382
name: qlpack.name,
376383
version: qlpack.version,
384+
language,
377385
extensionTargets: qlpack.extensionTargets,
378386
dataExtensions,
379387
};

extensions/ql-vscode/src/data-extensions-editor/shared/extension-pack.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ export interface ExtensionPack {
44

55
name: string;
66
version: string;
7+
language: string;
78

89
extensionTargets: Record<string, string>;
910
dataExtensions: string[];

extensions/ql-vscode/src/stories/data-extensions-editor/DataExtensionsEditor.stories.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ DataExtensionsEditor.args = {
2424
"/home/user/vscode-codeql-starter/codeql-custom-queries-java/sql2o/codeql-pack.yml",
2525
name: "codeql/sql2o-models",
2626
version: "0.0.0",
27+
language: "java",
2728
extensionTargets: {},
2829
dataExtensions: [],
2930
},

extensions/ql-vscode/src/view/data-extensions-editor/DataExtensionsEditor.tsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import { DataExtensionEditorViewState } from "../../data-extensions-editor/share
1717
import { ModeledMethodsList } from "./ModeledMethodsList";
1818
import { percentFormatter } from "./formatters";
1919
import { Mode } from "../../data-extensions-editor/shared/mode";
20+
import { getLanguageDisplayName } from "../../common/query-language";
2021

2122
const LoadingContainer = styled.div`
2223
text-align: center;
@@ -266,7 +267,9 @@ export function DataExtensionsEditor({
266267

267268
{externalApiUsages.length > 0 && (
268269
<>
269-
<ViewTitle>Data extensions editor</ViewTitle>
270+
<ViewTitle>
271+
{getLanguageDisplayName(viewState.extensionPack.language)}
272+
</ViewTitle>
270273
<DetailsContainer>
271274
<LinkIconButton onClick={onOpenExtensionPackClick}>
272275
<span slot="start" className="codicon codicon-package"></span>

extensions/ql-vscode/test/vscode-tests/cli-integration/data-extensions-editor/modeled-method-fs.test.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@ describe("modeled-method-fs", () => {
112112
yamlPath: path,
113113
name: "dummy/pack",
114114
version: "0.0.1",
115+
language: "java",
115116
extensionTargets: {},
116117
dataExtensions: [],
117118
};

extensions/ql-vscode/test/vscode-tests/no-workspace/data-extensions-editor/extension-pack-picker.test.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -268,6 +268,7 @@ describe("pickExtensionPack", () => {
268268
yamlPath: join(newPackDir, "codeql-pack.yml"),
269269
name: "github/vscode-codeql-java",
270270
version: "0.0.0",
271+
language: "java",
271272
extensionTargets: {
272273
"codeql/java-all": "*",
273274
},
@@ -339,6 +340,7 @@ describe("pickExtensionPack", () => {
339340
yamlPath: join(newPackDir, "codeql-pack.yml"),
340341
name: "github/vscode-codeql-java",
341342
version: "0.0.0",
343+
language: "java",
342344
extensionTargets: {
343345
"codeql/java-all": "*",
344346
},
@@ -399,6 +401,7 @@ describe("pickExtensionPack", () => {
399401
yamlPath: join(newPackDir, "codeql-pack.yml"),
400402
name: "pack/new-extension-pack",
401403
version: "0.0.0",
404+
language: "java",
402405
extensionTargets: {
403406
"codeql/java-all": "*",
404407
},
@@ -466,6 +469,7 @@ describe("pickExtensionPack", () => {
466469
yamlPath: join(newPackDir, "codeql-pack.yml"),
467470
name: "pack/new-extension-pack",
468471
version: "0.0.0",
472+
language: "csharp",
469473
extensionTargets: {
470474
"codeql/csharp-all": "*",
471475
},
@@ -815,6 +819,7 @@ describe("pickExtensionPack", () => {
815819
yamlPath: qlpackPath,
816820
name: "new-extension-pack",
817821
version: "0.0.0",
822+
language: "java",
818823
extensionTargets: {
819824
"codeql/java-all": "*",
820825
},
@@ -838,6 +843,7 @@ describe("pickExtensionPack", () => {
838843
"csharp-extension-pack",
839844
{
840845
version: "0.5.3",
846+
language: "csharp",
841847
extensionTargets: {
842848
"codeql/csharp-all": "*",
843849
},
@@ -906,6 +912,7 @@ async function createMockExtensionPack(
906912
yamlPath: join(path, "codeql-pack.yml"),
907913
name,
908914
version: "0.0.0",
915+
language: "java",
909916
extensionTargets: {
910917
"codeql/java-all": "*",
911918
},

0 commit comments

Comments
 (0)