Ctrl K
ComunidadGuías…

biome.jsonc

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
{
	"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": {
				"useKeyWithClickEvents": "off", // oxlint owns click-events-have-key-events
				"useMediaCaption": "off", // oxlint owns media-has-caption
				"noSvgWithoutTitle": "off",
				"useButtonType": "off",
				"useSemanticElements": "off",
				"noStaticElementInteractions": "off",
				"noNoninteractiveTabindex": "off" // oxlint owns no-noninteractive-tabindex
			},
			"correctness": {
				"noInvalidBuiltinInstantiation": "off", // oxlint owns new-for-builtins
				"useExhaustiveDependencies": "off", // oxlint owns exhaustive-deps
				"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
					}
				}
			},
			"security": {
				"noDangerouslySetInnerHtml": "off" // oxlint owns no-danger
			},
			"style": {
				"noNonNullAssertion": "off",
				"noParameterAssign": "off",
				"useDefaultParameterLast": "off",
				"useSelfClosingElements": "off",
				"useAsConstAssertion": "error",
				"useEnumInitializers": "error",
				"useSingleVarDeclarator": "error",
				"useConsistentCurlyBraces": "off", // oxlint owns jsx-curly-brace-presence
				"noUnusedTemplateLiteral": "error",
				"useNumberNamespace": "error",
				"noInferrableTypes": "off", // oxlint owns no-inferrable-types
				"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'>).",
							"sonner": {
								"message": "Import toast from #/components/Toaster/toast.",
								"importNames": ["toast"]
							},
							"lodash": "Use lodash/<name> instead."
						}
					}
				}
			},
			"suspicious": {
				"noFallthroughSwitchClause": "off", // oxlint owns no-fallthrough
				"noConfusingVoidType": "off", // oxlint owns no-invalid-void-type
				"noExplicitAny": "off", // oxlint owns no-explicit-any
				"noArrayIndexKey": "off",
				"noThenProperty": "off",
				"noTemplateCurlyInString": "off",
				"useIterableCallbackReturn": "off",
				"noUnknownAtRules": "off", // Allow Tailwind directives
				"noEmptyInterface": "off", // oxlint owns no-empty-interface
				"noConsole": "off" // oxlint owns no-console
			},
			"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": [
		{
			// 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"
					}
				}
			}
		},
		{
			// toast.ts is the single choke point allowed to import Sonner's toast.
			"includes": ["**/components/Toaster/toast.ts"],
			"linter": {
				"rules": {
					"style": {
						"noRestrictedImports": "off"
					}
				}
			}
		}
	],
	"$schema": "./node_modules/@biomejs/biome/configuration_schema.json"
}