Linter
ルールの追加
Oxlint に新しいルールを追加する方法については、ルールの追加ガイドをご覧ください。
開発
./test.ts を作成し、次のように実行します。
bash
just watch "cargo run --bin oxlint -- test.ts"または、特定のルールに対してテストとフィルタリングを行う場合:
bash
just watch "cargo test -p oxc_linter -- rule-name"完全なコードベースに対する oxlint のテスト
完全なコードベース上で oxlint をテストしたい場合(たとえば、大規模な JavaScript/TypeScript プロジェクトで変更内容を検証する場合)、oxlint CLI をビルドしてそのコードベースに対して実行できます。
bash
# oxc リポジトリ内で `oxlint` CLI をビルド
just oxlint-node
# その後、テスト対象のコードベースが含まれるディレクトリで、node で oxlint を実行:
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 - 極めて厳格であるか、まれに誤検出を起こす可能性のある lint
- perf - より高速に実行できるように書き直せるコード
- style - より自然な記述スタイルにすべきコード
- restriction - 有効化する前に個別に検討すべきルール
- nursery - まだ開発中の新しいルール
