metis-desk/docs/formato-y-espaciado-del-codigo.md
David 2c827b8a7d feat: add ESLint configuration for vertical spacing and stylistic rules
- 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.
2026-10-10 12:00:17 +02:00

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.