mirror of
https://github.com/coder/coder.git
synced 2026-10-16 14:48:56 +08:00
131 lines
3.5 KiB
JSON
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"
|
|
}
|