Skip to content

Linter

Contribuir com novas regras

Veja o guia adicionar regras para incluir novas regras no Oxlint.

Desenvolvimento

Crie um ./test.ts e então:

bash
just watch "cargo run --bin oxlint -- test.ts"

Ou teste e filtre pela regra:

bash
just watch "cargo test -p oxc_linter -- rule-name"

Testar o oxlint em um codebase inteiro

Para rodar o oxlint em um projeto grande — por exemplo para validar mudanças num codebase JavaScript/TypeScript extenso — compile a CLI do oxlint e execute contra esse projeto.

bash
# build the oxlint cli in the oxc repo
just oxlint-node
# and then in the directory of the codebase you want to test with, run oxlint with node:
node <path-to-oxc-repo>/apps/oxlint/dist/cli.js
# You can also pass flags to it, like -D to enable a specific rule, and --disable-x-plugin to turn off default plugins:
node <path-to-oxc-repo>/apps/oxlint/dist/cli.js -D rulename --disable-unicorn-plugin --disable-oxc-plugin --disable-typescript-plugin

Testes por snapshot

cargo insta é usado para snapshot testing.

Depois de rodar cargo test -p oxc_linter e a linha Tester::new(RULE::NAME, pass, fail).test_and_snapshot() ser executada, será gerado um arquivo rule.snap.new.

Use cargo insta accept para aceitar todas as mudanças de snapshot.

Categoria da regra

  • correctness — código claramente errado ou inútil
  • suspicious — código que provavelmente está errado ou é inútil
  • pedantic — lints mais rígidos ou com falsos positivos ocasionais
  • perf — código que pode ser escrito para rodar mais rápido
  • style — código que deveria ser mais idiomático
  • restriction — lints que vale pensar caso a caso antes de ligar
  • nursery — lints novos ainda em desenvolvimento