- Introduced `.lintrc` for managing vertical spacing rules in the codebase. - Updated `eslint.config.mjs` to integrate the new spacing rules with ESLint. - Created documentation on code formatting and spacing guidelines in `formato-y-espaciado-del-codigo.md`. - Implemented tests in `spacing.test.mjs` to ensure spacing rules are enforced correctly without altering syntax.
2.8 KiB
Formato y espaciado del código
Biome mantiene el formato general, la organización de imports y las reglas de calidad existentes. ESLint Stylistic complementa únicamente el espaciado vertical que Biome no inserta automáticamente. Las versiones están fijadas en package.json y pnpm-lock.yaml; el parser de TypeScript permite analizar TS, TSX y las sobrecargas sin añadir reglas de análisis duplicadas.
Configuración
.lintrc es un JSON con las reglas de espaciado. No es un nombre de configuración que Biome o ESLint detecten por sí mismos: eslint.config.mjs lo carga y registra el plugin y el parser. Para ajustar la política, editar las reglas de .lintrc.
- Una línea vacía antes y después de funciones, clases, interfaces, tipos, enums y declaraciones exportadas.
- Separación entre funciones declaradas mediante variables, incluidas funciones flecha.
- Una línea vacía entre métodos de clase, constructor y accesores, y entre un grupo de propiedades y un método.
- Las propiedades de clase pueden seguir agrupadas sin líneas vacías individuales.
- Las firmas consecutivas de sobrecarga y su implementación se mantienen juntas.
- Separación al terminar un grupo de variables y antes de return cuando existe una instrucción previa.
- Como máximo una línea vacía consecutiva. Biome mantiene sus agrupaciones de imports.
El código de terceros de packages/shadcn-ui, los directorios generados, dependencias y declaraciones .d.ts quedan fuera del espaciado. La biblioteca vendor también queda excluida de Biome para respetar AGENTS.md.
Comandos
pnpm format # Biome y después espaciado vertical, en todo el código propio
pnpm format:biome # Solo el formateador de Biome
pnpm format:spacing # Aplicar únicamente el espaciado vertical
pnpm lint:spacing # Comprobar espaciado sin modificar archivos
pnpm test:spacing # Validar las reglas, la sintaxis y la compatibilidad con Biome
También se puede actuar sobre un archivo concreto:
pnpm exec eslint modules/assets/src/api/domain/asset.aggregate.ts --fix
La incorporación de las reglas no reformatea automáticamente todo el código existente: pnpm format:spacing realiza esa adaptación cuando se ejecute. Los comandos habituales lint y check siguen siendo los de Biome; lint:spacing comprueba la política complementaria de forma explícita.
Ejemplo
class Service {
private enabled = true;
private name = "Metis Desk";
constructor() {}
first() {
const name = this.name;
return name;
}
second() {
return this.enabled;
}
}
function first() {
return 1;
}
function second() {
return 2;
}
Fuentes de las reglas: separación entre declaraciones y separación entre miembros de clase.