リンター
新しいルールを足す
リンタールールの追加 に、Oxlint へルールを追加する手順がまとまっています。
開発
ルートに ./test.ts を用意したうえで、例えば次を実行します。
bash
just watch "cargo run --bin oxlint -- test.ts"あるいはルール名でフィルタしてテストします。
bash
just watch "cargo test -p oxc_linter -- rule-name"実在の大きなコードベースで oxlint を試す
大規模な JavaScript / TypeScript プロジェクト上で変更を試したいときは、oxlint CLI をビルドしてそのリポジトリで実行します。
bash
# oxc リポジトリ内で oxlint CLI をビルド
just oxlint-node
# 試したいプロジェクトのディレクトリで node 経由で実行:
node <path-to-oxc-repo>/apps/oxlint/dist/cli.js
# 特定ルールを `-D` で有効化したり、デフォルトプラグインを `--disable-*-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 — まだ改善途上の新しいルール