Линтер
Новые правила
См. руководство добавление правил.
Разработка
Создайте ./test.ts, затем:
bash
just watch "cargo run --bin oxlint -- test.ts"Или запускайте тесты с фильтром по правилу:
bash
just watch "cargo test -p oxc_linter -- rule-name"Проверка oxlint на целой кодовой базе
Чтобы прогнать oxlint на большом проекте и проверить изменения:
bash
# соберите CLI oxlint в репозитории oxc
just oxlint-node
# затем в каталоге тестового проекта:
node <path-to-oxc-repo>/apps/oxlint/dist/cli.js
# можно передавать флаги, например -D для правила и --disable-x-plugin:
node <path-to-oxc-repo>/apps/oxlint/dist/cli.js -D rulename --disable-unicorn-plugin --disable-oxc-plugin --disable-typescript-pluginСнапшот-тесты
Для снапшот-тестов используется cargo insta.
После cargo test -p oxc_linter, если вызывается Tester::new(RULE::NAME, pass, fail).test_and_snapshot(), появится файл rule.snap.new.
Примите изменения командой cargo insta accept.
Категории правил
- correctness — заведомо неверный или бесполезный код
- suspicious — код, который с высокой вероятностью ошибочен или бесполезен
- pedantic — строгие правила или с возможными ложными срабатываниями
- perf — код, который можно ускорить
- style — более идиоматичный стиль
- restriction — включать осознанно, по ситуации
- nursery — новые правила в разработке