From 706f3963804636357324251c4e40d6a53c8d0bb3 Mon Sep 17 00:00:00 2001 From: Takashi Tamura Date: Tue, 22 Oct 2024 07:21:44 +0900 Subject: [PATCH] Enable tseslint.configs.recommendedTypeChecked - https://typescript-eslint.io/users/configs#recommended-type-checked - https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/src/configs/recommended-type-checked.ts --- eslint.config.mjs | 15 +++------------ .../labeldefinitionupdater.ts | 2 +- src/components/server.ts | 1 + src/providers/atsuggestionlib/atsuggestion.ts | 1 + src/providers/completionlib/command.ts | 1 + src/providers/completionlib/environment.ts | 1 + test/build.index.ts | 1 + test/completion.index.ts | 1 + test/multiroot-ws.index.ts | 1 + test/rootfile.index.ts | 1 + test/unittest.index.ts | 1 + test/unittests/components/linter.test.ts | 2 +- test/unittests/providers/structure.test.ts | 2 +- test/viewer.index.ts | 1 + viewer/components/extensionconnection.ts | 1 + 15 files changed, 17 insertions(+), 15 deletions(-) diff --git a/eslint.config.mjs b/eslint.config.mjs index 8a71c668..6125777f 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -22,12 +22,6 @@ const commonRules = { }], "no-shadow": "off", "@typescript-eslint/no-shadow": "error", - "@typescript-eslint/no-unsafe-argument": "error", - "@typescript-eslint/no-unsafe-assignment": "error", - "@typescript-eslint/no-unsafe-call": "error", - "@typescript-eslint/no-unsafe-return": "error", - "no-unused-expressions": "off", - "@typescript-eslint/no-unused-expressions": "error", "no-unused-vars": "off", "@typescript-eslint/no-unused-vars": [ "error", @@ -41,15 +35,12 @@ const commonRules = { "ignoreRestSiblings": true } ], - "@typescript-eslint/no-require-imports": "error", + "@typescript-eslint/no-unsafe-enum-comparison": "off", "@typescript-eslint/prefer-includes": "error", "@typescript-eslint/prefer-readonly": "error", "no-return-await": "off", "@typescript-eslint/return-await": "error", - "require-await": "off", - "@typescript-eslint/require-await": "error", - "@typescript-eslint/restrict-plus-operands": "error", - "@typescript-eslint/unbound-method": "error", + "@typescript-eslint/restrict-template-expressions": "off", "curly": "error", "default-case": "error", "eol-last": "error", @@ -109,7 +100,7 @@ export default tseslint.config( ], }, eslint.configs.recommended, - ...tseslint.configs.recommended, + ...tseslint.configs.recommendedTypeChecked, ...tseslint.configs.stylistic, { languageOptions: { diff --git a/src/components/completionupdaterlib/labeldefinitionupdater.ts b/src/components/completionupdaterlib/labeldefinitionupdater.ts index 06cac5b5..de4f07f6 100644 --- a/src/components/completionupdaterlib/labeldefinitionupdater.ts +++ b/src/components/completionupdaterlib/labeldefinitionupdater.ts @@ -87,7 +87,7 @@ export class LabelDefinitionUpdater { return this.getRefFromNodeArray(node.args, lines) } if (latexParser.isLstlisting(node)) { - const arg = (node as latexParser.Lstlisting).arg + const arg = node.arg if (arg) { return this.getRefFromNode(arg, lines) } diff --git a/src/components/server.ts b/src/components/server.ts index ac9dbb4a..27555177 100644 --- a/src/components/server.ts +++ b/src/components/server.ts @@ -285,6 +285,7 @@ export class Server { } } catch (err: unknown) { if (err instanceof vscode.FileSystemError || err instanceof Error) { + /* eslint-disable-next-line @typescript-eslint/no-unsafe-member-access */ const code = (err as any)?.code as unknown if (code === 'FileNotFound' || code === 'ENOENT') { response.writeHead(404) diff --git a/src/providers/atsuggestionlib/atsuggestion.ts b/src/providers/atsuggestionlib/atsuggestion.ts index c684e921..c5fe044a 100644 --- a/src/providers/atsuggestionlib/atsuggestion.ts +++ b/src/providers/atsuggestionlib/atsuggestion.ts @@ -78,6 +78,7 @@ export class AtSuggestion implements IProvider { const filteredSuggestions = suggestions.filter(item => item.label === result[0]) if (filteredSuggestions.length > 0) { return filteredSuggestions.map(item => { + /* eslint-disable-next-line @typescript-eslint/no-base-to-string */ item.range = new vscode.Range(args.position.translate(undefined, -item.label.toString().length), args.position) return item }) diff --git a/src/providers/completionlib/command.ts b/src/providers/completionlib/command.ts index 964682dd..db20c189 100644 --- a/src/providers/completionlib/command.ts +++ b/src/providers/completionlib/command.ts @@ -31,6 +31,7 @@ export interface CmdSignature { } function isCmdItemEntry(obj: any): obj is CmdItemEntry { + /* eslint-disable-next-line @typescript-eslint/no-unsafe-member-access */ return (typeof obj.command === 'string') && (typeof obj.snippet === 'string') } diff --git a/src/providers/completionlib/environment.ts b/src/providers/completionlib/environment.ts index c2e04711..f0b0a5aa 100644 --- a/src/providers/completionlib/environment.ts +++ b/src/providers/completionlib/environment.ts @@ -22,6 +22,7 @@ export interface EnvItemEntry { } function isEnvItemEntry(obj: any): obj is EnvItemEntry { + /* eslint-disable-next-line @typescript-eslint/no-unsafe-member-access */ return (typeof obj.name === 'string') } diff --git a/test/build.index.ts b/test/build.index.ts index 353a5684..049642d2 100644 --- a/test/build.index.ts +++ b/test/build.index.ts @@ -27,6 +27,7 @@ export function run(): Promise { }) } catch (e) { console.error(e) + /* eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors */ reject(e) } }) diff --git a/test/completion.index.ts b/test/completion.index.ts index 4afdc68b..0cea23cd 100644 --- a/test/completion.index.ts +++ b/test/completion.index.ts @@ -27,6 +27,7 @@ export function run(): Promise { }) } catch (e) { console.error(e) + /* eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors */ reject(e) } }) diff --git a/test/multiroot-ws.index.ts b/test/multiroot-ws.index.ts index b72edf1d..36747af0 100644 --- a/test/multiroot-ws.index.ts +++ b/test/multiroot-ws.index.ts @@ -27,6 +27,7 @@ export function run(): Promise { }) } catch (e) { console.error(e) + /* eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors */ reject(e) } }) diff --git a/test/rootfile.index.ts b/test/rootfile.index.ts index 806136db..b441e01b 100644 --- a/test/rootfile.index.ts +++ b/test/rootfile.index.ts @@ -27,6 +27,7 @@ export function run(): Promise { }) } catch (e) { console.error(e) + /* eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors */ reject(e) } }) diff --git a/test/unittest.index.ts b/test/unittest.index.ts index 2f4c1079..d9f0c63d 100644 --- a/test/unittest.index.ts +++ b/test/unittest.index.ts @@ -27,6 +27,7 @@ export function run(): Promise { }) } catch (e) { console.error(e) + /* eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors */ reject(e) } }) diff --git a/test/unittests/components/linter.test.ts b/test/unittests/components/linter.test.ts index 3d5e0f94..2e97dbd1 100644 --- a/test/unittests/components/linter.test.ts +++ b/test/unittests/components/linter.test.ts @@ -1,4 +1,4 @@ -/* eslint-disable @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-argument */ +/* eslint-disable @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access */ import * as vscode from 'vscode' import * as fs from 'node:fs' diff --git a/test/unittests/providers/structure.test.ts b/test/unittests/providers/structure.test.ts index 0298c776..a20551dc 100644 --- a/test/unittests/providers/structure.test.ts +++ b/test/unittests/providers/structure.test.ts @@ -1,4 +1,4 @@ -/* eslint-disable @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-argument */ +/* eslint-disable @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access */ import * as vscode from 'vscode' import * as path from 'node:path' diff --git a/test/viewer.index.ts b/test/viewer.index.ts index 21b1710a..38bc62d6 100644 --- a/test/viewer.index.ts +++ b/test/viewer.index.ts @@ -27,6 +27,7 @@ export function run(): Promise { }) } catch (e) { console.error(e) + /* eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors */ reject(e) } }) diff --git a/viewer/components/extensionconnection.ts b/viewer/components/extensionconnection.ts index 04746faf..d2f98f92 100644 --- a/viewer/components/extensionconnection.ts +++ b/viewer/components/extensionconnection.ts @@ -100,6 +100,7 @@ class ConnectionPort { const server = `${scheme}://${window.location.hostname}:${window.location.port}` const sock = new WebSocket(server) sock.addEventListener('open', () => this.socketPromise.resolve(sock) ) + /* eslint-disable-next-line @typescript-eslint/no-base-to-string */ sock.addEventListener('error', (ev) => this.socketPromise.reject(new Error(`Failed to connect to ${server}: ${ev}`)) ) this.startConnectionKeeper() }