Files
compiler-explorer/lib/compilers/tablegen.ts
Matt Godbolt 53c7dd328b Configure Biome import organiser with grouped imports (#8431)
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)
2026-02-01 20:50:46 -06:00

51 lines
2.0 KiB
TypeScript

import {CompilerOverrideType} from '../../types/compilation/compiler-overrides.interfaces.js';
import type {ParseFiltersAndOutputOptions} from '../../types/features/filters.interfaces.js';
import {BaseCompiler} from '../base-compiler.js';
import {TableGenParser} from './argument-parsers.js';
export class TableGenCompiler extends BaseCompiler {
static get key() {
return 'tablegen';
}
override optionsForFilter(filters: ParseFiltersAndOutputOptions, outputFilename: string) {
const options: string[] = ['-o', outputFilename];
if (this.compiler.includePath) {
options.push(`-I${this.compiler.includePath}`);
}
return options;
}
override isCfgCompiler() {
return false;
}
override getArgumentParserClass() {
return TableGenParser;
}
override async populatePossibleOverrides() {
const possibleActions = await this.argParser.getPossibleActions();
if (possibleActions.length > 0) {
this.compiler.possibleOverrides?.push({
name: CompilerOverrideType.action,
display_title: 'Action',
description:
'The action to perform, which is the backend you wish to ' +
'run. By default, the records are just printed as text. ' +
'Many backends expect to find certain classes and defnitions ' +
'in your source code. You may find details of those in the ' +
'<a href="https://llvm.org/docs/TableGen/BackEnds.html" target="_blank">documentation</a>, ' +
'but if not, refer to use of the backend in the ' +
'<a href="https://github.com/llvm/llvm-project" target="_blank">LLVM Project</a> ' +
'by searching for the command line name e.g. "gen-attrs".',
flags: ['<value>'],
values: possibleActions,
default: '--print-records',
});
}
await super.populatePossibleOverrides();
}
}