Skip to content

Commit 37f1c62

Browse files
Merge branch 'main' into robertbrignull/data_narrow
2 parents 84492d2 + c1107d7 commit 37f1c62

File tree

8 files changed

+60
-3
lines changed

8 files changed

+60
-3
lines changed

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

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,8 @@ export function DataExtensionsEditor({
9191
new Set(),
9292
);
9393

94+
const [hideModeledApis, setHideModeledApis] = useState(true);
95+
9496
const [modeledMethods, setModeledMethods] = useState<
9597
Record<string, ModeledMethod>
9698
>(initialModeledMethods);
@@ -252,6 +254,10 @@ export function DataExtensionsEditor({
252254
});
253255
}, [viewState?.mode]);
254256

257+
const onHideModeledApis = useCallback(() => {
258+
setHideModeledApis((oldHideModeledApis) => !oldHideModeledApis);
259+
}, []);
260+
255261
if (viewState === undefined || externalApiUsages.length === 0) {
256262
return <LoadingContainer>Loading...</LoadingContainer>;
257263
}
@@ -292,7 +298,12 @@ export function DataExtensionsEditor({
292298
</HeaderColumn>
293299
<HeaderSpacer />
294300
<HeaderColumn>
295-
<VSCodeCheckbox>Hide modeled APIs</VSCodeCheckbox>
301+
<VSCodeCheckbox
302+
checked={hideModeledApis}
303+
onChange={onHideModeledApis}
304+
>
305+
Hide modeled APIs
306+
</VSCodeCheckbox>
296307
</HeaderColumn>
297308
</HeaderContainer>
298309

@@ -320,6 +331,7 @@ export function DataExtensionsEditor({
320331
modeledMethods={modeledMethods}
321332
modifiedSignatures={modifiedSignatures}
322333
viewState={viewState}
334+
hideModeledApis={hideModeledApis}
323335
onChange={onChange}
324336
onSaveModelClick={onSaveModelClick}
325337
onGenerateFromLlmClick={onGenerateFromLlmClick}

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ type Props = {
7373
modeledMethods: Record<string, ModeledMethod>;
7474
modifiedSignatures: Set<string>;
7575
viewState: DataExtensionEditorViewState;
76+
hideModeledApis: boolean;
7677
onChange: (
7778
modelName: string,
7879
externalApiUsage: ExternalApiUsage,
@@ -97,6 +98,7 @@ export const LibraryRow = ({
9798
modeledMethods,
9899
modifiedSignatures,
99100
viewState,
101+
hideModeledApis,
100102
onChange,
101103
onSaveModelClick,
102104
onGenerateFromLlmClick,
@@ -208,6 +210,7 @@ export const LibraryRow = ({
208210
modeledMethods={modeledMethods}
209211
modifiedSignatures={modifiedSignatures}
210212
mode={viewState.mode}
213+
hideModeledApis={hideModeledApis}
211214
onChange={onChangeWithModelName}
212215
/>
213216
<SectionDivider />

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

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,14 +56,16 @@ type Props = {
5656
modeledMethod: ModeledMethod | undefined;
5757
methodIsUnsaved: boolean;
5858
mode: Mode;
59+
hideModeledApis: boolean;
5960
onChange: (
6061
externalApiUsage: ExternalApiUsage,
6162
modeledMethod: ModeledMethod,
6263
) => void;
6364
};
6465

6566
export const MethodRow = (props: Props) => {
66-
const { externalApiUsage, modeledMethod, methodIsUnsaved } = props;
67+
const { externalApiUsage, modeledMethod, methodIsUnsaved, hideModeledApis } =
68+
props;
6769

6870
const methodCanBeModeled =
6971
!externalApiUsage.supported ||
@@ -72,6 +74,8 @@ export const MethodRow = (props: Props) => {
7274

7375
if (methodCanBeModeled) {
7476
return <ModelableMethodRow {...props} />;
77+
} else if (hideModeledApis) {
78+
return null;
7579
} else {
7680
return <UnmodelableMethodRow {...props} />;
7781
}

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ type Props = {
1616
modeledMethods: Record<string, ModeledMethod>;
1717
modifiedSignatures: Set<string>;
1818
mode: Mode;
19+
hideModeledApis: boolean;
1920
onChange: (
2021
externalApiUsage: ExternalApiUsage,
2122
modeledMethod: ModeledMethod,
@@ -27,6 +28,7 @@ export const ModeledMethodDataGrid = ({
2728
modeledMethods,
2829
modifiedSignatures,
2930
mode,
31+
hideModeledApis,
3032
onChange,
3133
}: Props) => {
3234
const sortedExternalApiUsages = useMemo(
@@ -60,6 +62,7 @@ export const ModeledMethodDataGrid = ({
6062
modeledMethod={modeledMethods[externalApiUsage.signature]}
6163
methodIsUnsaved={modifiedSignatures.has(externalApiUsage.signature)}
6264
mode={mode}
65+
hideModeledApis={hideModeledApis}
6366
onChange={onChange}
6467
/>
6568
))}

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ type Props = {
1515
modeledMethods: Record<string, ModeledMethod>;
1616
modifiedSignatures: Set<string>;
1717
viewState: DataExtensionEditorViewState;
18+
hideModeledApis: boolean;
1819
onChange: (
1920
modelName: string,
2021
externalApiUsage: ExternalApiUsage,
@@ -41,6 +42,7 @@ export const ModeledMethodsList = ({
4142
modeledMethods,
4243
modifiedSignatures,
4344
viewState,
45+
hideModeledApis,
4446
onChange,
4547
onSaveModelClick,
4648
onGenerateFromLlmClick,
@@ -83,6 +85,7 @@ export const ModeledMethodsList = ({
8385
modeledMethods={modeledMethods}
8486
modifiedSignatures={modifiedSignatures}
8587
viewState={viewState}
88+
hideModeledApis={hideModeledApis}
8689
onChange={onChange}
8790
onSaveModelClick={onSaveModelClick}
8891
onGenerateFromLlmClick={onGenerateFromLlmClick}

extensions/ql-vscode/supported_cli_versions.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[
2-
"v2.14.0",
2+
"v2.14.1",
33
"v2.13.5",
44
"v2.12.7",
55
"v2.11.6",

extensions/ql-vscode/test/vscode-tests/cli-integration/legacy-query.test.ts

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,11 +111,20 @@ describeWithCodeQL()("using the legacy query server", () => {
111111
let qs: qsClient.QueryServerClient;
112112
let cliServer: cli.CodeQLCliServer;
113113

114+
let supportNewQueryServer = false;
115+
114116
beforeAll(async () => {
115117
const extension = await getActivatedExtension();
116118
cliServer = extension.cliServer;
117119
cliServer.quiet = true;
118120

121+
if (await cliServer.cliConstraints.supportsNewQueryServerForTests()) {
122+
console.log(
123+
"Skipping legacy-query tests: the CLI supports the new query server",
124+
);
125+
supportNewQueryServer = true;
126+
}
127+
119128
qs = new QueryServerClient(
120129
createMockApp({}),
121130
{
@@ -145,10 +154,18 @@ describeWithCodeQL()("using the legacy query server", () => {
145154
const parsedResults = new Checkpoint<void>();
146155

147156
it("should register the database if necessary", async () => {
157+
if (supportNewQueryServer) {
158+
return;
159+
}
160+
148161
await qs.sendRequest(messages.registerDatabases, { databases: [db] });
149162
});
150163

151164
it(`should be able to compile query ${queryName}`, async () => {
165+
if (supportNewQueryServer) {
166+
return;
167+
}
168+
152169
expect(existsSync(queryTestCase.queryPath)).toBe(true);
153170
try {
154171
const qlProgram: messages.QlProgram = {
@@ -188,6 +205,10 @@ describeWithCodeQL()("using the legacy query server", () => {
188205
});
189206

190207
it(`should be able to run query ${queryName}`, async () => {
208+
if (supportNewQueryServer) {
209+
return;
210+
}
211+
191212
try {
192213
await compilationSucceeded.done();
193214
const callbackId = qs.registerCallback((_res) => {
@@ -217,6 +238,10 @@ describeWithCodeQL()("using the legacy query server", () => {
217238

218239
const actualResultSets: ResultSets = {};
219240
it(`should be able to parse results of query ${queryName}`, async () => {
241+
if (supportNewQueryServer) {
242+
return;
243+
}
244+
220245
await evaluationSucceeded.done();
221246
const info = await cliServer.bqrsInfo(RESULTS_PATH);
222247

@@ -231,6 +256,10 @@ describeWithCodeQL()("using the legacy query server", () => {
231256
});
232257

233258
it(`should have correct results for query ${queryName}`, async () => {
259+
if (supportNewQueryServer) {
260+
return;
261+
}
262+
234263
await parsedResults.done();
235264
expect(actualResultSets).not.toEqual({});
236265
expect(Object.keys(actualResultSets!).sort()).toEqual(

extensions/ql-vscode/test/vscode-tests/cli-integration/new-query.test.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,9 @@ describeWithCodeQL()("using the new query server", () => {
114114

115115
cliServer.quiet = true;
116116
if (!(await cliServer.cliConstraints.supportsNewQueryServerForTests())) {
117+
console.log(
118+
"Skipping new-query tests: the CLI supports only the legacy query server",
119+
);
117120
supportNewQueryServer = false;
118121
}
119122
qs = new QueryServerClient(

0 commit comments

Comments
 (0)