mirror of
https://github.com/compiler-explorer/compiler-explorer.git
synced 2026-05-16 03:11:14 -04:00
Enable Biome's `organizeImports` with groups matching the original ESLint `import/order` configuration: 1. **Node builtins** (`node:fs`, `path`, etc.) 2. *(blank line)* 3. **Third-party packages** (`express`, `@sentry/node`, etc.) 4. *(blank line)* 5. **Local/relative imports** (`../foo.js`, `./bar.js`, aliases) This resolves the inconsistency where Biome wasn't enforcing import grouping, meaning new files would lose the blank-line separation that the old ESLint config enforced. ### Impact - **354 files** updated out of 738 checked (~48%) - **+188 / -240 lines** (net -52) — almost entirely single blank line additions/removals between import groups - No import reordering; purely group separator consistency Fixes #7373 🤖 Generated by LLM (Claude, via OpenClaw)
108 lines
2.3 KiB
JSON
108 lines
2.3 KiB
JSON
{
|
|
"$schema": "./node_modules/@biomejs/biome/configuration_schema.json",
|
|
"files": {
|
|
"includes": [
|
|
"cypress/**",
|
|
"docs/**",
|
|
"lib/**",
|
|
"public/**",
|
|
"shared/**",
|
|
"static/**",
|
|
"test/**",
|
|
"types/**",
|
|
"views/**",
|
|
"!static/policies/*.html",
|
|
"!lib/storage/data/**/*",
|
|
"!lib/asm-docs/generated/**/*",
|
|
"!test/**/*.json"
|
|
]
|
|
},
|
|
"overrides": [
|
|
{
|
|
"includes": ["static/**", "shared/**"],
|
|
"linter": {
|
|
"rules": {
|
|
"suspicious": {
|
|
"noPrototypeBuiltins": "off"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"linter": {
|
|
"rules": {
|
|
"suspicious": {
|
|
"noExplicitAny": "off",
|
|
"noImplicitAnyLet": "off",
|
|
"noAssignInExpressions": "off",
|
|
"noControlCharactersInRegex": "off",
|
|
"noFallthroughSwitchClause": "off",
|
|
"noDoubleEquals": "off"
|
|
},
|
|
"style": {
|
|
"noParameterAssign": "off",
|
|
"noNonNullAssertion": "off",
|
|
"useImportType": "off",
|
|
"useTemplate": "off"
|
|
},
|
|
"correctness": {
|
|
"noUnsafeOptionalChaining": "off",
|
|
"noUnusedImports": "error",
|
|
"noUnusedFunctionParameters": "off"
|
|
},
|
|
"performance": {
|
|
"noAccumulatingSpread": "off",
|
|
"noDelete": "off"
|
|
},
|
|
"complexity": {
|
|
"noStaticOnlyClass": "off",
|
|
"noForEach": "off",
|
|
"useLiteralKeys": "off",
|
|
"noThisInStatic": "off"
|
|
}
|
|
}
|
|
},
|
|
"formatter": {
|
|
"enabled": true,
|
|
"attributePosition": "auto",
|
|
"indentStyle": "space",
|
|
"indentWidth": 4,
|
|
"lineWidth": 120,
|
|
"lineEnding": "lf"
|
|
},
|
|
"javascript": {
|
|
"formatter": {
|
|
"arrowParentheses": "asNeeded",
|
|
"bracketSameLine": false,
|
|
"bracketSpacing": false,
|
|
"quoteProperties": "asNeeded",
|
|
"semicolons": "always",
|
|
"trailingCommas": "all",
|
|
"quoteStyle": "single"
|
|
}
|
|
},
|
|
"assist": {
|
|
"actions": {
|
|
"source": {
|
|
"organizeImports": {
|
|
"level": "on",
|
|
"options": {
|
|
"groups": [
|
|
":NODE:",
|
|
":BLANK_LINE:",
|
|
[":PACKAGE:", ":PACKAGE_WITH_PROTOCOL:", ":URL:"],
|
|
":BLANK_LINE:",
|
|
[":ALIAS:", ":PATH:"]
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"json": {
|
|
"formatter": {
|
|
"indentWidth": 2
|
|
}
|
|
}
|
|
}
|