Skip to content

Commit c6bf69a

Browse files
committed
Update to eslint 9
1 parent f7eb0b9 commit c6bf69a

Some content is hidden

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

46 files changed

+970
-984
lines changed

.eslintrc.json

Lines changed: 0 additions & 174 deletions
This file was deleted.

eslint.config.js

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
import tseslint from "typescript-eslint";
2+
import stylistic from "@stylistic/eslint-plugin";
3+
import importPlugin from "eslint-plugin-import";
4+
5+
6+
export default tseslint.config(
7+
...tseslint.configs.recommendedTypeChecked,
8+
...tseslint.configs.stylisticTypeChecked,
9+
importPlugin.flatConfigs.recommended, // eslint-disable-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access
10+
stylistic.configs.customize({
11+
arrowParens: true,
12+
braceStyle: "1tbs",
13+
commaDangle: "never",
14+
flat: true,
15+
jsx: false,
16+
quotes: "double",
17+
semi: true
18+
}),
19+
{
20+
languageOptions: {
21+
parserOptions: {
22+
projectService: true,
23+
tsconfigRootDir: import.meta.dirname
24+
}
25+
},
26+
settings: {
27+
"import/resolver": {
28+
typescript: {}
29+
}
30+
},
31+
rules: {
32+
// TypeScript
33+
"@typescript-eslint/no-unused-vars": ["error", { caughtErrorsIgnorePattern: "^_" }],
34+
"@typescript-eslint/no-empty-function": "off",
35+
"@typescript-eslint/consistent-type-definitions": ["error", "type"],
36+
37+
// Imports
38+
"import/extensions": ["error", "ignorePackages"],
39+
// "import/newline-after-import": ["error", { count: 2, exactCount: false, considerComments: true }], // Doesn't respect @import
40+
41+
// Stylistic
42+
"@stylistic/yield-star-spacing": ["error", "after"],
43+
"@stylistic/multiline-ternary": "off",
44+
"@stylistic/no-mixed-operators": "off",
45+
"@stylistic/no-multiple-empty-lines": ["error", { max: 2, maxEOF: 0, maxBOF: 0 }] // Allow max=2 for imports
46+
}
47+
}
48+
);

language-server/src/features/completion/completion.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { afterAll, beforeAll, describe, expect, test } from "vitest";
2-
import { TestClient } from "../../test/test-client.js";
2+
import { TestClient } from "../../test/test-client.ts";
33

44
import type { DocumentSettings } from "../../services/configuration.js";
55

@@ -16,7 +16,7 @@ describe("Feature - Completion", () => {
1616
await client.stop();
1717
});
1818

19-
test("completion provider capabilities", async () => {
19+
test("completion provider capabilities", () => {
2020
expect(client.serverCapabilities?.completionProvider).to.eql({
2121
resolveProvider: false,
2222
triggerCharacters: ["\"", ":", " "]

language-server/src/features/completion/if-then-completion.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { afterAll, afterEach, beforeAll, describe, expect, test } from "vitest";
22
import { CompletionRequest } from "vscode-languageserver";
3-
import { TestClient } from "../../test/test-client.js";
3+
import { TestClient } from "../../test/test-client.ts";
44
import { ifThenPatternCompletion } from "./if-then-completion.js";
55

66
import type { DocumentSettings } from "../../services/configuration.js";

language-server/src/features/completion/keyword-completion.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { afterAll, afterEach, beforeAll, describe, expect, test } from "vitest";
22
import { CompletionRequest, CompletionItemKind } from "vscode-languageserver";
3-
import { TestClient } from "../../test/test-client.js";
3+
import { TestClient } from "../../test/test-client.ts";
44

55
import type { DocumentSettings } from "../../services/configuration.js";
66

language-server/src/features/completion/schema-completion.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { afterAll, afterEach, beforeAll, describe, expect, test } from "vitest";
22
import { CompletionItemKind, CompletionRequest } from "vscode-languageserver";
3-
import { TestClient } from "../../test/test-client.js";
3+
import { TestClient } from "../../test/test-client.ts";
44

55
import type { DocumentSettings } from "../../services/configuration.js";
66

language-server/src/features/diagnostics/deprecated.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,15 @@ import * as SchemaNode from "../../model/schema-node.js";
99
/** @implements DiagnosticsProvider */
1010
export class DeprecatedDiagnosticsProvider {
1111
/** @type DiagnosticsProvider["getDiagnostics"] */
12-
async getDiagnostics(schemaDocument) {
12+
async getDiagnostics(schemaDocument) { // eslint-disable-line @typescript-eslint/require-await
1313
const diagnostics = [];
1414

1515
const annotationDialectUri = "https://json-schema.org/draft/2020-12/schema";
1616
for (const schemaResource of schemaDocument.schemaResources) {
1717
for (const deprecated of SchemaNode.annotatedWith(schemaResource, "deprecated", annotationDialectUri)) {
1818
if (SchemaNode.annotation(deprecated, "deprecated", annotationDialectUri).some((deprecated) => deprecated)) {
1919
diagnostics.push({
20-
instance: deprecated.parent,
20+
instance: deprecated.parent ?? deprecated,
2121
message: SchemaNode.annotation(deprecated, "x-deprecationMessage", annotationDialectUri).join("\n") || "deprecated",
2222
severity: DiagnosticSeverity.Warning,
2323
tags: [DiagnosticTag.Deprecated]

language-server/src/features/diagnostics/deprecated.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { afterEach, beforeEach, describe, expect, test } from "vitest";
22
import { DiagnosticSeverity, DiagnosticTag, PublishDiagnosticsNotification } from "vscode-languageserver";
3-
import { TestClient } from "../../test/test-client.js";
3+
import { TestClient } from "../../test/test-client.ts";
44

55
import type { Diagnostic } from "vscode-languageserver";
66
import type { DocumentSettings } from "../../services/configuration.js";
@@ -101,8 +101,8 @@ describe("Feature - Deprecated", () => {
101101

102102
const diagnostics = await diagnosticsPromise;
103103
const expectedRange = {
104-
"start": { "line": 2, "character": 4 },
105-
"end": { "line": 2, "character": 21 }
104+
start: { line: 2, character: 4 },
105+
end: { line: 2, character: 21 }
106106
};
107107

108108
expect(diagnostics[0]?.range).to.eql(expectedRange);

language-server/src/features/diagnostics/validate-dialects.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { afterEach, beforeEach, describe, expect, test } from "vitest";
22
import { PublishDiagnosticsNotification } from "vscode-languageserver";
3-
import { TestClient } from "../../test/test-client.js";
3+
import { TestClient } from "../../test/test-client.ts";
44

55
import type { Diagnostic } from "vscode-languageserver";
66
import type { DocumentSettings } from "../../services/configuration.js";

language-server/src/features/diagnostics/validate-references.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,12 @@ export class ValidateReferencesDiagnosticsProvider {
2424

2525
for (const schemaResource of schemaDocument.schemaResources) {
2626
for (const node of this.#schemas.references(schemaResource)) {
27+
/** @type ReturnType<typeof SchemaNode.value<string>> */
2728
const reference = SchemaNode.value(node);
2829
let referencedSchema;
2930
try {
3031
referencedSchema = this.#schemas.getSchemaNode(reference, schemaResource) ?? await getSchema(reference);
31-
} catch (error) {
32+
} catch (_error) {
3233
// Ignore for now
3334
}
3435

0 commit comments

Comments
 (0)