{ "$schema": "https://biomejs.dev/schemas/2.4.15/schema.json", "vcs": { "enabled": true, "clientKind": "git", "useIgnoreFile": true }, "files": { "ignoreUnknown": true, "includes": [ "**", "!**/node_modules/**", "!**/packages/**", "!**/.claude/**", "!**/gen/**", "!**/autogenerated/**", "!**/schemas/**", "!**/data/wordlens/**" ] }, "formatter": { "enabled": true, "indentStyle": "space", "indentWidth": 2, "lineWidth": 100, "lineEnding": "lf", "includes": [ "**", "!**/.next/**", "!**/.open-next/**", "!**/.build/**", "!**/.tauri/**", "!**/.wrangler/**", "!**/.vercel/**", "!**/out/**", "!**/build/**", "!**/dist/**", "!**/target/**", "!**/fastlane/**", "!apps/readest-app/public/*.js", "!apps/readest-app/public/vendor/**", "!apps/readest-app/src-tauri/plugins/tauri-plugin-turso/**", "!apps/readest-app/src-tauri/plugins/tauri-plugin-webview-upgrade/**", "!**/*.mjs", "!**/*.cjs", "!**/*.mts", "!pnpm-lock.yaml" ] }, "assist": { "enabled": false }, "css": { "parser": { "tailwindDirectives": true }, "linter": { "enabled": false }, "formatter": { "enabled": true, "quoteStyle": "single" } }, "linter": { "enabled": true, "includes": [ "**", "!apps/readest-app/.next/**", "!apps/readest-app/.open-next/**", "!apps/readest-app/.wrangler/**", "!apps/readest-app/.claude/**", "!apps/readest-app/dist/**", "!apps/readest-app/out/**", "!apps/readest-app/build/**", "!apps/readest-app/public/**", "!apps/readest-app/src-tauri/**", "!apps/readest-app/extensions/**/dist/**", "!apps/readest-app/extensions/**/node_modules/**", "!apps/readest-app/next-env.d.ts", "!apps/readest-app/i18next-scanner.config.cjs" ], "rules": { "recommended": true, "a11y": { "recommended": true, "useKeyWithClickEvents": "off", "useKeyWithMouseEvents": "off", "noSvgWithoutTitle": "off", "noLabelWithoutControl": "off", "useSemanticElements": "off", "noAriaHiddenOnFocusable": "off", "noInteractiveElementToNoninteractiveRole": "off", "noNoninteractiveElementToInteractiveRole": "off", "noNoninteractiveElementInteractions": "off", "noStaticElementInteractions": "off", "noNoninteractiveTabindex": "off", "useButtonType": "off", "useAriaPropsSupportedByRole": "off", "useFocusableInteractive": "off", "noAutofocus": "off" }, "complexity": { "noForEach": "off", "noStaticOnlyClass": "off", "noUselessSwitchCase": "off", "noUselessFragments": "off", "noUselessCatch": "off", "useLiteralKeys": "off", "useOptionalChain": "off", "noThisInStatic": "off", "useArrowFunction": "off", "noUselessEscapeInRegex": "off" }, "correctness": { "noUnusedVariables": "warn", "noUnusedImports": "error", "useExhaustiveDependencies": "off", "useHookAtTopLevel": "error", "useJsxKeyInIterable": "error", "noChildrenProp": "error", "noNextAsyncClientComponent": "warn", "noSwitchDeclarations": "off", "noUndeclaredVariables": "off", "noEmptyCharacterClassInRegex": "off", "useParseIntRadix": "off", "noEmptyPattern": "off" }, "nursery": { "noBeforeInteractiveScriptOutsideDocument": "warn", "noDuplicateEnumValues": "error", "noSyncScripts": "warn", "useInlineScriptId": "error" }, "performance": { "noImgElement": "off", "noUnwantedPolyfillio": "warn", "useGoogleFontPreconnect": "warn" }, "security": { "noBlankTarget": "off", "noDangerouslySetInnerHtmlWithChildren": "off", "noDangerouslySetInnerHtml": "off" }, "style": { "noNonNullAssertion": "off", "useImportType": "off", "noParameterAssign": "off", "useDefaultParameterLast": "off", "noUselessElse": "off", "noHeadElement": "warn", "noCommonJs": "off", "useFilenamingConvention": "off", "useNamingConvention": "off", "noUnusedTemplateLiteral": "off", "useTemplate": "off", "useExponentiationOperator": "off", "useNodejsImportProtocol": "off" }, "suspicious": { "noExplicitAny": "error", "noArrayIndexKey": "off", "noAssignInExpressions": "off", "noDoubleEquals": "off", "noDocumentImportInPage": "error", "noHeadImportInDocument": "error", "useGoogleFontDisplay": "warn", "noCommentText": "error", "noDuplicateJsxProps": "error", "noAsyncPromiseExecutor": "off", "noImplicitAnyLet": "off", "noControlCharactersInRegex": "off", "noEmptyBlockStatements": "off", "useIterableCallbackReturn": "off", "noGlobalIsNan": "off", "noConfusingVoidType": "off", "noConstEnum": "off" } } }, "javascript": { "globals": ["React"], "formatter": { "quoteStyle": "single", "jsxQuoteStyle": "single", "trailingCommas": "all", "semicolons": "always" } } }