Auto merge of #15252 - tetsuharuohzeki:enable-unknonw-catch, r=lnicola
editor/code: Enable TypeScript's `--useUnknownInCatchVariables` option This enables TypeScript's [`--useUnknownInCatchVariables`](https://www.typescriptlang.org/tsconfig#useUnknownInCatchVariables).
This commit is contained in:
commit
6f2e8aaba6
@ -373,7 +373,7 @@ export function ssr(ctx: CtxInit): Cmd {
|
||||
selections,
|
||||
});
|
||||
} catch (e) {
|
||||
return e.toString();
|
||||
return String(e);
|
||||
}
|
||||
return null;
|
||||
},
|
||||
|
@ -1,4 +1,3 @@
|
||||
import * as lc from "vscode-languageclient/node";
|
||||
import * as vscode from "vscode";
|
||||
import { strict as nativeAssert } from "assert";
|
||||
import { exec, ExecOptions, spawnSync } from "child_process";
|
||||
@ -57,37 +56,6 @@ export const log = new (class {
|
||||
}
|
||||
})();
|
||||
|
||||
export async function sendRequestWithRetry<TParam, TRet>(
|
||||
client: lc.LanguageClient,
|
||||
reqType: lc.RequestType<TParam, TRet, unknown>,
|
||||
param: TParam,
|
||||
token?: vscode.CancellationToken
|
||||
): Promise<TRet> {
|
||||
// The sequence is `10 * (2 ** (2 * n))` where n is 1, 2, 3...
|
||||
for (const delay of [40, 160, 640, 2560, 10240, null]) {
|
||||
try {
|
||||
return await (token
|
||||
? client.sendRequest(reqType, param, token)
|
||||
: client.sendRequest(reqType, param));
|
||||
} catch (error) {
|
||||
if (delay === null) {
|
||||
log.warn("LSP request timed out", { method: reqType.method, param, error });
|
||||
throw error;
|
||||
}
|
||||
if (error.code === lc.LSPErrorCodes.RequestCancelled) {
|
||||
throw error;
|
||||
}
|
||||
|
||||
if (error.code !== lc.LSPErrorCodes.ContentModified) {
|
||||
log.warn("LSP request failed", { method: reqType.method, param, error });
|
||||
throw error;
|
||||
}
|
||||
await sleep(delay);
|
||||
}
|
||||
}
|
||||
throw "unreachable";
|
||||
}
|
||||
|
||||
export function sleep(ms: number) {
|
||||
return new Promise((resolve) => setTimeout(resolve, ms));
|
||||
}
|
||||
|
@ -1,3 +1,4 @@
|
||||
import * as assert from "node:assert/strict";
|
||||
import { readdir } from "fs/promises";
|
||||
import * as path from "path";
|
||||
|
||||
@ -30,6 +31,7 @@ class Suite {
|
||||
await test.promise;
|
||||
ok(` ✔ ${test.name}`);
|
||||
} catch (e) {
|
||||
assert.ok(e instanceof Error);
|
||||
error(` ✖︎ ${test.name}\n ${e.stack}`);
|
||||
failed += 1;
|
||||
}
|
||||
@ -50,6 +52,7 @@ export class Context {
|
||||
await ctx.run();
|
||||
ok(`✔ ${name}`);
|
||||
} catch (e) {
|
||||
assert.ok(e instanceof Error);
|
||||
error(`✖︎ ${name}\n ${e.stack}`);
|
||||
throw e;
|
||||
}
|
||||
|
@ -12,7 +12,6 @@
|
||||
"newLine": "LF",
|
||||
// These disables some enhancement type checking options
|
||||
// to update typescript version without any code change.
|
||||
"useUnknownInCatchVariables": false,
|
||||
"exactOptionalPropertyTypes": false
|
||||
},
|
||||
"exclude": ["node_modules", ".vscode-test"],
|
||||
|
Loading…
Reference in New Issue
Block a user