diff --git a/.vscode/settings.json b/.vscode/settings.json index 7f05584..30c35ea 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -12,6 +12,9 @@ "editor.defaultFormatter": "biomejs.biome", "editor.formatOnSave": true }, + "[json]": { + "editor.defaultFormatter": "vscode.json-language-features" + }, // Exclude common build and cache directories from the file explorer "files.exclude": { "**/.git": true, @@ -102,9 +105,7 @@ "webfonts", "wmii" ], - "[json]": { - "editor.defaultFormatter": "vscode.json-language-features" - }, + // Import settings "javascript.preferences.importModuleSpecifier": "shortest", "typescript.preferences.importModuleSpecifier": "non-relative" } diff --git a/eslint.config.mjs b/eslint.config.mjs index fd9189d..ddd2b39 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -2,7 +2,7 @@ import nitpicker from "@alien_intelligence/eslint-plugin-nitpicker" import tsParser from "@typescript-eslint/parser" /** - * ESLint flat config, layers Nitpicker on top of Biome for nit-level enforcement, + * ESLint flat config, it exists only to host Nitpicker for nit-level enforcement, * Biome still owns formatting and the broader lint rules. */ export default [ @@ -14,15 +14,28 @@ export default [ sourceType: "module", }, plugins: { nitpicker }, - rules: { - ...nitpicker.configs.recommended.rules, - // TODO: re-enable once the upstream `e.charAt is not a function` crash is fixed, - // it currently trips on any TS `import type` line and aborts the whole lint run. - "nitpicker/no-british-english": "off", - }, + rules: nitpicker.configs.recommended.rules, + }, + { + files: ["src/**/*.ts", "src/**/*.tsx"], + ...nitpicker.configs.breathing, }, { files: ["src/renderer/**/*.tsx", "src/renderer/**/*.ts"], ...nitpicker.configs.react, }, + { + files: ["src/renderer/**/*.tsx"], + ignores: ["src/renderer/components/ui/**"], + ...nitpicker.configs.design, + rules: { + ...nitpicker.configs.design.rules, + // The react95 "Button" is beveled window chrome, a flat list row or theme + // option is a "