Herramientas del espacio de trabajo

Problemas

Todo proyecto ya trae una herramienta que te dice qué está mal en él — tsc, dart analyze, ESLint, Clippy, go vet, Ruff. Lo que ninguna te dice es si tu diff es el que ha metido los cuarenta avisos que acaba de imprimir. Gitcito sabe qué archivos están sucios, así que la misma lista responde a esa pregunta con un interruptor.

El panel de problemas y el contador de la barra de estado

La barra de estado lleva la cuenta — errores, avisos, información: las tres cifras que VS Code enseñó a leer a todo el mundo. Haz clic (o usa Problemas en la paleta de comandos) y el panel se abre abajo, agrupado por archivo. Al pulsar una línea se abre el archivo justo ahí. Antes del primer barrido muestra guiones en vez de ceros: nadie ha mirado todavía, y tres ceros dirían lo contrario.

Qué ejecuta

Si el repositorio tiene Gitcito ejecuta
pubspec.yaml dart analyze --format=machine
tsconfig.json tsc --noEmit
una configuración de ESLint eslint -f json
Cargo.toml cargo clippy --message-format=short
go.mod go vet ./...
pyproject.toml o ruff.toml ruff check --output-format=json

Flutter entra por la fila de Dart: una app Flutter es un proyecto Dart, y flutter analyze llama al mismo analizador que dart analyze.

El proyecto no tiene por qué estar en la raíz. Esos marcadores se buscan también unos niveles más abajo, así que una app Flutter en mobile/ o un paquete en apps/web se encuentran, y cada analizador se ejecuta en el directorio de su propio proyecto. Un proyecto anidado del mismo tipo se omite cuando un ancestro ya lo cubre — un tsconfig.json en la raíz dice justamente eso — y un barrido se detiene en doce proyectos, porque un monorepo no debería lanzar cincuenta compiladores.

Un binario en node_modules/.bin gana al del PATH, igual que lo resuelven los propios scripts del proyecto. Todo se ejecuta en paralelo, y la salida de cada herramienta se convierte en una única forma, sin duplicados y ordenada: dos analizadores que informan de la misma línea producen una sola fila.

Nada se ejecuta solo. tsc --noEmit en un repositorio grande son decenas de segundos, y estos comandos son la cadena de herramientas del repositorio, no de Gitcito. Arrancan cuando abres el panel o pulsas actualizar, nunca por su cuenta. Por eso la lista es una foto fija: edita un archivo y queda obsoleta hasta que la vuelvas a ejecutar.

Ajustes → General → Analizadores de código decide cuánta iniciativa tiene: barrer al abrir el panel (por defecto), solo al pulsar refrescar, o desactivado — que esconde del todo la mitad de analizadores del panel, su contador en la barra de estado y su comando.

La salida de build se descarta. Una herramienta apuntada a la raíz del proyecto analiza lo que encuentre, y lo que encuentra incluye .next/build/chunks, un dist empaquetado, una copia vendorizada — cientos de quejas sobre código escrito por máquinas que entierran las pocas sobre el tuyo. Gitcito le pregunta a git qué archivos están ignorados y los descarta, pero nunca descarta un archivo rastreado: commitear la salida generada es una decisión, y git check-ignore la respeta. node_modules se va igualmente.

Solo lo que has cambiado

El interruptor de la cabecera descarta todos los problemas de archivos que no has tocado. Esa es la vista que merece la pena tener abierta: una lista plana de todos los avisos de un código se convierte en papel pintado en una semana, mientras que "¿los ha metido este diff?" es una pregunta que conviene responder antes de commitear.

Las pastillas de severidad también filtran. Apagadas significan mostrar todo; encender una reduce la lista a esa severidad.

Los límites

  • No hay servidor de lenguaje. Esto es un barrido, no un demonio: sin subrayados mientras escribes, sin resultados antes de pedirlos.
  • Una herramienta que no está instalada se nombra, no se esconde. El pie dice qué no se pudo ejecutar, porque una lista vacía sin explicación es peor que una corta con un motivo.
  • Solo se entiende la salida legible por máquina. Cada analizador se lee de su formato máquina documentado; una herramienta configurada para imprimir otra cosa es invisible aquí.
  • El tope son cinco mil problemas. Pasado eso el panel lo dice y para — un repositorio en ese estado tiene un problema mayor que una barra de scroll.

Ver también: CI local · Terminal integrado

Mejorar esta traducción en GitHub