# 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 ```bash 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: ```bash 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 ```ts 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](https://eslint.style/rules/padding-line-between-statements) y [separación entre miembros de clase](https://eslint.style/rules/lines-between-class-members).