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-pluginTestes 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