Skip to content

Commit f7fb6a4

Browse files
committed
Merge remote-tracking branch 'origin/main' into koesie10/mocked-config
2 parents 740cbc8 + f7ab8b7 commit f7fb6a4

Some content is hidden

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

52 files changed

+893
-280
lines changed

extensions/ql-vscode/.eslintrc.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,6 @@ const baseConfig = {
4949
"@typescript-eslint/no-throw-literal": "error",
5050
"no-useless-escape": 0,
5151
camelcase: "off",
52-
eqeqeq: "off",
5352
"escompat/no-regexp-lookbehind": "off",
5453
"etc/no-implicit-any-catch": "error",
5554
"filenames/match-regex": "off",

extensions/ql-vscode/docs/test-plan.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,7 @@ This requires running a MRVA query and seeing the results view.
244244
1. By name
245245
2. By results
246246
3. By stars
247-
4. By last commit
247+
4. By last updated
248248
9. Can filter repos
249249
10. Shows correct statistics
250250
1. Total number of results

extensions/ql-vscode/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1483,7 +1483,7 @@
14831483
"husky": {
14841484
"hooks": {
14851485
"pre-commit": "npm run format-staged",
1486-
"pre-push": "npm run lint && scripts/forbid-test-only"
1486+
"pre-push": "scripts/forbid-test-only"
14871487
}
14881488
},
14891489
"lint-staged": {

extensions/ql-vscode/src/abstract-webview.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ export abstract class AbstractWebview<
5151
}
5252

5353
protected async getPanel(): Promise<WebviewPanel> {
54-
if (this.panel == undefined) {
54+
if (this.panel === undefined) {
5555
const { ctx } = this;
5656

5757
// This is an async method, so in theory this method can be called concurrently. To ensure that we don't

extensions/ql-vscode/src/astViewer.ts

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,9 @@ import {
2525
} from "./pure/bqrs-utils";
2626
import { commandRunner } from "./commandRunner";
2727
import { DisposableObject } from "./pure/disposable-object";
28-
import { showAndLogErrorMessage } from "./helpers";
28+
import { showAndLogExceptionWithTelemetry } from "./helpers";
29+
import { asError, getErrorMessage } from "./pure/helpers-pure";
30+
import { redactableError } from "./pure/errors";
2931

3032
export interface AstItem {
3133
id: BqrsId;
@@ -146,7 +148,12 @@ export class AstViewer extends DisposableObject {
146148
() => {
147149
/**/
148150
},
149-
(err) => showAndLogErrorMessage(err),
151+
(error: unknown) =>
152+
showAndLogExceptionWithTelemetry(
153+
redactableError(
154+
asError(error),
155+
)`Failed to reveal AST: ${getErrorMessage(error)}`,
156+
),
150157
);
151158
}
152159

@@ -204,7 +211,12 @@ export class AstViewer extends DisposableObject {
204211
() => {
205212
/**/
206213
},
207-
(err) => showAndLogErrorMessage(err),
214+
(error: unknown) =>
215+
showAndLogExceptionWithTelemetry(
216+
redactableError(
217+
asError(error),
218+
)`Failed to reveal AST: ${getErrorMessage(error)}`,
219+
),
208220
);
209221
}
210222
}

extensions/ql-vscode/src/cli.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -384,7 +384,7 @@ export class CodeQLCliServer implements Disposable {
384384
this.killProcessIfRunning();
385385
// Report the error (if there is a stderr then use that otherwise just report the error cod or nodejs error)
386386
const newError =
387-
stderrBuffers.length == 0
387+
stderrBuffers.length === 0
388388
? new Error(`${description} failed: ${err}`)
389389
: new Error(
390390
`${description} failed: ${Buffer.concat(stderrBuffers).toString(

extensions/ql-vscode/src/commandRunner.ts

Lines changed: 29 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,14 @@ import {
66
Disposable,
77
ProgressLocation,
88
} from "vscode";
9-
import { showAndLogErrorMessage, showAndLogWarningMessage } from "./helpers";
9+
import {
10+
showAndLogExceptionWithTelemetry,
11+
showAndLogWarningMessage,
12+
} from "./helpers";
1013
import { extLogger } from "./common";
1114
import { asError, getErrorMessage, getErrorStack } from "./pure/helpers-pure";
1215
import { telemetryListener } from "./telemetry";
16+
import { redactableError } from "./pure/errors";
1317

1418
export class UserCancellationException extends Error {
1519
/**
@@ -125,23 +129,28 @@ export function commandRunner(
125129
try {
126130
return await task(...args);
127131
} catch (e) {
128-
const errorMessage = `${getErrorMessage(e) || e} (${commandId})`;
129132
error = asError(e);
133+
const errorMessage = redactableError(error)`${
134+
getErrorMessage(e) || e
135+
} (${commandId})`;
130136
const errorStack = getErrorStack(e);
131137
if (e instanceof UserCancellationException) {
132138
// User has cancelled this action manually
133139
if (e.silent) {
134-
void extLogger.log(errorMessage);
140+
void extLogger.log(errorMessage.fullMessage);
135141
} else {
136-
void showAndLogWarningMessage(errorMessage);
142+
void showAndLogWarningMessage(errorMessage.fullMessage);
137143
}
138144
} else {
139145
// Include the full stack in the error log only.
140146
const fullMessage = errorStack
141-
? `${errorMessage}\n${errorStack}`
142-
: errorMessage;
143-
void showAndLogErrorMessage(errorMessage, {
147+
? `${errorMessage.fullMessage}\n${errorStack}`
148+
: errorMessage.fullMessage;
149+
void showAndLogExceptionWithTelemetry(errorMessage, {
144150
fullMessage,
151+
extraTelemetryProperties: {
152+
command: commandId,
153+
},
145154
});
146155
}
147156
return undefined;
@@ -178,24 +187,31 @@ export function commandRunnerWithProgress<R>(
178187
try {
179188
return await withProgress(progressOptionsWithDefaults, task, ...args);
180189
} catch (e) {
181-
const errorMessage = `${getErrorMessage(e) || e} (${commandId})`;
182190
error = asError(e);
191+
const errorMessage = redactableError`${
192+
getErrorMessage(e) || e
193+
} (${commandId})`;
183194
const errorStack = getErrorStack(e);
184195
if (e instanceof UserCancellationException) {
185196
// User has cancelled this action manually
186197
if (e.silent) {
187-
void outputLogger.log(errorMessage);
198+
void outputLogger.log(errorMessage.fullMessage);
188199
} else {
189-
void showAndLogWarningMessage(errorMessage, { outputLogger });
200+
void showAndLogWarningMessage(errorMessage.fullMessage, {
201+
outputLogger,
202+
});
190203
}
191204
} else {
192205
// Include the full stack in the error log only.
193206
const fullMessage = errorStack
194-
? `${errorMessage}\n${errorStack}`
195-
: errorMessage;
196-
void showAndLogErrorMessage(errorMessage, {
207+
? `${errorMessage.fullMessage}\n${errorStack}`
208+
: errorMessage.fullMessage;
209+
void showAndLogExceptionWithTelemetry(errorMessage, {
197210
outputLogger,
198211
fullMessage,
212+
extraTelemetryProperties: {
213+
command: commandId,
214+
},
199215
});
200216
}
201217
return undefined;

extensions/ql-vscode/src/config.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -348,7 +348,7 @@ export class QueryServerConfigListener
348348
if (memory === null) {
349349
return undefined;
350350
}
351-
if (memory == 0 || typeof memory !== "number") {
351+
if (memory === 0 || typeof memory !== "number") {
352352
void extLogger.log(
353353
`Ignoring value '${memory}' for setting ${MEMORY_SETTING.qualifiedName}`,
354354
);

extensions/ql-vscode/src/contextual/locationFinder.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -128,9 +128,9 @@ function createTemplates(path: string): Record<string, string> {
128128
function isValidSelect(selectInfo: ResultSetSchema | undefined) {
129129
return (
130130
selectInfo &&
131-
selectInfo.columns.length == 3 &&
132-
selectInfo.columns[0].kind == ColumnKindCode.ENTITY &&
133-
selectInfo.columns[1].kind == ColumnKindCode.ENTITY &&
134-
selectInfo.columns[2].kind == ColumnKindCode.STRING
131+
selectInfo.columns.length === 3 &&
132+
selectInfo.columns[0].kind === ColumnKindCode.ENTITY &&
133+
selectInfo.columns[1].kind === ColumnKindCode.ENTITY &&
134+
selectInfo.columns[2].kind === ColumnKindCode.STRING
135135
);
136136
}

extensions/ql-vscode/src/contextual/queryResolver.ts

Lines changed: 11 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ import {
77
getPrimaryDbscheme,
88
getQlPackForDbscheme,
99
getOnDiskWorkspaceFolders,
10-
showAndLogErrorMessage,
1110
QlPacksForLanguage,
11+
showAndLogExceptionWithTelemetry,
1212
} from "../helpers";
1313
import { KeyType, kindOfKeyType, nameOfKeyType, tagOfKeyType } from "./keyType";
1414
import { CodeQLCliServer } from "../cli";
@@ -18,6 +18,7 @@ import { createInitialQueryInfo } from "../run-queries-shared";
1818
import { CancellationToken, Uri } from "vscode";
1919
import { ProgressCallback } from "../commandRunner";
2020
import { QueryRunner } from "../queryRunner";
21+
import { redactableError } from "../pure/errors";
2122

2223
export async function qlpackOfDatabase(
2324
cli: CodeQLCliServer,
@@ -88,22 +89,16 @@ export async function resolveQueries(
8889
}
8990

9091
// No queries found. Determine the correct error message for the various scenarios.
91-
const errorMessage = `No ${nameOfKeyType(
92-
keyType,
93-
)} queries (tagged "${tagOfKeyType(
94-
keyType,
95-
)}") could be found in the current library path. \
96-
Try upgrading the CodeQL libraries. If that doesn't work, then ${nameOfKeyType(
97-
keyType,
98-
)} queries are not yet available \
99-
for this language.`;
92+
const keyTypeName = nameOfKeyType(keyType);
93+
const keyTypeTag = tagOfKeyType(keyType);
94+
const joinedPacksToSearch = packsToSearch.join(", ");
95+
const error = redactableError`No ${keyTypeName} queries (tagged "${keyTypeTag}") could be found in the \
96+
current library path (tried searching the following packs: ${joinedPacksToSearch}). \
97+
Try upgrading the CodeQL libraries. If that doesn't work, then ${keyTypeName} queries are not yet available \
98+
for this language.`;
10099

101-
void showAndLogErrorMessage(errorMessage);
102-
throw new Error(
103-
`Couldn't find any queries tagged ${tagOfKeyType(
104-
keyType,
105-
)} in any of the following packs: ${packsToSearch.join(", ")}.`,
106-
);
100+
void showAndLogExceptionWithTelemetry(error);
101+
throw error;
107102
}
108103

109104
async function resolveContextualQuery(

0 commit comments

Comments
 (0)