mirror of
https://github.com/cline/cline.git
synced 2026-09-21 05:10:09 +08:00
* chore: add grit rule to enforce Logger service over console calls Add a new Grit linting rule that detects direct console method usage (log, debug, error, warn, info) and prompts developers to use the Logger service instead for consistent logging practices. The rule is configured in biome.jsonc to apply to most source files while excluding test files, webview-ui, evals, standalone, e2e tests, and scripts where direct console usage may be acceptable. * support variadic args * wip: migrate console to Logger * migrate rest of console logger * Switch to Logger * Migrations * shared * use shared * revert format change * Update tests to stub Logger instead of console * verbose in dev mode
190 lines
4.4 KiB
JSON
190 lines
4.4 KiB
JSON
{
|
|
"$schema": "https://biomejs.dev/schemas/2.1.4/schema.json",
|
|
"vcs": {
|
|
"enabled": true,
|
|
"clientKind": "git",
|
|
"useIgnoreFile": true,
|
|
"defaultBranch": "main"
|
|
},
|
|
"assist": {
|
|
"enabled": true,
|
|
"actions": {
|
|
"source": {
|
|
"organizeImports": "on",
|
|
"useSortedAttributes": "on"
|
|
}
|
|
}
|
|
},
|
|
"linter": {
|
|
"enabled": true,
|
|
"domains": {
|
|
"react": "recommended"
|
|
},
|
|
// Ideally we would want to turn on all the rules that are currently off,
|
|
// keeping them off currently to make sure only changes on the migrations
|
|
// are included in the initial PR before we apply the format and lint changes.
|
|
// TODO: turn on all rules that are currently off if applicable.
|
|
// TODO: Remove --diagnostic-level=error from CI commands.
|
|
"rules": {
|
|
"recommended": true,
|
|
"correctness": {
|
|
"useExhaustiveDependencies": "off",
|
|
"noUndeclaredVariables": "off",
|
|
"noEmptyPattern": "off",
|
|
"useJsxKeyInIterable": "off",
|
|
"noInnerDeclarations": "off",
|
|
"useHookAtTopLevel": "off",
|
|
"useYield": "off",
|
|
"noConstructorReturn": "off",
|
|
"noInvalidPositionAtImportRule": "off",
|
|
"noSwitchDeclarations": "off",
|
|
"noUnusedImports": "error"
|
|
},
|
|
"a11y": "off",
|
|
"style": {
|
|
"useNodejsImportProtocol": "off",
|
|
"useImportType": "off",
|
|
"useBlockStatements": "warn",
|
|
"useNamingConvention": "off",
|
|
"useThrowOnlyError": "info",
|
|
"useConsistentArrayType": "off",
|
|
"noParameterAssign": "off",
|
|
"useAsConstAssertion": "off",
|
|
"useDefaultParameterLast": "off",
|
|
"noNonNullAssertion": "off",
|
|
"useEnumInitializers": "off",
|
|
"useSelfClosingElements": "off",
|
|
"useSingleVarDeclarator": "off",
|
|
"useNumberNamespace": "off",
|
|
"noInferrableTypes": "off",
|
|
"useTemplate": "off",
|
|
"noUselessElse": "off"
|
|
},
|
|
"suspicious": {
|
|
"noDoubleEquals": "warn",
|
|
"noImplicitAnyLet": "info",
|
|
"noThenProperty": "off",
|
|
"noAsyncPromiseExecutor": "off",
|
|
"noImportAssign": "off",
|
|
"noExplicitAny": "off",
|
|
"noControlCharactersInRegex": "off",
|
|
"noShadowRestrictedNames": "off",
|
|
"noArrayIndexKey": "info",
|
|
"noAssignInExpressions": "info"
|
|
},
|
|
"complexity": {
|
|
"noUselessConstructor": "off",
|
|
"useOptionalChain": "off",
|
|
"noBannedTypes": "off",
|
|
"useLiteralKeys": "off",
|
|
"noUselessCatch": "off",
|
|
"noUselessSwitchCase": "off",
|
|
"noStaticOnlyClass": "off"
|
|
},
|
|
"security": {
|
|
"noDangerouslySetInnerHtml": "info"
|
|
}
|
|
}
|
|
},
|
|
"formatter": {
|
|
"enabled": true,
|
|
"indentStyle": "tab",
|
|
"indentWidth": 4,
|
|
"lineWidth": 130,
|
|
"lineEnding": "lf",
|
|
"formatWithErrors": true
|
|
},
|
|
"javascript": {
|
|
"formatter": {
|
|
"semicolons": "asNeeded",
|
|
"arrowParentheses": "always",
|
|
"bracketSameLine": true,
|
|
"bracketSpacing": true,
|
|
"jsxQuoteStyle": "double",
|
|
"quoteProperties": "asNeeded",
|
|
"trailingCommas": "all"
|
|
}
|
|
},
|
|
"json": {
|
|
"formatter": {
|
|
"trailingCommas": "none",
|
|
"expand": "always"
|
|
}
|
|
},
|
|
"files": {
|
|
"includes": [
|
|
"**",
|
|
"!**/dist",
|
|
"!**/dist-*",
|
|
"!**/out",
|
|
"!**/evals",
|
|
"!**/playwright",
|
|
"!**/test-results",
|
|
"!**/node_modules",
|
|
"!**/webview-ui/build",
|
|
"!**/generated",
|
|
"!**/proto",
|
|
"!**/tests/specs"
|
|
]
|
|
},
|
|
"plugins": [
|
|
"src/dev/grit/process-env.grit"
|
|
],
|
|
"overrides": [
|
|
{
|
|
"includes": [
|
|
"**",
|
|
"!**/hosts/vscode/**",
|
|
"!**/test/**",
|
|
"!**/*.test.ts",
|
|
"!src/dev/**",
|
|
"!src/extension.ts",
|
|
"!src/integrations/git/commit-message-generator.ts",
|
|
"!src/integrations/terminal/**",
|
|
"!src/core/controller/ui/openWalkthrough.ts"
|
|
],
|
|
"plugins": [
|
|
"src/dev/grit/vscode-api.grit"
|
|
]
|
|
},
|
|
{
|
|
// Do not use console logging directly, use the Logger service instead.
|
|
"plugins": [
|
|
"src/dev/grit/console-log.grit"
|
|
],
|
|
"includes": [
|
|
"**",
|
|
"!**/webview-ui/**",
|
|
"!**/evals/**",
|
|
"!**/standalone/**",
|
|
"!**/e2e/**",
|
|
"!**/test/**",
|
|
"!**/__tests__/**",
|
|
"!**/*.test.ts",
|
|
"!**/*.stories.ts",
|
|
"!src/dev/**",
|
|
"!**/*.mjs",
|
|
"!**/*.js",
|
|
"!**/scripts/**",
|
|
"!**/*.tsx",
|
|
"!**/testing-platform/**"
|
|
]
|
|
},
|
|
{
|
|
"includes": [
|
|
"**",
|
|
"!src/core/storage/state-migrations.ts",
|
|
"!src/core/storage/FileContextTracker.ts",
|
|
"!src/core/context/context-tracking/FileContextTracker.ts",
|
|
"!src/common.ts",
|
|
"!src/services/logging/distinctId.ts",
|
|
"!src/core/storage/utils/state-helpers.ts",
|
|
"!src/extension.ts"
|
|
],
|
|
"plugins": [
|
|
"src/dev/grit/use-cache-service.grit"
|
|
]
|
|
}
|
|
]
|
|
}
|