Skip to content

Commit c43d0fa

Browse files
committed
Add language to local queries.
1 parent 552a4f6 commit c43d0fa

11 files changed

+87
-65
lines changed

extensions/ql-vscode/src/common/interface-types.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import { Method, Usage } from "../model-editor/method";
2121
import { ModeledMethod } from "../model-editor/modeled-method";
2222
import { ModelEditorViewState } from "../model-editor/shared/view-state";
2323
import { Mode } from "../model-editor/shared/mode";
24+
import { QueryLanguage } from "./query-language";
2425

2526
/**
2627
* This module contains types and code that are shared between
@@ -51,6 +52,7 @@ export const RAW_RESULTS_LIMIT = 10000;
5152
export interface DatabaseInfo {
5253
name: string;
5354
databaseUri: string;
55+
language?: QueryLanguage;
5456
}
5557

5658
/** Arbitrary query metadata */

extensions/ql-vscode/src/local-queries/local-queries.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ import { LocalQueryRun } from "./local-query-run";
4949
import { createMultiSelectionCommand } from "../common/vscode/selection-commands";
5050
import { findLanguage } from "../codeql-cli/query-language";
5151
import type { QueryTreeViewItem } from "../queries-panel/query-tree-view-item";
52+
import { tryGetQueryLanguage } from "../common/query-language";
5253

5354
interface DatabaseQuickPickItem extends QuickPickItem {
5455
databaseItem: DatabaseItem;
@@ -364,6 +365,7 @@ export class LocalQueries extends DisposableObject {
364365
const initialInfo = await createInitialQueryInfo(selectedQuery, {
365366
databaseUri: dbItem.databaseUri.toString(),
366367
name: dbItem.name,
368+
language: tryGetQueryLanguage(dbItem.language),
367369
});
368370

369371
// When cancellation is requested from the query history view, we just stop the debug session.

extensions/ql-vscode/src/query-history/store/query-history-domain-mapper.ts

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
import { assertNever } from "../../common/helpers-pure";
22
import { QueryHistoryInfo } from "../query-history-info";
33
import { mapLocalQueryInfoToDto } from "./query-history-local-query-domain-mapper";
4-
import { QueryHistoryItemDto } from "./query-history-dto";
4+
import { QueryHistoryItemDto, QueryLanguageDto } from "./query-history-dto";
55
import { mapQueryHistoryVariantAnalysisToDto } from "./query-history-variant-analysis-domain-mapper";
6+
import { QueryLanguage } from "../../common/query-language";
67

78
export function mapQueryHistoryToDto(
89
queries: QueryHistoryInfo[],
@@ -17,3 +18,28 @@ export function mapQueryHistoryToDto(
1718
}
1819
});
1920
}
21+
22+
export function mapQueryLanguageToDto(
23+
language: QueryLanguage,
24+
): QueryLanguageDto {
25+
switch (language) {
26+
case QueryLanguage.CSharp:
27+
return QueryLanguageDto.CSharp;
28+
case QueryLanguage.Cpp:
29+
return QueryLanguageDto.Cpp;
30+
case QueryLanguage.Go:
31+
return QueryLanguageDto.Go;
32+
case QueryLanguage.Java:
33+
return QueryLanguageDto.Java;
34+
case QueryLanguage.Javascript:
35+
return QueryLanguageDto.Javascript;
36+
case QueryLanguage.Python:
37+
return QueryLanguageDto.Python;
38+
case QueryLanguage.Ruby:
39+
return QueryLanguageDto.Ruby;
40+
case QueryLanguage.Swift:
41+
return QueryLanguageDto.Swift;
42+
default:
43+
assertNever(language);
44+
}
45+
}

extensions/ql-vscode/src/query-history/store/query-history-dto-mapper.ts

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
import { QueryHistoryInfo } from "../query-history-info";
2-
import { QueryHistoryItemDto } from "./query-history-dto";
2+
import { QueryHistoryItemDto, QueryLanguageDto } from "./query-history-dto";
33
import { mapQueryHistoryVariantAnalysisToDomainModel } from "./query-history-variant-analysis-dto-mapper";
44
import { mapLocalQueryItemToDomainModel } from "./query-history-local-query-dto-mapper";
5+
import { QueryLanguage } from "../../common/query-language";
6+
import { assertNever } from "../../common/helpers-pure";
57

68
export function mapQueryHistoryToDomainModel(
79
queries: QueryHistoryItemDto[],
@@ -20,3 +22,28 @@ export function mapQueryHistoryToDomainModel(
2022
);
2123
});
2224
}
25+
26+
export function mapQueryLanguageToDomainModel(
27+
language: QueryLanguageDto,
28+
): QueryLanguage {
29+
switch (language) {
30+
case QueryLanguageDto.CSharp:
31+
return QueryLanguage.CSharp;
32+
case QueryLanguageDto.Cpp:
33+
return QueryLanguage.Cpp;
34+
case QueryLanguageDto.Go:
35+
return QueryLanguage.Go;
36+
case QueryLanguageDto.Java:
37+
return QueryLanguage.Java;
38+
case QueryLanguageDto.Javascript:
39+
return QueryLanguage.Javascript;
40+
case QueryLanguageDto.Python:
41+
return QueryLanguage.Python;
42+
case QueryLanguageDto.Ruby:
43+
return QueryLanguage.Ruby;
44+
case QueryLanguageDto.Swift:
45+
return QueryLanguage.Swift;
46+
default:
47+
assertNever(language);
48+
}
49+
}

extensions/ql-vscode/src/query-history/store/query-history-dto.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,3 +12,14 @@ export interface QueryHistoryDto {
1212
export type QueryHistoryItemDto =
1313
| QueryHistoryLocalQueryDto
1414
| QueryHistoryVariantAnalysisDto;
15+
16+
export enum QueryLanguageDto {
17+
CSharp = "csharp",
18+
Cpp = "cpp",
19+
Go = "go",
20+
Java = "java",
21+
Javascript = "javascript",
22+
Python = "python",
23+
Ruby = "ruby",
24+
Swift = "swift",
25+
}

extensions/ql-vscode/src/query-history/store/query-history-local-query-domain-mapper.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import {
1717
SortDirection,
1818
SortedResultSetInfo,
1919
} from "../../common/interface-types";
20+
import { mapQueryLanguageToDto } from "./query-history-domain-mapper";
2021

2122
export function mapLocalQueryInfoToDto(
2223
query: LocalQueryInfo,
@@ -101,6 +102,10 @@ function mapInitialQueryInfoToDto(
101102
databaseInfo: {
102103
databaseUri: localQueryInitialInfo.databaseInfo.databaseUri,
103104
name: localQueryInitialInfo.databaseInfo.name,
105+
language:
106+
localQueryInitialInfo.databaseInfo.language === undefined
107+
? undefined
108+
: mapQueryLanguageToDto(localQueryInitialInfo.databaseInfo.language),
104109
},
105110
start: localQueryInitialInfo.start,
106111
id: localQueryInitialInfo.id,

extensions/ql-vscode/src/query-history/store/query-history-local-query-dto-mapper.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import {
2020
SortDirection,
2121
SortedResultSetInfo,
2222
} from "../../common/interface-types";
23+
import { mapQueryLanguageToDomainModel } from "./query-history-dto-mapper";
2324

2425
export function mapLocalQueryItemToDomainModel(
2526
localQuery: QueryHistoryLocalQueryDto,
@@ -82,6 +83,10 @@ function mapInitialQueryInfoToDomainModel(
8283
databaseInfo: {
8384
databaseUri: initialInfo.databaseInfo.databaseUri,
8485
name: initialInfo.databaseInfo.name,
86+
language:
87+
initialInfo.databaseInfo.language === undefined
88+
? undefined
89+
: mapQueryLanguageToDomainModel(initialInfo.databaseInfo.language),
8590
},
8691
start: new Date(initialInfo.start),
8792
id: initialInfo.id,

extensions/ql-vscode/src/query-history/store/query-history-local-query-dto.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
// Contains models and consts for the data we want to store in the query history store.
22
// Changes to these models should be done carefully and account for backwards compatibility of data.
33

4+
import { QueryLanguageDto } from "./query-history-dto";
5+
46
export interface QueryHistoryLocalQueryDto {
57
initialInfo: InitialQueryInfoDto;
68
t: "local";
@@ -27,6 +29,7 @@ export interface InitialQueryInfoDto {
2729
interface DatabaseInfoDto {
2830
name: string;
2931
databaseUri: string;
32+
language?: QueryLanguageDto;
3033
}
3134

3235
interface PositionDto {

extensions/ql-vscode/src/query-history/store/query-history-variant-analysis-domain-mapper.ts

Lines changed: 1 addition & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import {
22
QueryHistoryVariantAnalysisDto,
3-
QueryLanguageDto,
43
QueryStatusDto,
54
VariantAnalysisDto,
65
VariantAnalysisFailureReasonDto,
@@ -22,9 +21,9 @@ import {
2221
VariantAnalysisStatus,
2322
} from "../../variant-analysis/shared/variant-analysis";
2423
import { assertNever } from "../../common/helpers-pure";
25-
import { QueryLanguage } from "../../common/query-language";
2624
import { QueryStatus } from "../query-status";
2725
import { VariantAnalysisHistoryItem } from "../variant-analysis-history-item";
26+
import { mapQueryLanguageToDto } from "./query-history-domain-mapper";
2827

2928
export function mapQueryHistoryVariantAnalysisToDto(
3029
item: VariantAnalysisHistoryItem,
@@ -199,29 +198,6 @@ function mapVariantAnalysisStatusToDto(
199198
}
200199
}
201200

202-
function mapQueryLanguageToDto(language: QueryLanguage): QueryLanguageDto {
203-
switch (language) {
204-
case QueryLanguage.CSharp:
205-
return QueryLanguageDto.CSharp;
206-
case QueryLanguage.Cpp:
207-
return QueryLanguageDto.Cpp;
208-
case QueryLanguage.Go:
209-
return QueryLanguageDto.Go;
210-
case QueryLanguage.Java:
211-
return QueryLanguageDto.Java;
212-
case QueryLanguage.Javascript:
213-
return QueryLanguageDto.Javascript;
214-
case QueryLanguage.Python:
215-
return QueryLanguageDto.Python;
216-
case QueryLanguage.Ruby:
217-
return QueryLanguageDto.Ruby;
218-
case QueryLanguage.Swift:
219-
return QueryLanguageDto.Swift;
220-
default:
221-
assertNever(language);
222-
}
223-
}
224-
225201
function mapQueryStatusToDto(status: QueryStatus): QueryStatusDto {
226202
switch (status) {
227203
case QueryStatus.InProgress:

extensions/ql-vscode/src/query-history/store/query-history-variant-analysis-dto-mapper.ts

Lines changed: 1 addition & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import {
22
QueryHistoryVariantAnalysisDto,
3-
QueryLanguageDto,
43
QueryStatusDto,
54
VariantAnalysisDto,
65
VariantAnalysisFailureReasonDto,
@@ -22,9 +21,9 @@ import {
2221
VariantAnalysisStatus,
2322
} from "../../variant-analysis/shared/variant-analysis";
2423
import { assertNever } from "../../common/helpers-pure";
25-
import { QueryLanguage } from "../../common/query-language";
2624
import { QueryStatus } from "../query-status";
2725
import { VariantAnalysisHistoryItem } from "../variant-analysis-history-item";
26+
import { mapQueryLanguageToDomainModel } from "./query-history-dto-mapper";
2827

2928
export function mapQueryHistoryVariantAnalysisToDomainModel(
3029
item: QueryHistoryVariantAnalysisDto,
@@ -215,31 +214,6 @@ function mapVariantAnalysisStatusToDomainModel(
215214
}
216215
}
217216

218-
function mapQueryLanguageToDomainModel(
219-
language: QueryLanguageDto,
220-
): QueryLanguage {
221-
switch (language) {
222-
case QueryLanguageDto.CSharp:
223-
return QueryLanguage.CSharp;
224-
case QueryLanguageDto.Cpp:
225-
return QueryLanguage.Cpp;
226-
case QueryLanguageDto.Go:
227-
return QueryLanguage.Go;
228-
case QueryLanguageDto.Java:
229-
return QueryLanguage.Java;
230-
case QueryLanguageDto.Javascript:
231-
return QueryLanguage.Javascript;
232-
case QueryLanguageDto.Python:
233-
return QueryLanguage.Python;
234-
case QueryLanguageDto.Ruby:
235-
return QueryLanguage.Ruby;
236-
case QueryLanguageDto.Swift:
237-
return QueryLanguage.Swift;
238-
default:
239-
assertNever(language);
240-
}
241-
}
242-
243217
function mapQueryStatusToDomainModel(status: QueryStatusDto): QueryStatus {
244218
switch (status) {
245219
case QueryStatusDto.InProgress:

0 commit comments

Comments
 (0)