Files
coder/biome.jsonc
T

131 lines
3.5 KiB
JSON

{
"vcs": {
"enabled": true,
"clientKind": "git",
"useIgnoreFile": true,
"defaultBranch": "main"
},
"files": {
// static/*.html are Go templates with {{ }} directives that
// Biome's HTML parser does not support.
"includes": ["**", "!**/pnpm-lock.yaml", "!**/static/*.html"],
"ignoreUnknown": true,
"maxSize": 2097152
},
"linter": {
"rules": {
"a11y": {
"useMediaCaption": "off", // oxlint owns media-has-caption
"noSvgWithoutTitle": "off",
"useButtonType": "off",
"useSemanticElements": "off",
"noStaticElementInteractions": "off"
},
"correctness": {
"noInvalidBuiltinInstantiation": "off", // oxlint owns new-for-builtins
"noUnusedImports": "warn",
"useUniqueElementIds": "off", // TODO: This is new but we want to fix it
"noNestedComponentDefinitions": "off", // TODO: Investigate, since it is used by shadcn components
"noUnusedVariables": {
"level": "warn",
"options": {
"ignoreRestSiblings": true
}
}
},
"style": {
"noNonNullAssertion": "off",
"noParameterAssign": "off",
"useDefaultParameterLast": "off",
"useSelfClosingElements": "off",
"useAsConstAssertion": "error",
"useEnumInitializers": "error",
"useSingleVarDeclarator": "error",
"useConsistentCurlyBraces": "error",
"noUnusedTemplateLiteral": "error",
"useNumberNamespace": "error",
"noInferrableTypes": "error",
"noUselessElse": "error",
"noRestrictedImports": {
"level": "error",
"options": {
"paths": {
"react": {
"message": "React 19 no longer requires forwardRef. Use ref as a prop instead.",
"importNames": ["forwardRef"]
},
"@pierre/diffs": {
"message": "Parse diffs through parseDiffString so every rendered file carries a content-derived cache key (pierrecomputer/pierre#1052).",
"importNames": [
"parsePatchFiles",
"processPatch",
"processFile",
"parseDiffFromFile"
]
},
// "#/components/Stack/Stack": "Use Tailwind flex utilities instead (e.g., <div className='flex flex-col gap-4'>).",
"lodash": "Use lodash/<name> instead."
}
}
}
},
"suspicious": {
"noExplicitAny": "off", // oxlint owns no-explicit-any
"noArrayIndexKey": "off",
"noThenProperty": "off",
"noTemplateCurlyInString": "off",
"useIterableCallbackReturn": "off",
"noUnknownAtRules": "off", // Allow Tailwind directives
"noConsole": {
"level": "error",
"options": {
"allow": ["error", "info", "warn"]
}
}
},
"complexity": {
"noImportantStyles": "off", // TODO: check and fix !important styles
"noUselessThisAlias": "off",
"useLiteralKeys": "off"
}
}
},
"css": {
"parser": {
// Biome 2.3+ requires opt-in for @apply and other
// Tailwind directives.
"tailwindDirectives": true
}
},
"overrides": [
{
// Generated Go types can produce empty interfaces; the
// safe fix conflicts with noBannedTypes.
"includes": ["**/typesGenerated.ts"],
"linter": {
"rules": {
"suspicious": {
"noEmptyInterface": "off"
}
}
}
},
{
// parseDiff.ts is the single choke point allowed to import
// the raw @pierre/diffs parsers.
"includes": [
"**/DiffViewer/parseDiff.ts",
"**/DiffViewer/parseDiff.test.ts"
],
"linter": {
"rules": {
"style": {
"noRestrictedImports": "off"
}
}
}
}
],
"$schema": "./node_modules/@biomejs/biome/configuration_schema.json"
}