oxc/crates/oxc_linter/CHANGELOG.md
oxc-bot 0063318102
release(oxlint): v0.15.9 (#8824)
## [0.15.9] - 2025-02-01

### Features

- 1a41181 linter: Implement `eslint/prefer-object-spread` (#8216)
(tbashiyy)
- adb8ebd linter: Implement no-useless-call rule (#8789) (keita hino)
- 3790933 linter: Add vitest/prefer-lowercase-title rule (#8152) (Tyler
Earls)
- e8e6917 linter: Unicorn/switch-cases-braces support options (#8704)
(1zumii)

### Bug Fixes

- 8ce21d1 linter: Can't disable `no-nested-ternary` rule anymore (#8600)
(dalaoshu)
- e929f26 linter: Output `LintCommandInfo` for
`CliRunResult::LintNoFilesFound` (#8714) (Sysix)
- 4f30a17 linter: Unicorn/switch-case-braces mangles code when applying
fix (#8758) (Tyler Earls)
- 9cc9d5f linter: `ignorePatterns` does not work when files are provided
as command arguments (#8590) (dalaoshu)
- 1de6f85 linter: No-lone-blocks erroring on block statements containing
comments (#8720) (Tyler Earls)
- 77ef61a linter: Fix diagnostic spans for `oxc/no-async-await` (#8721)
(camchenry)
- f15bdce linter: Catch `Promise` in `typescript/array-type` rule
(#8702) (Rintaro Itokawa)
- 5041cb3 vscode: Fix commands by reverting commit `259a47b` (#8819)
(Alexander S.)

### Performance

- d318238 linter: Remove sorting of rules in cache (#8718) (camchenry)

### Documentation

- 57b7ca8 ast: Add documentation for all remaining JS AST methods
(#8820) (Cam McHenry)

### Refactor

- c2fdfc4 linter: Correctly handle loose options for `eslint/eqeqeq`
(#8798) (dalaoshu)
- 0aeaedd linter: Support loose options for `eslint/eqeqeq` (#8790)
(dalaoshu)
- 194a5ff linter: Remove `LintResult` (#8712) (Sysix)
- 4a2f2a9 linter: Move default `all_rules` output to trait (#8710)
(Sysix)
- 741fb40 linter: Move stdout outside LintRunner (#8694) (Sysix)
- 10e5920 linter: Move finishing default diagnostic message to
`GraphicalReporter` (#8683) (Sysix)
- 9731c56 oxlint: Move output from `CliRunResult::InvalidOption` to
outside and use more Enums for different invalid options (#8778) (Sysix)
- fe45bee oxlint: Create different `CliRunResult` instead of passing
`ExitCode` to it (#8777) (Sysix)
- 2378fef oxlint: Move ConfigFileInit output outside CliRunResult, exit
code 1 when it fails (#8776) (Sysix)
- f4cecb5 oxlint: Remove unused `CliRunResult::PathNotFound` (#8775)
(Sysix)

### Testing

- ad35e82 linter: Use snapshot testing instead of LintResult (#8711)
(Sysix)
- bf895eb linter: Add diagnostic format test snapshots (#8696)
(Alexander S.)
- 34d3d72 linter: Add snapshot tester for cli (#8695) (Sysix)
- 0bf2bcf oxlint: Test two real rules with same name but from different
plugins (#8821) (dalaoshu)
- 2b83b71 oxlint: Improve disabling "no-nested-ternary" tests (#8814)
(Alexander S.)
- 45648e7 oxlint: Fix InvalidOptionTsConfig tests for windows (#8791)
(Alexander S.)
- 48bfed9 oxlint: Ignore windows path mismatch (Boshen)
- 6f4a023 oxlint: Remove "--print-config" test (#8792) (Sysix)
- 55c2025 oxlint: Add `CliRunResult` to snapshot (#8780) (Sysix)

Co-authored-by: Boshen <1430279+Boshen@users.noreply.github.com>
2025-02-01 22:01:30 +08:00

125 KiB
Raw Blame History

Changelog

All notable changes to this package will be documented in this file.

The format is based on Keep a Changelog, and this project does not adhere to Semantic Versioning until v1.0.0.

[0.15.9] - 2025-02-01

Features

  • 1a41181 linter: Implement eslint/prefer-object-spread (#8216) (tbashiyy)
  • adb8ebd linter: Implement no-useless-call rule (#8789) (keita hino)
  • 3790933 linter: Add vitest/prefer-lowercase-title rule (#8152) (Tyler Earls)
  • e8e6917 linter: Unicorn/switch-cases-braces support options (#8704) (1zumii)

Bug Fixes

  • 8ce21d1 linter: Can't disable no-nested-ternary rule anymore (#8600) (dalaoshu)
  • 4f30a17 linter: Unicorn/switch-case-braces mangles code when applying fix (#8758) (Tyler Earls)
  • 1de6f85 linter: No-lone-blocks erroring on block statements containing comments (#8720) (Tyler Earls)
  • 77ef61a linter: Fix diagnostic spans for oxc/no-async-await (#8721) (camchenry)
  • f15bdce linter: Catch Promise in typescript/array-type rule (#8702) (Rintaro Itokawa)

Performance

  • d318238 linter: Remove sorting of rules in cache (#8718) (camchenry)

Documentation

  • 57b7ca8 ast: Add documentation for all remaining JS AST methods (#8820) (Cam McHenry)

Refactor

  • c2fdfc4 linter: Correctly handle loose options for eslint/eqeqeq (#8798) (dalaoshu)
  • 0aeaedd linter: Support loose options for eslint/eqeqeq (#8790) (dalaoshu)

[0.15.8] - 2025-01-24

Features

  • dcaebe6 linter: Add "strict" option to promise/prefer-await-to-then rule (#8674) (Neil Fisher)

Refactor

  • a3dc4c3 crates: Clean up snapshot files (#8680) (Boshen)
  • e66da9f isolated_declarations, linter, minifier, prettier, semantic, transformer: Remove unnecessary ref / ref mut syntax (#8643) (overlookmotel)
  • 23b49a6 linter: Use cow_to_ascii_lowercase instead cow_to_lowercase (#8678) (Boshen)
  • b8d9a51 span: Deal only in owned Atoms (#8641) (overlookmotel)
  • ac4f98e span: Derive Copy on Atom (#8596) (branchseer)

[0.15.7] - 2025-01-19

  • 4ce6329 semantic: [BREAKING] Ensure program outlives semantic (#8455) (Valentinas Janeiko)

Features

  • 01ac773 linter: Support ignoreTypeOfTestName for jest/valid-title (#8589) (dalaoshu)
  • 538b24a linter: Format the configuration documentation correctly (#8583) (Tapan Prakash)
  • 7ab14cc linter: Add more Vitest compatible Jest rules (#8445) (Anson Heung)
  • d178360 linter: Implement eslint/prefer-promise-reject-errors (#8254) (tbashiyy)

Bug Fixes

  • 855c839 codegen: Shorthand assignment target identifier consider mangled names (#8536) (Boshen)
  • c15af02 linter: False positive in eslint/no-lone-blocks (#8587) (dalaoshu)
  • 41f2070 linter: Rule no-restricted-imports support missing options (#8076) (Alexander S.)
  • 869bc73 linter: Enhance default_param_last rule to handle optional parameters (#8563) (Tapan Prakash)
  • c6260c2 linter: Support rest params for prefer_promise_reject_errors (#8468) (Yuichiro Yamashita)
  • 2be1e82 linter/no-unused-vars: False positives when variable and type have same name (#8465) (Dunqing)

Performance

  • 250bbd1 linter/react-exhaustive-deps: Use stack of AstTypes instead of AstKinds (#8522) (overlookmotel)

Refactor

  • 40f5165 linter: Improve eslint/no-lone-blocks (#8588) (dalaoshu)
  • b4c87e2 linter: Move DiagnosticsReporters to oxlint (#8454) (Alexander S.)
  • bf00f82 linter: Move rule prefer-each from vitest to jest + remapping (#8448) (Alexander S.)
  • 8dd0013 linter/consistent-function-scoping: Remove Visit::enter_node usage (#8538) (overlookmotel)
  • 30c0689 linter/no-map-spread: Remove Visit::enter_node usage (#8537) (overlookmotel)
  • b5ed58e span: All methods take owned Span (#8297) (overlookmotel)

Styling

  • 3789d2f linter/react-exhaustive-deps: Fix indentation (#8520) (overlookmotel)

[0.15.6] - 2025-01-13

Features

  • 457aa31 linter: Implement no-lone-blocks rule (#8145) (Yuichiro Yamashita)

Refactor

  • aea9551 ast: Simplify get_identifier_reference of TSType and TSTypeName (#8273) (Dunqing)
  • 43ed3e1 linter: Add output formatter (#8436) (Alexander S.)
  • b19d809 linter: Split unicorn/prefer-spread and eslint/prefer-spread into own rules (#8329) (Alexander S.)
  • 3c534ae linter: Refactor LintBuilder to prep for nested configs (#8034) (camc314)
  • 2f9fab9 linter: Remove remapping for plugin name in diagnostics (#8223) (Alexander S.)

Testing

  • b6c1546 linter: Use plugin name instead of category for finding rule (#8353) (Alexander S.)

[0.15.5] - 2025-01-02

Features

  • 0e168b8 linter: Catch more cases in const-comparisons (#8215) (Cameron)
  • bde44a3 linter: Add statement_span to ModuleRecord/ImportEntry (#8195) (Alexander S.)
  • ccaa9f7 linter: Implement eslint/new-cap (#8146) (Alexander S.)

Bug Fixes

  • 2b14a6f linter: Fix ignorePattern config for windows (#8214) (Alexander S.)

[0.15.4] - 2024-12-30

  • ed75e42 semantic: [BREAKING] Make SymbolTable fields pub(crate) instead of pub (#7999) (Boshen)

Features

  • 47cea9a linter: Implement eslint/no-extra-label (#8181) (Anson Heung)
  • ef76e28 linter: Implement eslint/no-multi-assign (#8158) (Anson Heung)
  • 384858b linter: Implement jsx-a11y/no-noninteractive-tabindex (#8167) (Tyler Earls)
  • afc21a6 linter: Implement eslint/vars-on-top (#8157) (Yuichiro Yamashita)
  • 65796c4 linter: Implement eslint/prefer-rest-params (#8155) (Yuichiro Yamashita)
  • 5234d96 linter: Implement eslint/no-nested-ternary (#8150) (Yuichiro Yamashita)
  • 1c5db72 linter: Implement eslint/no-labels (#8131) (Anson Heung)
  • 0b04288 linter: Move import/named to nursery (#8068) (Boshen)

Bug Fixes

  • f3050d4 linter: Exclude svelte files from no_unused_vars rule (#8170) (Yuichiro Yamashita)
  • faf7464 linter: Disable rule react/rules-of-hook by file extension (#8168) (Alexander S.)
  • 1171e00 linter: Disable react/rules-of-hooks for vue and svelte files (#8165) (Alexander S.)
  • 1b9a5ba linter: False positiver in private member expr in oxc/const-comparison (#8164) (camc314)
  • 6bd9ddb linter: False positive in typescript/ban-tslint-comment (#8094) (dalaoshu)
  • 10a1fd5 linter: Rule: no-restricted-imports support option patterns with group key (#8050) (Alexander S.)
  • b3f38ae linter: Rule no-restricted-imports: support option allowImportNames (#8002) (Alexander S.)
  • 340cc90 linter: Rule no-restricted-imports: fix option "importNames" (#7943) (Alexander S.)
  • ec2128e linter: Fix line calculation for eslint/max-lines in diagnostics (#7962) (Dmitry Zakharov)
  • 79af100 semantic: Reference flags not correctly resolved when after an export stmt (#8134) (camc314)

Performance

  • d8d2ec6 linter: Run rules which require typescript syntax only when source type is actually typescript (#8166) (Alexander S.)
  • 2736657 semantic: Allocate UnresolvedReferences in allocator (#8046) (Boshen)

Refactor

  • 774babb linter: Read exported_bindings_from_star_export lazily (#8062) (Boshen)
  • 547c102 linter: Use RwLock<FxHashMap> instead of FxDashMap for module record data (#8061) (Boshen)
  • 952d7e4 linter: Rename flat.rs to config.rs (#8033) (camc314)
  • 50848ed linter: Simplify ConfigStore to prep for nested configs (#8032) (camc314)
  • b2a4a78 linter: Remove unused with_rules and set_rule methods (#8029) (camc314)
  • 02f968d semantic: Change Bindings to a plain FxHashMap (#8019) (Boshen)

[0.15.3] - 2024-12-17

Features

  • 25ddb35 linter: Add the import/no_named_default rule (#7902) (Guillaume Piedigrossi)
  • ee26b44 linter: Enhance get_element_type to resolve more element types (#7885) (dalaoshu)

Bug Fixes

  • 6f41d92 linter: False positive in unicorn/no-useless-spread (#7940) (dalaoshu)
  • 0867b40 linter: Fix configuration parser for no-restricted-imports (#7921) (Alexander S.)
  • 9c9b73d linter: Fix incorrect fixer for prefer-regexp-test (#7898) (Cameron)
  • 32935e6 linter: False positive in jsx-a11y/label-has-associated-control (#7881) (dalaoshu)
  • 14c51ff semantic: Remove inherting ScopeFlags::Modifier from parent scope (#7932) (Dunqing)

Refactor

  • 3858221 global: Sort imports (#7883) (overlookmotel)
  • b99ee37 linter: Move rule "no-restricted-imports" to nursery (#7897) (Alexander S.)
  • ff2a68f linter/yoda: Simplify code (#7941) (overlookmotel)

Styling

  • 7fb9d47 rust: cargo +nightly fmt (#7877) (Boshen)

[0.15.2] - 2024-12-14

Refactor

  • e55ab24 linter: Use Expression::is_super (#7850) (overlookmotel)

[0.15.1] - 2024-12-13

Bug Fixes

  • 2b187e5 linter: Fix configuration casing for typescript/no_this_alias (#7836) (Boshen)
  • 06e6d38 linter: Fix unicorn/prefer-query-selector to use the correct replacement for getElementsByClassName (#7796) (Nicholas Rayburn)
  • 7a83230 semantic: Missing reference when export default references a type alias binding (#7813) (Dunqing)

[0.15.0] - 2024-12-10

  • 39b9c5d linter: [BREAKING] Remove unmaintained security plugin (#7773) (Boshen)

Features

  • 065f7dc linter: Support expectTypeOf, assert and assertType in vitest/expect-expect (#7742) (Yuichiro Yamashita)
  • 3d5f0a1 linter/no_restricted_imports: Add the no_restricted_imports rules (#7629) (Guillaume Piedigrossi)

Bug Fixes

  • ad27b20 linter: Only resolve esm files for import plugin (#7720) (Boshen)
  • 5e6053f linter: False positive in eslint/yoda (#7719) (dalaoshu)

Refactor

  • c6a19aa linter: Remove unused serde features (#7738) (Boshen)
  • b9a2b35 linter: Remove aho-corasick (#7718) (Boshen)

Testing

  • 62f0a22 linter: Port react-jsx-uses-vars rules to no_unused_vars (#7731) (Tyler Earls)
  • 02f9903 linter: Add regression tests for import/namespace (#7723) (dalaoshu)

[0.14.1] - 2024-12-06

  • ebc80f6 ast: [BREAKING] Change 'raw' from &str to Option (#7547) (Song Gao)

Features

  • fd0935c linter: Change react/rules-of-hooks category to pedantic (#7691) (Boshen)
  • e64fd95 linter: Map .js to .ts when resolving with tsconfig.json (#7675) (Boshen)
  • bd9d38a linter: Implement eslint:yoda (#7559) (tbashiyy)
  • a14e76a linter: Report identical logical expressions in const-comparisons (#7630) (camc314)
  • afe1e9b linter: Enhance const-comparisons for more cases (#7628) (camc314)
  • 4eb87ea linter: RulesOfHooks from nursery to correctness (#7607) (Boshen)
  • 275d625 linter: Output rules to json array (#7574) (camc314)
  • b8dc333 syntax: Add ExportEntry::is_type (#7676) (Boshen)

Bug Fixes

  • 7cee065 linter: Panic in yoda (#7679) (camc314)
  • 6ae178e linter: Ignore type references in no-undef (#7670) (Boshen)
  • fcc2546 linter: Move no-unused-expressions from TS to eslint (#7624) (camc314)
  • 29db060 linter: Detect typescript eslint alias rules (#7622) (Alexander S.)
  • e824501 linter: False positive in exhaustive-deps (#7626) (camc314)
  • 8a68ef4 linter: Update reporting spans for exhaustive-deps (#7625) (camc314)
  • 543df6e linter: Fix false positives in exhaustive-deps (#7615) (camc314)
  • e80214c linter: Fix false positives in rules-of-hooks (#7606) (camc314)
  • 3dc46a8 linter: No-unused-expressions false positive with arrow fn expressions (#7585) (Cameron)
  • 810671a linter: Detect vitest jest alias rules (#7567) (Alexander S.)
  • 4e3044e linter: Rules-of-hooks fix false positive with default export (#7570) (camc314)

Documentation

  • f029090 linter: Update rule documentation (#7684) (camc314)
  • 4e489bd linter: Update rule documentation (#7681) (camc314)
  • 56fe5f8 linter: Update rule documentation (#7680) (Cameron)

Refactor

  • a0973dc linter: Use BigIntLiteral::raw field (#7660) (overlookmotel)
  • 3711a8e linter: Rename is_same_reference to is_same_expression (#7654) (camc314)
  • b445654 linter: Use get_inner_expression in const-comparisons (#7627) (camc314)
  • f0e7acc syntax: Change ModuleRecord::not_esm to has_module_syntax (#7579) (Boshen)
  • 18519de syntax: Remove ModuleRecord::export_default (#7578) (Boshen)
  • d476660 syntax: Remove ModuleRecord::exported_bindings_duplicated because it is a syntax error (#7577) (Boshen)
  • 17663f5 syntax: Remove ModuleRecord::export_default_duplicated because it is a syntax error (#7576) (Boshen)
  • 79014ff syntax: Clean up ModuleRecord (#7568) (Boshen)

Testing

  • be9863a linter: Add more tests fo rules-of-hooks (#7683) (camc314)
  • 6dd71c6 linter: Port eslint tests to no-unused-expressions (#7611) (camc314)

[0.14.0] - 2024-12-01

  • c2ced15 parser,linter: [BREAKING] Use a different ModuleRecord for linter (#7554) (Boshen)

  • 0be5233 semantic: [BREAKING] Remove ModuleRecord from Semantic (#7548) (Boshen)

  • 8a788b8 parser: [BREAKING] Build ModuleRecord directly in parser (#7546) (Boshen)

Features

  • 32f860d linter: Add support for ignorePatterns property within config file (#7092) (Nicholas Rayburn)
  • 053bc08 linter: Implement typescript/no-unused-expressions (#7498) (camc314)
  • 60b28fc linter: Implement typescript/consistent-generic-constructors (#7497) (camc314)
  • bd0693b linter: Allow lint rules with the same name (#7496) (camc314)
  • 2ac9f96 linter: Typescript/no-inferrable-types (#7438) (camc314)
  • 8d89fdc linter: Add eslint/prefer-spread (#7112) (tbashiyy)

Bug Fixes

  • 123b5b7 linter: False positive in typescript/consistent-type-definitions (#7560) (dalaoshu)
  • cc078d6 linter: Add missing error message prefix to eslint/no-const-assign (Boshen)
  • 17c0dd8 linter: Fix jsx_no_script_url doc failed to build (Boshen)

Performance

  • 6cc7a48 linter: Use OsString for module cache hash (#7558) (Boshen)
  • 6655345 linter: Use FxDashMap for module cache (#7522) (overlookmotel)

Documentation

  • a6b0100 linter: Fix config example headings (#7562) (Boshen)

Refactor

  • 0f3f67a linter: Add capability of adding semantic data to module record (#7561) (Boshen)
  • 8392177 linter: Clean up the runtime after the module record change (#7557) (Boshen)
  • 823353a linter: Clean up APIs for ModuleRecord (#7556) (Boshen)
  • f847d0f linter: Call str::ends_with with array not slice (#7526) (overlookmotel)
  • 2077ff9 linter: Remove once_cell (#7510) (Boshen)
  • 169b8bf linter, syntax: Introduce type alias FxDashMap (#7520) (overlookmotel)

[0.13.2] - 2024-11-26

Features

  • 7236d14 eslint/jsx_a11y: Implement anchor_ambiguous_text (#5729) (Jelle van der Waa)
  • 79ab8cc lint-unicorn: Add rule prefer set has (#7075) (jordan boyer)
  • 87c893f linter: Add the eslint/no_duplicate_imports rule (#7309) (Guillaume Piedigrossi)
  • 0b9da38 linter: Implement unicorn/prefer-negative-index (#6920) (Brian Liu)
  • f0643c4 linter: Implement jsx-no-script-url (#6995) (Radu Baston)
  • 00060ca linter: Implement eslint/no-object-constructor (#7345) (Naoya Yoshizawa)

Bug Fixes

  • db6558f linter: False positive in eslint/prefer-object-has-own (#7463) (dalaoshu)

Refactor

  • d7d0735 semantic: Remove SymbolFlags::TypeLiteral (#7415) (Dunqing)

[0.13.1] - 2024-11-23

  • 6f0fe38 semantic: [BREAKING] Correct all ReferenceFlags::Write according to the spec (#7388) (Dunqing)

Features

  • 4ad26b9 linter: Add no-promise-in-callback (#7307) (no-yan)

Bug Fixes

  • 8507464 linter: Hanging when source has syntax/is flow (#7432) (Cameron)
  • e88cf1b linter: Make overrides globs relative to config path (#7407) (camchenry)
  • 9002e97 linter: Add proper support for findIndex and findLastIndex for unicorn/prefer-array-some (#7405) (Dmitry Zakharov)

Documentation

  • 6730e3e linter: Add more examples for unicorn/prefer-array-some (#7411) (Dmitry Zakharov)

Refactor

  • 6c0d31b linter: Remove useless const declaration (#7430) (Song Gao)
  • c8adc46 linter/no-unused-vars: Improve implementation to remove using SymbolFlags::Export (#7412) (Dunqing)
  • c90537f linter/only-used-in-recursion: Improve implementation to remove using SymbolFlags::Export (#7413) (Dunqing)

[0.13.0] - 2024-11-21

  • f059b0e ast: [BREAKING] Add missing ChainExpression from TSNonNullExpression (#7377) (Boshen)

  • 878189c parser,linter: [BREAKING] Add ParserReturn::is_flow_language; linter ignore flow error (#7373) (Boshen)

  • 7bf970a linter: [BREAKING] Remove tree_shaking plugin (#7372) (Boshen)

Features

  • 7f8747d linter: Implement react/no-array-index-key (#6960) (BitterGourd)
  • be152c0 linter: Add typescript/no-require-imports rule (#7315) (Dmitry Zakharov)
  • 849489e linter: Add suggestion for no-console (#4312) (DonIsaac)
  • 8cebdc8 linter: Allow appending plugins in override (#7379) (camchenry)
  • 8cfea3c oxc_cfg: Add implicit return instruction (#5568) (IWANABETHATGUY)
  • e6922df parser: Fix incorrect AST for x?.f<T>() (#7387) (Boshen)

Bug Fixes

  • e91c287 linter: Fix panic in react/no-array-index-key (#7395) (Boshen)
  • a32f5a7 linter/no-array-index-key: Compile error due to it uses a renamed API (#7391) (Dunqing)
  • 666b6c1 parser: Add missing ChainExpression in optional TSInstantiationExpression (#7371) (Boshen)

Documentation

  • df143ca linter: Add docs for config settings (#4827) (DonIsaac)
  • ad44cfa linter: Import/first options (#7381) (Zak)

Refactor

  • c34d649 linter: Use scope_id etc methods (#7394) (overlookmotel)

[0.12.0] - 2024-11-20

  • 20d9080 linter: [BREAKING] Override plugins array when passed in config file (#7303) (camchenry)

  • 44375a5 ast: [BREAKING] Rename TSEnumMemberName enum variants (#7250) (overlookmotel)

Features

  • 1d9f528 linter: Implement unicorn/prefer-string-raw lint rule (#7335) (Ryan Walker)
  • d445e0f linter: Implement unicorn/consistent-existence-index-check (#7262) (Ryan Walker)
  • 01ddf37 linter: Add allowReject option to no-useless-promise-resolve-reject (#7274) (no-yan)
  • 755a31b linter: Support bind function case for compatibility with promise/no-return-wrap (#7232) (no-yan)
  • 428770e linter: Add import/no-namespace rule (#7229) (Dmitry Zakharov)
  • 9c91151 linter: Implement typescript/no-empty-object-type (#6977) (Orenbek)
  • 2268a0e linter: Support overrides config field (#6974) (DonIsaac)
  • 3dcac1a linter: React/exhaustive-deps (#7151) (camc314)

Bug Fixes

  • bc0e72c linter: Handle user variables correctly for import/no_commonjs (#7316) (Dmitry Zakharov)
  • bf839c1 linter: False positive in jest/expect-expect (#7341) (dalaoshu)
  • ff2a1d4 linter: Move exhaustive-deps to react (#7251) (camc314)
  • df5c535 linter: Revert unmatched rule error (#7257) (Cameron A McHenry)
  • c4ed230 linter: Fix false positive in eslint/no-cond-assign (#7241) (camc314)
  • ef847da linter: False positive in jsx-a11y/iframe-has-title (#7253) (dalaoshu)
  • 62b6327 linter: React/exhaustive-deps update span for unknown deps diagnostic (#7249) (camc314)

Refactor

  • c6a4868 linter: Temporarily remove unknown rules checking (#7260) (camchenry)

[0.11.1] - 2024-11-09

  • 0e4adc1 ast: [BREAKING] Remove invalid expressions from TSEnumMemberName (#7219) (Boshen)

  • d1d1874 ast: [BREAKING] Change comment.span to real position that contain // and /* (#7154) (Boshen)

  • 843bce4 ast: [BREAKING] IdentifierReference::reference_id return ReferenceId (#7126) (overlookmotel)

Features

  • 1fcd709 linter: Add jsx support for only-used-in-recursion (#7120) (no-yan)
  • 4d577cf linter: Add import/first rule (#7180) (Dmitry Zakharov)
  • 9b8973f linter: Add import/unambiguous rule (#7187) (Dmitry Zakharov)
  • 5ab1ff6 linter: Implement @typescript-eslint/no-unsafe-function-type (#6989) (Orenbek)

Bug Fixes

  • b73cfd9 linter: Fix is_method_call with parentheses and chain expression (#7095) (tbashiyy)

Refactor

  • 8c0a362 linter: Use ctx.source_range(comment.content_span()) API (#7155) (Boshen)
  • c5485ae semantic: Add ancestor_kinds iterator function (#7217) (camchenry)
  • abf1602 semantic: Rename iter_parents to ancestors (#7216) (camchenry)
  • 42171eb semantic: Rename ancestors to ancestor_ids (#7215) (camchenry)

[0.11.0] - 2024-11-03

  • 1f2a6c6 linter: [BREAKING] Report unmatched rules with error exit code (#7027) (camchenry)

  • 9fd9f4f linter: [BREAKING] Sync sindresorhus/globals; removed Object.prototype properties from builtin and es* globals (#6991) (Boshen)

  • 9a6a2f9 semantic: [BREAKING] Remove SymbolTable::get_symbol_id_from_span API (#6955) (Boshen)

Features

  • 2184588 linter: Do not bail for unmatched rules yet (#7093) (Boshen)
  • a6fcd81 linter: Add import/no-commonjs rule (#6978) (Dmitry Zakharov)
  • 1691cab linter: Support user-configurable secrets for oxc-security/api-keys (#5938) (DonIsaac)
  • 610621c linter: Implement react/style-prop-object (#6342) (Albert Kaaman)
  • 1e2f012 linter: Add oxc/no-map-spread (#6751) (DonIsaac)
  • 1c66473 linter: Implement eslint/prefer-object-has-own (#6905) (tomoya yanagibashi)

Bug Fixes

  • 79bf74a linter: Check is_reference_to_global_variable in no-array-constructor (#7067) (Naoya Yoshizawa)
  • 147e2e4 linter: Allow replacing rule when none are enabled yet (#7014) (camchenry)
  • 7aa496a linter: Remove unsafe fixer of no-useless-spread (#6655) (dalaoshu)
  • f5a7134 linter/no-unused-vars: False positive for discarded reads within sequences (#6907) (DonIsaac)

Documentation

  • 4551baa linter: Document rules (#6983) (Boshen)

Refactor

  • 8f1460e linter: Move LintPlugins from LintOptions to LintConfig (#6932) (DonIsaac)

Testing

  • c35d3f2 linter: Improve test failure output (#6975) (camchenry)

[0.10.3] - 2024-10-26

  • 90c786c regular_expression: [BREAKING] Support ES2025 Duplicated named capture groups (#6847) (leaysgur)

  • 8032813 regular_expression: [BREAKING] Migrate to new regexp parser API (#6741) (leaysgur)

Features

  • a73c5af linter: Add fixer for jsx-a11y/no-access-key rule (#6781) (Tapan Prakash)
  • 2aa763c linter: Warn unmatched rule names (#6782) (Tapan Prakash)
  • 0acca58 linter: Support --print-config all to print config file for project (#6579) (mysteryven)

Bug Fixes

  • f49b3e2 linter: react/iframe-missing-sandbox ignores vanilla JS APIs (#6872) (DonIsaac)
  • 54a5032 linter: Correct false positive in no-duplicates (#6748) (dalaoshu)
  • a47c70e minifier: Fix remaining runtime bugs (#6855) (Boshen)

Documentation

  • 3923e63 linter: Add schema to config examples (#6838) (Dmitry Zakharov)

Refactor

  • a148023 linter: Dereference IDs as soon as possible (#6821) (overlookmotel)
  • 423d54c rust: Remove the annoying clippy::wildcard_imports (#6860) (Boshen)

[0.10.2] - 2024-10-22

  • 1248557 ast: [BREAKING] Remove AstKind::FinallyClause (#6744) (Boshen)

  • 202c7f6 ast: [BREAKING] Remove AstKind::ExpressionArrayElement and AstKind::ClassHeritage (#6740) (Boshen)

Features

  • dbe1972 linter: Import/no-cycle should turn on ignore_types by default (#6761) (Boshen)
  • 619d06f linter: Fix suggestion for eslint:no_empty_static_block rule (#6732) (Tapan Prakash)

Bug Fixes

Performance

  • 8387bac linter: Apply small file optimization, up to 30% faster (#6600) (camchenry)

Refactor

  • b884577 linter: All ast_util functions take Semantic (#6753) (DonIsaac)
  • 744aa74 linter: Impl Deref<Target = Semantic> for LintContext (#6752) (DonIsaac)

[0.10.1] - 2024-10-21

Features

  • af25752 linter: Add unicorn/prefer-math-min-max (#6621) (Brian Liu)
  • 5095f02 linter: Added fixer for duplicate prefix in valid title jest rule (#6699) (Tapan Prakash)
  • e9976d4 linter: Add title whitespace fixer for jest valid title rule (#6669) (Tapan Prakash)
  • 45f02d5 linter: Add unicorn/consistent-empty-array-spread (#6695) (Brian Liu)
  • 01a35bb linter/eslint: Show ignore patterns in eslint/no-unused-vars diagnostic messages (#6696) (DonIsaac)

Bug Fixes

  • ce25c45 linter: Panic in disable-directives (#6677) (dalaoshu)
  • a5de230 linter/import: import/no-duplicates handles namespace imports correctly (#6694) (DonIsaac)
  • b0b6ac7 linter/no-cond-assign: False positive when assignment is in body statement (#6665) (camchenry)

Performance

  • 6a76ea8 linter/no-unused-vars: Use default IgnorePattern when /^_/ is provided as a pattern (#6697) (DonIsaac)

Refactor

  • d6609e9 linter: Use run_on_jest_node for existing lint rules (#6722) (camchenry)
  • 97195ec linter: Add run_on_jest_node to run rules on only jest nodes (#6721) (camchenry)
  • 155fe7e linter: Allow Semantic to be passed for collecting Jest nodes (#6720) (camchenry)
  • ad8f281 linter: Use iter for collecting jest nodes (#6719) (camchenry)
  • dc19a8f linter: Use iterator for collecting jest imports (#6718) (camchenry)
  • 29c1447 linter: jest/valid-title fixer to use Span::shrink method (#6703) (Tapan Prakash)
  • 2eb984a linter: Add missing should_run implementations (#6666) (camchenry)
  • 23f88b3 linter/import: Better diagnostic messages for import/no-duplicates (#6693) (DonIsaac)

[0.10.0] - 2024-10-18

  • 782f0a7 codegen: [BREAKING] Rename print_char method to print_ascii_byte (#6512) (overlookmotel)

  • 7645e5c codegen: [BREAKING] Remove CommentOptions API (#6451) (Boshen)

  • 5200960 oxc: [BREAKING] Remove passing Trivias around (#6446) (Boshen)

  • 80266d8 linter: [BREAKING] Support plugins in oxlint config files (#6088) (DonIsaac)

Features

  • 6f22538 ecmascript: Add ToBoolean, ToNumber, ToString (#6502) (Boshen)
  • 1e7fab3 linter: Implement no-callback-in-promise (#6157) (dalaoshu)
  • c56343d linter: Promote no_unsafe_optional_chaining to correctness (#6491) (Boshen)
  • 454874a linter: Implement react/iframe-missing-sandbox (#6383) (Radu Baston)
  • c8174e2 linter: Add suggestions for no-plusplus (#6376) (camchenry)
  • 6e3224d linter: Configure by category in config files (#6120) (DonIsaac)
  • c5e66e1 linter/no-unused-vars: Report own type references within class, interface, and type alias declarations (#6557) (DonIsaac)
  • 8c78f97 linter/node: Implement no-new-require (#6165) (Jelle van der Waa)

Bug Fixes

  • e340424 linter: Support import type with namespaced import in import/no-duplicates (#6650) (Dmitry Zakharov)
  • a668397 linter: Panic in no-else-return (#6648) (dalaoshu)
  • 41dc8e3 linter: Stack overflow in oxc/no-async-endpoint-handlers (#6614) (DonIsaac)
  • d07a9b0 linter: Panic in no-zero-fractions (#6607) (dalaoshu)
  • d6a0d2e linter: Fix file name checking behavior of unicorn/filename-case (#6463) (camchenry)
  • 0784e74 linter: Error fixer of switch-case-braces (#6474) (dalaoshu)
  • e811812 linter: Error diagnostic message based on parameter length of valid-expect (#6455) (dalaoshu)
  • f71c91e linter: Move eslint/sort-keys to style category (#6377) (DonIsaac)
  • 2b86de9 linter/no-control-regex: False negative for flags in template literals (#6531) (DonIsaac)
  • 685a590 linter/no-control-regex: Better diagnostic messages (#6530) (DonIsaac)
  • 6d5a9f2 linter/no-control-regex: Allow capture group references (#6529) (DonIsaac)
  • ba53bc9 linter/no-unused-vars: False positives in TS type assertions (#6397) (DonIsaac)
  • d3e59c6 linter/no-unused-vars: False positive in some default export cases (#6395) (DonIsaac)
  • e08f956 linter/no-unused-vars: False positive for functions and classes in arrays (#6394) (DonIsaac)
  • b9d7c5f no-unused-vars: Consider functions within conditional expressions usable (#6553) (Brian Donovan)

Performance

  • 0cbd4d0 linter: Avoid megamorphism in RuleFixer methods (#6606) (DonIsaac)
  • 725f9f6 linter: Get fewer parent nodes in unicorn/prefer-dom-node-text-content (#6467) (camchenry)
  • c00f669 linter: Use NonZeroUsize for pending module cache entries (#6439) (DonIsaac)
  • a1a2721 linter: Replace ToString::to_string with CompactStr in remaining rules (#6407) (camchenry)
  • c5c69d6 linter: Use CompactStr in valid-title (#6406) (camchenry)
  • d66e826 linter: Use CompactStr in prefer-lowercase-title (#6405) (camchenry)
  • 889400c linter: Use CompactStr for get_node_name in Jest rules (#6403) (camchenry)
  • 9906849 linter: Use CompactStr in no-large-snapshots (#6402) (camchenry)
  • c382ec4 linter: Use CompactStr in no-hooks (#6401) (camchenry)
  • 24a5d9b linter: Use CompactStr in expect-expect (#6400) (camchenry)
  • 71dbdad linter: Use CompactStr in no-console (#6399) (camchenry)
  • f5f00a1 linter: Use CompactStr in no-bitwise (#6398) (camchenry)
  • 62afaa9 linter/jsx-no-comment-textnodes: Remove regex for checking comment patterns (#6534) (camchenry)
  • b3d0cce linter/no-unescaped-entities: Add fast path to check if char should be replaced (#6594) (camchenry)
  • ee73f56 linter/no-unused-vars: Do not construct Regex for default ignore pattern (#6590) (camchenry)
  • 77ddab8 linter/numeric-separators-style: Replace regex with number parser (#6546) (camchenry)
  • 8f47cd0 linter/react: Remove regex patterns in no-unknown-property (#6536) (camchenry)

Documentation

  • 557f941 linter: Add docs to no-unused-vars and Tester (#6558) (DonIsaac)

Refactor

  • ecce5c5 linter: Improve recursive argument handling and diagnostics creation (#6513) (no-yan)
  • f960e9e linter: Add suggested file names for unicorn/filename-case (#6465) (camchenry)
  • 7240ee2 linter: Make advertised fix kinds consistent (#6461) (Alexander S.)
  • b48c368 linter: no_global_assign rule: reduce name lookups (#6460) (overlookmotel)
  • 2566ce7 linter: Remove OxlintOptions (#6098) (DonIsaac)
  • 002078a linter: Make Runtime's members private (#6440) (DonIsaac)
  • 6a0a533 linter: Move module cache logic out of Runtime (#6438) (DonIsaac)
  • c18c6e9 linter: Split service code into separate modules (#6437) (DonIsaac)
  • 5ea9ef7 linter: Improve labels and help message for eslint/no-useless-constructor (#6389) (DonIsaac)
  • 2c32dac linter/no-control-regex: Remove duplicate code (#6527) (DonIsaac)
  • 435a89c oxc: Remove useless allocator.alloc(program) calls (#6571) (Boshen)
  • f70e93b oxc: Ban index methods on std::str::Chars (#6075) (dalaoshu)

Testing

  • a6cae98 linter: Make sure all auto-fixing rules have fixer test (#6378) (DonIsaac)
  • 06b09b2 linter/no-unused-vars: Enable now-passing tests (#6556) (DonIsaac)
  • badd11c linter/no-unused-vars: Ignored catch parameters (#6555) (DonIsaac)
  • 84aa2a2 linter/no-useless-constructor: Add cases for initializers in subclass constructors (#6390) (DonIsaac)

[0.9.10] - 2024-10-07

  • 5a73a66 regular_expression: [BREAKING] Simplify public APIs (#6262) (leaysgur)

Features

  • 376cc09 linter: Implement no-throw-literal (#6144) (dalaoshu)
  • 5957214 linter: Allow fixing in files with source offsets (#6197) (camchenry)
  • a089e19 linter: Eslint/no-else-return (#4305) (yoho)
  • 183739f linter: Implement prefer-await-to-callbacks (#6153) (dalaoshu)
  • ae539af linter: Implement no-return-assign (#6108) (Radu Baston)

Bug Fixes

  • 9e9808b linter: Fix regression when parsing ts in vue files (#6336) (Boshen)
  • 93c6db6 linter: Improve docs and diagnostics message for no-else-return (#6327) (DonIsaac)
  • e0a3378 linter: Correct false positive in unicorn/prefer-string-replace-all (#6263) (H11)
  • ea28ee9 linter: Improve the fixer of prefer-namespace-keyword (#6230) (dalaoshu)
  • f6a3450 linter: Get correct source offsets for astro files (#6196) (camchenry)
  • be0030c linter: Allow whitespace control characters in no-control-regex (#6140) (camchenry)
  • e7e8ead linter: False positive in no-return-assign (#6128) (DonIsaac)

Performance

  • ac0a82a linter: Reuse allocator when there are multiple source texts (#6337) (Boshen)
  • 50a0029 linter: Do not concat vec in no-useless-length-check (#6276) (camchenry)

Documentation

  • 7ca70dd linter: Add docs for ContextHost and LintContext (#6272) (camchenry)
  • a949ecb linter: Improve docs for eslint/getter-return (#6229) (DonIsaac)
  • 14ba263 linter: Improve docs for eslint-plugin-import rules (#6131) (dalaoshu)

Refactor

  • 642725c linter: Rename vars from ast_node_id to node_id (#6305) (overlookmotel)
  • 8413175 linter: Move shared function from utils to rule (#6127) (dalaoshu)
  • ba9c372 linter: Make jest/vitest rule mapping more clear (#6273) (camchenry)
  • 82b8f21 linter: Add schemars and serde traits to AllowWarnDeny and RuleCategories (#6119) (DonIsaac)
  • ea908f7 linter: Consolidate file loading logic (#6130) (DonIsaac)
  • db751f0 linter: Use regexp AST visitor in no-control-regex (#6129) (camchenry)
  • 3aa7e42 linter: Use RegExp AST visitor for no-hex-escape (#6117) (camchenry)
  • 9d5b44a linter: Use regex visitor in no-regex-spaces (#6063) (camchenry)
  • 0d44cf7 linter: Use regex visitor in no-useless-escape (#6062) (camchenry)
  • eeb8873 linter: Use regex visitor in no-empty-character-class (#6058) (camchenry)

Testing

  • d883562 linter: Invalid eslint/no-unused-vars options (#6228) (DonIsaac)

[0.9.9] - 2024-09-27

Bug Fixes

  • bd8f786 linter: Rule and generic filters do not re-configure existing rules (#6087) (DonIsaac)
  • c5cdb4c linter: Disable all rules in a plugin when that plugin gets turned off (#6086) (DonIsaac)
  • 6c855af linter: Only write fix results if source code has changed (#6096) (DonIsaac)
  • 8759528 linter: Category filters not re-configuring already-enabled rules (#6085) (DonIsaac)
  • c2616f7 linter: Fix panic in fixer for oxc/only-used-in-recursion (#6070) (camc314)
  • 3da3845 linter: Malformed snippets in eslint/for-direction docs (#6060) (DonIsaac)
  • c047d42 linter: no-useless-escape: do not crash on backslash character (#6048) (camchenry)
  • 6f76ebe linter: Ignore invalid or partial disable directives (#6045) (camchenry)
  • 09a24cd linter: Fix false positives for generics in no-unexpected-multiline (#6039) (camchenry)
  • d05fd20 linter: Newline in type parameters causing false positive in no-unexpected-multiline (#6031) (DonIsaac)

Performance

  • f8464a3 linter: no-magic-numbers remove redudant checks in is_array_index (#6033) (Alexander S.)
  • c16ae60 linter: jest/prefer-hooks-in-order: rewrite rule to allocate less and iterate fewer times (#6030) (camchenry)

Documentation

  • a4fdf1b linter: Improve docs for promise rules (#6051) (dalaoshu)
  • 21cdb78 linter: Fix incorrect "bad" example in only-used-in-recursion (#6029) (Boshen)

Refactor

  • 1f92d61 linter: jest/prefer-hooks-in-order: improve diagnostic messages (#6036) (camchenry)

Testing

  • 55949eb linter: Add OxlintRules::override_rules tests (#6081) (DonIsaac)
  • 1a6923a linter: Add filter parsing test cases (#6080) (DonIsaac)
  • 58d333a linter: Add more test cases for disable directives (#6047) (camchenry)

[0.9.8] - 2024-09-24

Bug Fixes

  • e3c8a12 linter: Fix panic in sort-keys (#6017) (Boshen)
  • 4771492 linter: Fix import/no_cycle with ignoreTypes (#5995) (Boshen)

Performance

  • 5ae3f36 linter: no-fallthrough: Use string matching instead of Regex for default comment pattern (#6008) (camchenry)
  • 2b17003 linter, prettier, diagnostics: Use FxHashMap instead of std::collections::HashMap (#5993) (camchenry)

[0.9.7] - 2024-09-23

Features

  • d24985e linter: Add oxc-security/api-keys (#5906) (DonIsaac)
  • f9b44c5 linter: Add unicode sets support to no-useless-escape rule (#5974) (camchenry)
  • 0f19848 linter: Implement no-unexpected-multiline rule (#5911) (camchenry)
  • 16fe383 linter: Implement no-extend-native rule (#5867) (Cam McHenry)

Bug Fixes

  • eed9ac7 linter: Include actual span size in no-regex-spaces diagnostic (#5957) (camchenry)
  • 40c89c2 linter: Move promise/avoid-new to style category (#5961) (DonIsaac)

Performance

  • 608d637 linter: Use aho-corasick instead of regex for string matching in jsx-a11y/img-redundant-alt (#5892) (camchenry)
  • 3148d4b linter: Check file path after checking node kind for nextjs/no-head-element (#5868) (Cam McHenry)

Refactor

  • 0a5a4a9 linter: Use parsed patterns for unicorn/no-hex-escape (#5985) (camchenry)
  • 2cf2edd linter: Use parsed patterns in no-empty-character-class rule (#5980) (camchenry)
  • a9a8e2a linter: Use regex parser in eslint/no-regex-spaces (#5952) (camchenry)
  • 05f592b linter: Use parsed patterns in unicorn/prefer-string-starts-ends-with (#5949) (camchenry)
  • 3273b64 linter: Use parsed patterns for unicorn/prefer-string-replace-all rule (#5943) (camchenry)
  • ba7b01f linter: Add LinterBuilder (#5714) (DonIsaac)
  • db4f16a semantic: Call with_trivias before build_with_jsdoc (#5875) (Boshen)
  • 3d13c6d semantic: Impl IntoIterator for &AstNodes (#5873) (DonIsaac)

Testing

  • b681c9a linter: Import test cases for no-empty-character-class (#5981) (camchenry)
  • 767602b linter: Add regression test for #5227 (#5975) (camchenry)

[0.9.6] - 2024-09-18

Features

  • 3bf7b24 linter: Make typescript/no-duplicate-enum-values a correctness rule (#5810) (DonIsaac)
  • 7799c06 linter/react: Implement no-danger-with-children rule (#5420) (Cam McHenry)

Bug Fixes

  • f942485 linter: Remove all* remaining "Disallow " messages (#5812) (DonIsaac)
  • b5ad518 linter: Improve diagnostic messages for various lint rules (#5808) (DonIsaac)
  • 858f7af linter: Plugin prefix name for eslint-plugin-node (#5807) (DonIsaac)
  • 737ba1d linter: Fix some cases on AssignmentExpression for unicorn/consistent-function-scoping (#5675) (Arian94)
  • 148c7a8 linter: Replace bitwise AND (&) with logical AND (&&) in explici… (#5780) (kaykdm)
  • b4ed564 linter/no-unused-vars: Writes to members triggering false positive (#5744) (Dunqing)
  • e9c084a linter/no-unused-vars: False positive when a variable used as a computed member property (#5722) (Dunqing)

Performance

  • 3725d5d linter: Make all rules share a diagnostics vec (#5806) (DonIsaac)
  • e978567 linter: Shrink size of DisableDirectives (#5798) (DonIsaac)
  • 1bfa515 linter: Remove redundant clone of diagnostics in context (#5797) (DonIsaac)
  • e413cad linter: Move shared context info to ContextHost (#5795) (DonIsaac)

Refactor

  • 6dd6f7c ast: Change Comment struct (#5783) (Boshen)
  • 7caae5b codegen: Add GetSpan requirement to Gen trait (#5772) (Boshen)
  • 026ee6a linter: Decouple module resolution from import plugin (#5829) (dalaoshu)
  • 50834bc linter: Move override_rule to OxlintRules (#5708) (DonIsaac)
  • a438743 linter: Move OxlintConfig to Oxlintrc (#5707) (DonIsaac)
  • f61e8b5 linter: Impl serde and schemars traits for LintPlugins (#5706) (DonIsaac)
  • 20a7861 linter: Shorten Option syntax (#5735) (overlookmotel)
  • d8b612c oxc_linter: Prefer pass Enum instead of str no_plus_plus (#5730) (IWANABETHATGUY)
  • cc0408b semantic: S/AstNodeId/NodeId (#5740) (Boshen)

[0.9.5] - 2024-09-12

Features

  • 4b04f65 linter: Implement no-plusplus rule (#5570) (Cam McHenry)

[0.9.4] - 2024-09-12

  • 1fa3e56 semantic: [BREAKING] Rename SymbolTable::iter to symbol_ids (#5621) (overlookmotel)

  • 4a8aec1 span: [BREAKING] Change SourceType::js to SourceType::cjs and SourceType::mjs (#5606) (Boshen)

Features

  • 9ca2593 linter: Eslint/sort-keys (#4845) (Na'aman Hirschfeld)
  • 023c160 linter: Impl Serialize for OxlintConfig (#5594) (DonIsaac)
  • 24d6a47 linter: Implement eslint/no-invalid-regexp (#5443) (Boshen)
  • c6bbf94 minifier: Constant fold unary expression (#5669) (Boshen)

Bug Fixes

  • af6d240 linter: Panic in consistent-function-scoping (#5613) (DonIsaac)
  • 54e2e76 linter: react/no_set_state + react/no_string_refs rules find correct parent (#5615) (overlookmotel)
  • 3b87ac4 linter: Fix no_unused_vars panic when encountering unicode (#5582) (Boshen)

Performance

  • bfe9186 linter: Use cow_replace instead of replace (#5643) (dalaoshu)
  • e3ae5db linter: Use cow_to_ascii_lowercase/uppercase (#5637) (heygsc)
  • a0370bf linter: Use cow_utils in no_script_url (#5633) (heygsc)
  • 37e922c linter: eslint/no_shadow_restricted_names use run_on_symbol (#5618) (overlookmotel)
  • 0b7fccf linter: react/no_set_state + react/no_string_refs rules reduce iteration over ancestors (#5616) (overlookmotel)
  • 2c3f3fe linter: Make jsx_key slightly faster (#5585) (Boshen)
  • cd81d12 linter: Add should_run to check path only once to nextjs/no_typos (#5584) (Boshen)
  • d18c896 rust: Use cow_utils instead (#5664) (dalaoshu)

Documentation

  • 64f9575 linter: Add plugin usage to example with configuration (Boshen)
  • 8c9179d linter: Fix typos (#5591) (Brian Donovan)

Refactor

  • 9e9435f linter: Add LintFilter (#5685) (DonIsaac)
  • 4f70fe5 linter: Start internal/external split of LintPluginOptions (#5660) (DonIsaac)
  • 5ae9b48 linter: Start internal/external split of OxlintOptions (#5659) (DonIsaac)
  • c8bc6f0 linter: Use std::ptr::eq (#5649) (overlookmotel)
  • a37c064 linter: Use ContentHash for no_duplicate_case; remove calculate_hash (#5648) (Boshen)
  • 0b3c1d7 linter: Start internal/external split of OxlintConfig (#5595) (DonIsaac)
  • 89bdf55 linter: Inline Rule trait default methods (#5619) (overlookmotel)
  • afea8d5 linter: Rename Rule trait method params (#5617) (overlookmotel)
  • 4e748b5 linter: Replace ast "compare by hash" to "compare by content" (#5602) (dalaoshu)
  • bac03e3 linter: Make fields of LintServiceOptions private (#5593) (DonIsaac)
  • 2661d8b linter: Jest prefer_strict_equal (#5588) (IWANABETHATGUY)
  • 067f9b5 semantic: Introduce IsGlobalReference trait (#5672) (Boshen)- 26d9235 Enable clippy::ref_as_ptr (#5577) (夕舞八弦)

Testing

  • 8e79f8d linter: Add class method test cases for oxc/no-async-await (#5550) (DonIsaac)
  • 3835189 linter: Add test case for no_unused_vars in 3b87ac4 (Boshen)
  • 5f27551 linter: Add a passing case to no_undef (#5580) (Boshen)

[0.9.3] - 2024-09-07

  • b060525 semantic: [BREAKING] Remove source_type argument from SemanticBuilder::new (#5553) (Boshen)

  • cba93f5 ast: [BREAKING] Add ThisExpression variants to JSXElementName and JSXMemberExpressionObject (#5466) (overlookmotel)

  • 87c5df2 ast: [BREAKING] Rename Expression::without_parentheses (#5448) (overlookmotel)

  • 1aa49af ast: [BREAKING] Remove JSXMemberExpressionObject::Identifier variant (#5358) (Dunqing)

Features

  • 90facd3 ast: Add ContentHash trait; remove noop Hash implementation from Span (#5451) (rzvxa)
  • 59abf27 ast, parser: Add oxc_regular_expression types to the parser and AST. (#5256) (rzvxa)
  • be3a432 linter: Implement typescript/no-magic-numbers (#4745) (Alexander S.)
  • 09aa86d linter/eslint: Implement sort-vars rule (#5430) (Jelle van der Waa)
  • 2ec2f7d linter/eslint: Implement no-alert (#5535) (Edwin Lim)
  • a786acf linter/import: Add no-dynamic-require rule (#5389) (Jelle van der Waa)
  • 4473779 linter/node: Implement no-exports-assign (#5370) (dalaoshu)
  • b846432 linter/oxc: Add fixer for erasing-op (#5377) (camc314)
  • aff2c71 linter/react: Implement self-closing-comp (#5415) (Jelle van der Waa)

Bug Fixes

  • 0df1d9d ast, codegen, linter: Panics in fixers. (#5431) (rzvxa)
  • cdd1a91 linter: Typescript/no-magic-numbers: remove double minus for reporting negative bigint numbers (#5565) (Alexander S.)
  • ff88c1f linter: Don't mark binding rest elements as unused in TS function overloads (#5470) (Cam McHenry)
  • 088733b linter: Handle loops in getter-return rule (#5517) (Cam McHenry)
  • 82c0a16 linter: tree_shaking/no_side_effects_in_initialization handle JSX correctly (#5450) (overlookmotel)
  • 6285a02 linter: eslint/radix rule correctly check for unbound symbols (#5446) (overlookmotel)
  • c8ab353 linter/tree-shaking: Align JSXMemberExpression's report (#5548) (mysteryven)
  • 5187f38 linter/tree-shaking: Detect the correct export symbol resolution (#5467) (mysteryven)

Performance

  • 8170954 linter/react: Add should_run conditions for react rules (#5402) (Jelle van der Waa)

Documentation

  • a540215 linter: Update docs Examples for linter rules (#5513) (dalaoshu)
  • 7414190 linter: Update docs Example for linter rules (#5479) (heygsc)

Refactor

  • 0ac420d linter: Use meaningful names for diagnostic parameters (#5564) (Don Isaac)
  • 81a394d linter: Deduplicate code in oxc/no-async-await (#5549) (DonIsaac)
  • 979c16c linter: Reduce nested if statements in eslint/no_this_before_super (#5485) (IWANABETHATGUY)
  • 1d3e973 linter: Simplify eslint/radix rule (#5445) (overlookmotel)
  • fdb8857 linter: Use "parsed pattern" in no_div_regex rule. (#5417) (rzvxa)
  • 2ccbd93 linter: react/jsx_no_undef rule get_member_ident do not return Option (#5411) (overlookmotel)

Styling

  • 2a43fa4 linter: Introduce the writing style from PR #5491 and reduce the if nesting (#5512) (dalaoshu)- d8b29e7 Add trailing line breaks to JSON files (#5544) (overlookmotel)- 694f032 Add trailing line breaks to package.json files (#5542) (overlookmotel)

Testing

  • 340b535 linter/no-unused-vars: Arrow functions in tagged templates (#5510) (Don Isaac)
  • af69393 linter/no-useless-spread: Ensure spreads on identifiers pass (#5561) (DonIsaac)- dc92489 Add trailing line breaks to conformance fixtures (#5541) (overlookmotel)

[0.9.2] - 2024-09-02

  • 32f7300 ast: [BREAKING] Add JSXElementName::IdentifierReference and JSXMemberExpressionObject::IdentifierReference (#5223) (Dunqing)

Features

  • 180b1a1 ast: Add Function::name() (#5361) (DonIsaac)
  • f81e8a1 linter: Add oxc/no-async-endpoint-handlers (#5364) (DonIsaac)
  • b103737 linter: Improve no-accumulating-spread (#5302) (camc314)
  • 9c22ce9 linter: Add hyperlinks to diagnostic messages (#5318) (DonIsaac)
  • 1967c67 linter/eslint: Implement no-new-func (#5360) (dalaoshu)
  • b867e5f linter/eslint-plugin-promise: Implement catch-or-return (#5121) (Jelle van der Waa)
  • 8d781e7 linter/oxc: Differentiate between array/object in no-accumulating-spread loop diagnostic (#5375) (camc314)
  • db55444 linter/oxc: Add fixer for double-comparisons (#5378) (camc314)
  • e5c755a linter/promise: Add spec-only rule (#5124) (Jelle van der Waa)
  • 4c0861f linter/unicorn: Add fixer for prefer-type-error (#5311) (camc314)
  • 084c2d1 linter/vitest: Implement prefer-to-be-object (#5321) (dalaoshu)

Bug Fixes

  • 11b93af linter/unicorn: Consistent-function-scoping false positive on assignment expression (#5312) (Arian94)

Performance

  • f052a6d linter: react/jsx_no_undef faster check for unbound references (#5349) (overlookmotel)
  • 05636b7 linter: Avoid unnecessary work in jsx_a11y/anchor_is_valid rule (#5341) (overlookmotel)

Refactor

  • afb038e linter: react/jsx_no_undef use loop instead of recursion (#5347) (overlookmotel)
  • fe62687 linter: Simplify skipping JSX elements in unicorn/consistent_function_scoping (#5351) (overlookmotel)
  • 381d9fe linter: Shorten code in react/jsx_no_useless_fragment (#5350) (overlookmotel)
  • 83b9a82 linter: Fix indentation in nextjs/no_script_component_in_head rule (#5338) (overlookmotel)
  • 89f0188 linter: Improve docs for react/jsx_no_target_blank rule (#5342) (overlookmotel)
  • 57050ab linter: Shorten code in jsx_a11y/aria_activedescendant_has_tabindex rule (#5340) (overlookmotel)
  • ed31d67 linter/jest: Fix indentation in code comment (#5372) (camc314)
  • 2499cb9 linter/oxc: Update rule docs for erasing-op (#5376) (camc314)
  • 69493d2 linter/oxc: Improve diagnostic for no-accumulating-spread in loops (#5374) (camc314)
  • 024b585 linter/oxc: Improve code comment for no-accumulating-spread (#5373) (camc314)
  • 3ae94b8 semantic: Change build_module_record to accept &Path instead of PathBuf (Boshen)

[0.9.1] - 2024-08-29

  • 234a24c ast: [BREAKING] Merge UsingDeclaration into VariableDeclaration (#5270) (Kevin Deng 三咲智子)

Features

  • 6633972 linter: Add fixer for no-empty (#5276) (camc314)
  • a58e448 linter/eslint: Add fixer to no-var (#5144) (camc314)
  • a6e9769 linter/jsx-a11y: Add label-has-associated-control (#5163) (Billy Levin)
  • c8e8532 linter/unicorn: Add fixer to throw-new-error (#5275) (camc314)
  • 7ccde4b linter/unicorn: Add fixer to prefer-date-now (#5147) (camc314)

Bug Fixes

  • 76e86f8 linter: Eslint-plugin-unicorn prefer-spread wrong linter suggestion on variables of type string (#5265) (Arian94)
  • b39544e linter/jest: Fixer for prefer-jest-mocked creates invalid LHS expressions (#5243) (camc314)
  • 9953fa5 linter/no-null: Incorrect fixer for NullLiteral within ReturnStatement (#5247) (Dunqing)
  • 318479e linter/no-unused-vars: Mark the class/function in the new expression as used (#5306) (magic-akari)

Refactor

  • fa1d460 linter: Clean up Fixer and Message (#5308) (DonIsaac)

[0.9.0] - 2024-08-26

  • 5946748 linter: [BREAKING] Parse and display syntax errors for regular expressions (#5214) (Boshen)

  • b894d3b linter: [BREAKING] Make no-unused-vars correctness (#5081) (DonIsaac)

Features

  • 1ce9630 linter/config: Implement FromIterator for LintPluginOptions (#5102) (DonIsaac)
  • 34bfaf6 linter/react: Add fixer to jsx-props-no-spread-multi (#5145) (camc314)
  • 982bd6e linter/unicorn: Add fixer to require-array-join-separator (#5152) (camc314)
  • a6704bd linter/unicorn: Add fixer to prefer-set-size (#5149) (camc314)
  • ac7edcc linter/unicorn: Add fixer to prefer-array-some (#5153) (camc314)
  • 1d01aa3 linter/unicorn: Add partial fixer for prefer-array-flat (#5143) (camc314)
  • 22d57f9 linter/unicorn: Add fixer to prefer-string-slice (#5150) (Cameron)
  • 2fe4415 linter/unicorn: Add fixer to no-redundant-roles (#5146) (Cameron)
  • d35c6f5 linter/unicorn: Add fixer to prefer-regexp-test (#5151) (Cameron)
  • 27db769 linter/unicorn: Add fixer to text-encoding-identifier-case (#5154) (Cameron)
  • f7958c4 linter/unicorn: Add prefer-structured-clone (#5095) (Jelle van der Waa)
  • 004ffa0 linter/vitest: Implement prefer-each (#5203) (dalaoshu)

Bug Fixes

  • aaaf26c linter: Error in fixer for prefer-to-have-length (#5197) (dalaoshu)
  • 1f5b6b6 linter: Bug in fixer for prefer-to-have-length (#5164) (dalaoshu)
  • 7eb052e linter: no-hex-escape fixer removing regex flags (#5137) (Cameron)
  • 76c66b4 linter/max-lines: Point span to end of file for disable directive to work (#5117) (Boshen)
  • 8ff6f2c linter/no-unused-vars: Panic on UsingDeclarations (#5206) (DonIsaac)
  • d29042e linter/no-unused-vars: Function expression in implicit arrow function return (#5155) (DonIsaac)
  • 36e4a28 linter/no-unused-vars: Panic in variable declarator usage checks (#5160) (DonIsaac)
  • ba62a71 linter/react: Fixed false positive with missing key inside React.Children.toArray() for fragments (#5133) (Earl Chase)
  • fd1031a linter/unicorn: Breaking fixer in case statements for no-null (#5176) (DonIsaac)
  • 7b86ed6 linter/unicorn: Handle type casts and parens in no-null (#5175) (Don Isaac)
  • b629e16 linter/unicorn: Improve diagnostic message for no-null (#5172) (DonIsaac)

Performance

  • ce454cf Use simdutf8 to validate UTF-8 when reading files (#5196) (dalaoshu)

Refactor

  • 543cad6 codegen: Remove some pub APIs (Boshen)
  • 0d3661a linter: Remove meaningless span0 (#5209) (dalaoshu)
  • 2a91ef1 linter: eslint/no_redeclare rule use run_on_symbol not run_once (#5201) (overlookmotel)
  • 33599b0 linter: Split options into multiple files (#5101) (DonIsaac)
  • 7ab6152 linter/unicorn: Clean up no-null (#5174) (DonIsaac)

Testing

  • a877e5a linter/no-unused-vars: Ensure type annotations on property accessors are considered used (#5183) (DonIsaac)
  • 7886618 linter/unicorn: Add fixer tests for no-null (#5173) (DonIsaac)

[0.8.0] - 2024-08-23

  • 5f4c9ab semantic: [BREAKING] Rename SymbolTable::get_flag to get_flags (#5030) (overlookmotel)

  • ce4d469 codegen: [BREAKING] Remove const generic MINIFY (#5001) (Boshen)

  • b2ff2df parser: [BREAKING] Remove builder pattern from Parser struct (#5000) (Boshen)

  • f88970b ast: [BREAKING] Change order of fields in CallExpression (#4859) (Burlin)

Features

  • 2292606 linter: Typescript-eslint/no-wrapper-object-types (#5022) (camc314)
  • a0effab linter: Support more flexible config.globals values (#4990) (Don Isaac)
  • cdbfcfb linter: Start import fixer for eslint/no-unused-vars (#4849) (DonIsaac)
  • 915cb4d linter: Add dangerous fixer for oxc only used in recursion (#4805) (camc314)
  • 3f28c77 linter/eslint: Improve no-dupe-keys (#4943) (DonIsaac)
  • e1582a5 linter/eslint: Improve no-duplicate-case rule (#4942) (DonIsaac)
  • f1e4611 linter/eslint-plugin-vitest: Implement no-conditional-in-test (#4971) (dalaoshu)
  • 14bf5d5 linter/eslint-plugin-vitest: Implement no-restricted-vi-methods (#4956) (dalaoshu)
  • ed9a1c4 linter/eslint-plugin-vitest: Implement require-local-test-context-for-concurrent-snapshots (#4951) (dalaoshu)
  • 7859f58 linter/eslint-plugin-vitest: Implement no-conditional-tests (#4955) (dalaoshu)
  • 841174f linter/no-unused-vars: Delete non-root arrows, skip await (#5083) (Don Isaac)

Bug Fixes

  • 86d0c0c linter: Change consistent-function-scoping to suspicious (#5010) (DonIsaac)
  • 7b99386 linter: Missing closing ticks in some example blocks (#4994) (DonIsaac)
  • 9c64b12 linter: Improve no-zero-fractions rule for member expressions and scientific notation (#4793) (Burlin)
  • c43945c linter/consistent-function-scoping: Allow functions passed as arguments (#5011) (Don Isaac)
  • 9354779 linter/no-unused-vars: Give argsIgnorePattern the same default behavior as varsIgnorePattern (#5018) (DonIsaac)
  • 5a55dcf linter/no-unused-vars: type specifier not deleted for type imports (#5029) (DonIsaac)
  • 4081293 linter/no-unused-vars: Panic in fixer when removing destructures (#4923) (Don Isaac)
  • ddf83ff linter/react: Fixed false positive with missing key inside React.Children.toArray() (#4945) (Earl Chase)
  • 508644a linter/tree-shaking: Correct the calculation of >>, << and >>> (#4932) (mysteryven)
  • e99836d linter/unicorn: Allow set spreading in no-useless-spread (#4944) (Don Isaac)
  • 5f8a7c2 oxlint: Rules in the configuration file are not being correctly … (#4949) (dalaoshu)

Documentation

  • e331ca0 linter: Improve documentation for several rules (#4997) (DonIsaac)
  • cd9f1cd linter/consistent-function-scoping: Improve rule documentation (#5015) (DonIsaac)

Refactor

  • eca6fdb linter: Move plugin options into separate struct (#5100) (DonIsaac)
  • 06f2d81 linter: Avoid unnecessary temp Vecs (#4963) (overlookmotel)
  • 4cb8c37 linter: Move default_true to utils (#4947) (Don Isaac)
  • ca70cc7 linter, mangler, parser, semantic, transformer, traverse, wasm: Rename various flag vars to flags (#5028) (overlookmotel)
  • 59d15c7 semantic: root_unresolved_references contain only ReferenceId (#4959) (overlookmotel)

Testing

  • c21d735 linter/no-unused-vars: Add ignored destructuring test cases (#4922) (Don Isaac)

[0.7.2] - 2024-08-15

Features

  • 97e38cd linter: Add fixer for unicorn/prefer-optional-catch-binding (#4867) (heygsc)
  • 93ae1c7 linter: Eslint-plugin-react jsx-props-no-spread-multi (#4866) (keita hino)
  • 0a23610 linter: Add fixer for unicorn/prefer-array-flat-map (#4844) (heygsc)
  • 13c7b1b linter/jsx-a11y: Add fixer for aria-unsupported-elements (#4854) (DonIsaac)
  • a6195a6 linter/jsx-a11y: Add fixer for anchor-has-content (#4852) (DonIsaac)
  • 4d28d03 task/website: Support render subschemas.all_of (#4800) (mysteryven)

Bug Fixes

  • 21f5762 codegen: Minify large numbers (#4889) (Boshen)
  • a08d7a7 linter/jsx-a11y: Reduce false negatives for html-has-lang (#4855) (DonIsaac)
  • a81ce3a linter/no-unused-vars: Do not delete function expressions when fixing (#4848) (DonIsaac)

Refactor

  • 56f033c linter: Improve diagnostics for several jsx-a11y rules (#4853) (DonIsaac)
  • c53c210 linter/no-unused-vars: Split fixer logic into multiple files (#4847) (DonIsaac)

[0.7.1] - 2024-08-12

Features

  • 3d40528 linter: Add fix emoji to rules table and doc pages (#4715) (DonIsaac)
  • d2734f3 linter: Start fixer for no-unused-vars (#4718) (DonIsaac)
  • 070ae53 linter: Add fixer for unicorn prefer-string-replace-all (#4801) (camc314)
  • b3c3125 linter: Overhaul unicorn/no-useless-spread (#4791) (DonIsaac)
  • 5992b75 linter: Implement eslint-plugin-promise/no-return-in-finally, prefer-await-to-then rule (#4318) (Jelle van der Waa)
  • b259f47 linter: Add fixer for unicorn/no-length-as-slice-end (#4780) (heygsc)
  • abd83fa linter: Add fixer for jsx_ally/no_aria_hidden_on_focusable (#4772) (heygsc)
  • b20e335 linter: Add fixer for eslint/no-eq-null (#4758) (heygsc)
  • 2f6c3b9 linter: Add fixer for eslint/no-compare-neg-zero (#4748) (heygsc)
  • eaddc8f linter: Add fixer for eslint/func_names (#4714) (DonIsaac)
  • 80557a9 linter: Add fixer for eslint/for-direction (#4679) (heygsc)
  • c3c5766 linter/eslint-plugin-promise: Implement valid-params (#4598) (Jelle van der Waa)
  • c509a21 linter/eslint-plugin-vitest: Implement prefer-to-be-falsy (#4770) (dalaoshu)
  • 41f861f linter/eslint-plugin-vitest: Implement prefer-to-be-truthy (#4755) (dalaoshu)
  • cc922f4 vscode: Provide config's schema to oxlint config files (#4826) (Don Isaac)
  • f629514 website: Auto-generate rule docs pages (#4640) (DonIsaac)

Bug Fixes

  • b22ed45 linter: Improve prefer_namespace_keyword rule (#4751) (Burlin)
  • db68a6c linter: Fixer for eslint/for-direction (#4727) (heygsc)
  • 6273994 linter: Block in eslint/no_cond_assign (#4721) (heygsc)
  • b9d6aa5 linter: Fix false positives in no-confusing-non-null-assertion (#4665) (Renée)
  • cbf08d2 linter: Skip no-multi-str on jsx attributes (#4666) (heygsc)
  • a6f9f96 linter: No unused errors should be warnings (Boshen)
  • 7345bc9 linter/func-names: Handle ts accessibility when reporting missing names (#4713) (DonIsaac)

Performance

  • d191823 linter: Optmize allocations in jest fn parsing (#4787) (lucab)
  • e3abdfa linter: Reduce String allocations and clones (#4673) (DonIsaac)

Documentation

  • 4b7dfd6 linter: Correct docs for no-unused-vars (#4716) (Don Isaac)

Refactor

  • 096ac7b linter: Clean up jsx-a11y/anchor-is-valid (#4831) (DonIsaac)
  • 15a0fd4 linter: Use Option to reduce nested level in eslint/getter-return (#4814) (IWANABETHATGUY)
  • 63f274c linter: Simplify NoObjCalls resolution logic (#4765) (lucab)
  • 6708680 linter: Replace Windows-style line breaks with Unix-style in test fixture (#4768) (overlookmotel)
  • e285903 linter: Clean up eslint/func_names (#4710) (DonIsaac)

Testing

  • 8f2a566 linter: Ensure rule docs have valid syntax (#4644) (DonIsaac)
  • 4dd29db linter: Add fixer test for unicorn/no-zero-fractions (#4783) (heygsc)

[0.7.0] - 2024-08-05

  • 85a7cea semantic: [BREAKING] Remove name from reference (#4329) (Dunqing)

Features

  • aaee07e ast: Add AstKind::AssignmentTargetPattern, AstKind::ArrayAssignmentTarget and AstKind::ObjectAssignmentTarget (#4456) (Dunqing)
  • 9df7b56 jsx-a11y/no-autofocus: Implement fixer support (#4171) (Jelle van der Waa)
  • b87bf70 linter: Add fix capabilties to existing lint rules (#4560) (DonIsaac)
  • ddd8b27 linter: Support conditional fix capabilities (#4559) (DonIsaac)
  • b952942 linter: Add eslint/no-unused-vars ( attempt 3.2) (#4445) (DonIsaac)
  • 6543958 linter: Add auto-fix metadata to RuleMeta (#4557) (Don Isaac)
  • 85e8418 linter: Add react/jsx-curly-brace-presence (#3949) (Don Isaac)
  • 4c4da56 linter: Add typescript-eslint/prefer-keyword-namespce (#4438) (Aza Walker)
  • d8c2a83 linter: Eslint-plugin-vitest/no-import-node-test (#4440) (cinchen)
  • e3b0c40 linter: Eslint-plugin-vitest/no-identical-title (#4422) (cinchen)
  • c936782 linter: Eslint-plugin-vitest/no-conditional-expect (#4425) (cinchen)
  • 27fdd69 linter: Eslint-plugin-vitest/no-commented-out-tests (#4424) (cinchen)
  • 51f5025 linter: Add fixer for unicorn/prefer-string-starts-ends-with (#4378) (DonIsaac)
  • 3c0c709 linter: Add typescript-eslint/no-extraneous-class (#4357) (Jaden Rodriguez)
  • 7afa1f0 linter: Support suggestions and dangerous fixes (#4223) (DonIsaac)
  • acc5729 linter: Eslint-plugin-vitest/expect-expect (#4299) (cinchen)
  • 2213f93 linter: Eslint-plugin-vitest/no-alias-methods (#4301) (cinchen)
  • c296bc3 linter/eslint: Implement func-names (#4618) (Alexander S.)
  • e116ae0 linter/eslint: Implement fixer for prefer-numeric-literals (#4591) (Jelle van der Waa)
  • eaf834f linter/eslint: Implement prefer-numeric-literals (#4109) (Jelle van der Waa)
  • db2fd70 linter/eslint-plugin-promise: Implement no-webpack-loader-syntax (#4331) (Jelle van der Waa)
  • 5f1e070 linter/eslint-plugin-unicorn: Add fixer for prefer-code-point (#4353) (Jelle van der Waa)
  • ed49e16 linter/eslint-plugin-unicorn: Implement fixer for prefer-dom-node-append (#4306) (Jelle van der Waa)
  • e2b15ac linter/react: Implement react-jsx-boolean-value (#4613) (Jelle van der Waa)
  • 68efcd4 linter/react-perf: Handle new objects and arrays in prop assignment patterns (#4396) (DonIsaac)

Bug Fixes

  • 368112c ast: Remove #[visit(ignore)] from ExportDefaultDeclarationKind's TSInterfaceDeclaration (#4497) (Dunqing)
  • d384f60 ci: Remove unused(?) .html file (#4545) (Yuji Sugiura)
  • 06aec77 linter: Invalid binary expression with overflow (#4647) (DonIsaac)
  • b2da22b linter: Invalid tags in rule docs (#4646) (DonIsaac)
  • 94440ad linter: Panic on invalid lang in a11y/lang. (#4630) (rzvxa)
  • e0b03f8 linter: Improve the boundary for eslint/for-direction (#4590) (heygsc)
  • 70b8cfa linter: Missing return in no-obj-calls recursion (#4594) (DonIsaac)
  • fe1356d linter: Change no-unused-vars to nursery (#4588) (DonIsaac)
  • 72337b1 linter: Change typescript-eslint/no-namespace to restriction (#4539) (Don Isaac)
  • 289dc39 linter: Overflow in no-obj-calls (#4397) (DonIsaac)
  • a664715 linter/eslint: Fix invalid regexp in no_regex_spaces test (#4605) (Yuji Sugiura)
  • 74fa75a linter/eslint: Drop quotes around max-params lint warning (#4608) (Jelle van der Waa)
  • 9fcd9ae linter/eslint: Fix invalid regexp in no_control_regex test (#4544) (leaysgur)
  • ac08de8 linter/react_perf: Allow new objects, array, fns, etc in top scope (#4395) (DonIsaac)
  • 73d2558 oxlint: Fix oxlint failed to build due to missing feature (Boshen)

Performance

  • 6ff200d linter: Change react rules and utils to use Cow and CompactStr instead of String (#4603) (DonIsaac)
  • f259df0 linter: Make img-redundant-alt only build a regex once (#4604) (DonIsaac)
  • 7585e16 linter: Remove allocations for string comparisons (#4570) (DonIsaac)
  • b60bdf1 linter: no_shadow_restricted_names only look up name in hashmap once (#4472) (overlookmotel)
  • 81384f5 linter: Avoid unnecessary work in nextjs:no_duplicate_head rule (#4465) (overlookmotel)
  • f7da22d linter: Disable lint rules by file type (#4380) (DonIsaac)
  • 348c1ad semantic: Remove span field from Reference (#4464) (overlookmotel)
  • 6a9f4db semantic: Reduce storage size for symbol redeclarations (#4463) (overlookmotel)- a207923 Replace some CompactStr usages with Cows (#4377) (DonIsaac)

Refactor

  • 7a75e0f linter: Use diagnostic codes in lint rules (#4349) (DonIsaac)
  • ccb1835 semantic: Methods take Span as param, not &Span (#4470) (overlookmotel)
  • 7cd53f3 semantic: Var hoisting (#4379) (Dunqing)
  • c99b3eb syntax: Give ScopeId a niche (#4468) (overlookmotel)

[0.6.1] - 2024-07-17

Features

  • 83c2c62 codegen: Add option for choosing quotes; remove slow choose_quot method (#4219) (Boshen)
  • 1f8968a linter: Add eslint-plugin-promise rules: avoid-new, no-new-statics, params-names (#4293) (Jelle van der Waa)
  • a4dc56c linter: Add fixer for unicorn/no_useless_promise_resolve_reject (#4244) (Burlin)
  • 6fb808f linter: Add typescript-eslint/no-confusing-non-null-assertion (#4224) (Jaden Rodriguez)
  • 126b66c linter: Support eslint-plugin-vitest/valid-describe-callback (#4185) (cinchen)
  • 05b9a73 linter: Support eslint-plugin-vitest/valid-expect (#4183) (cinchen)
  • 3e56b2b linter: Support eslint-plugin-vitest/no-test-prefixes (#4182) (cinchen)
  • 3016f03 linter: Let fixer functions return a None fix (#4210) (DonIsaac)
  • bbe6137 linter: Implement unicorn/no-useless-undefined (#4079) (Burlin)
  • 20cdb1f semantic: Align class scope with typescript (#4195) (Dunqing)

Bug Fixes

  • 9df60da linter: Correct find first non whitespace logic in @typescript-eslint/consistent-type-imports (#4198) (mysteryven)
  • 67240dc linter: Not ignore adjacent spans when fixing (#4217) (mysteryven)
  • dd07a54 linter: Global variables should always check the builtin variables (#4209) (Jelle van der Waa)
  • 351ecf2 semantic: Incorrect resolve references for TSTypeQuery (#4310) (Dunqing)
  • 1108f2a semantic: Resolve references to the incorrect symbol (#4280) (Dunqing)

Performance

  • 0fdc88b linter: Optimize no-dupe-keys (#4292) (lucab)

Refactor

  • 2c7bb9f ast: Pass final ScopeFlags into visit_function (#4283) (overlookmotel)
  • aa22073 codegen: Improve print API (#4196) (Boshen)
  • b5a8f3c linter: Use get_first_parameter_name from unicorn utils (#4255) (Jelle van der Waa)
  • 7089a3d linter: Split up fixer code into separate files (#4222) (DonIsaac)
  • ace4f1f semantic: Update the order of visit_function and Visit fields in the builder to be consistent (#4248) (Dunqing)
  • 7f1addd semantic: Correct scope in CatchClause (#4192) (Dunqing)

[0.6.0] - 2024-07-11

  • 5731e39 ast: [BREAKING] Store span details inside comment struct (#4132) (Luca Bruno)

Features

  • fb549e1 linter: Add vitest/no-focused-tests rule (#4178) (mysteryven)
  • 6c49007 linter: Add fixer for @typescript-eslint/consistent-type-imports (#3984) (mysteryven)
  • 278c3e9 linter: Add fixer for jsx-a11y/aria-props (#4176) (DonIsaac)
  • 2188144 linter: Eslint-plugin-jest/prefer-hooks-in-order (#4052) (cinchen)
  • cc58614 linter: Better schemas for allow/warn/deny (#4150) (DonIsaac)
  • c5b4be0 linter: Add fixer for prefer-node-protocol (#4129) (DonIsaac)
  • 7ec0c0b linter/eslint: Implement no-label-var (#4087) (Jelle van der Waa)

Bug Fixes

  • ed4c54c eslint/radix: Detect yield Number.parseInt variant (#4110) (Jelle van der Waa)
  • e9ad03b linter: Fixer for no-debugger creates incorrect code (#4184) (DonIsaac)
  • bd69571 linter: Fix top level return panic in eslint/array_callback_return (#4167) (Boshen)
  • c8f5664 linter: Fix panic with unicode in unicorn/prefer_dom_node_dataset (#4166) (Boshen)
  • f2b3273 linter: Fix fixer panic in typescript/consistent_indexed_object_style (#4165) (Boshen)
  • 2334515 linter: Panic in get_enclosing_function (#4121) (DonIsaac)
  • 1b91d40 linter: Incorrect fixer for no-unused-labels (#4123) (Don Isaac)
  • 1729249 linter: Incorrect fix in no-single-promise-in-promise-methods rule; (#4094) (DonIsaac)
  • cc7e893 linter/tree-shaking: Avoid recursive function stackoverflow (#4191) (mysteryven)
  • 28eeee0 parser: Fix asi error diagnostic pointing at invalid text causing crash (#4163) (Boshen)
  • 0f02608 semantic: Bind TSImportEqualsDeclarations (#4100) (Don Isaac)

Performance

  • ddfa343 diagnostic: Use Cow<'static, str> over String (#4175) (DonIsaac)

Refactor

  • 2687ebc react: Use find_binding helper for finding React binding (#4108) (Jelle van der Waa)

[0.5.3] - 2024-07-07

Features

  • 1681b11 linter: Eslint-plugin-jest/consistent-test-it (#4053) (cinchen)
  • 6876490 linter: Add rule no-undefined (#4041) (jordan boyer)
  • bf04dee linter: Implement unicorn/no-negation-in-equality-check (#4034) (Nissim Chekroun)
  • aa45604 linter/eslint: Implement no-multi-str (#4038) (Jelle van der Waa)

Bug Fixes

  • 7b2dc3b linter: Fix panic in import/namespace (#4080) (Boshen)

[0.5.2] - 2024-07-02

Features

  • b257d53 linter: Support report @typescript-eslint/consistent-type-imports (#3895) (mysteryven)
  • 2114475 linter: Implement @typescript-eslint/no-dynamic-delete (#3971) (kaykdm)
  • 10a3c9a linter/eslint-plugin-react: Implement no-set-state (#3975) (Jelle van der Waa)

Bug Fixes

  • 432d6d9 linter: Find disabled directives using the message's Span. (#4010) (rzvxa)
  • dbbb6fc linter: Global variable check should always check builtin variables (#3973) (Boshen)

[0.5.1] - 2024-06-29

Features

  • f64ad4b semantic: Make jsdoc building optional (turned off by default) (#3955) (Boshen)

Bug Fixes

  • c26975a linter: Only show the filename for max-lines (#3966) (Boshen)
  • 94329e4 linter: Handle useful but empty constructors in no-useless-constructor (#3951) (DonIsaac)
  • 6498a08 linter: No-useless-spread fixer with multiple spread elements (#3950) (DonIsaac)

Refactor

  • 1cca2a8 eslint: Convert with_labels to with_label where applicable (#3946) (Jelle van der Waa)
  • 2705df9 linter: Improve diagnostic labeling (#3960) (DonIsaac)

[0.5.0] - 2024-06-27

  • 6796891 ast: [BREAKING] Rename all instances of BigintLiteral to BigIntLiteral. (#3898) (rzvxa)

  • ae09a97 ast: [BREAKING] Remove Modifiers from ts nodes (#3846) (Boshen)

  • 1af5ed3 ast: [BREAKING] Replace Modifiers with declare and const on EnumDeclaration (#3845) (Boshen)

  • ee6ec4e ast: [BREAKING] Replace Modifiers with declare and abstract on Class (#3841) (Boshen)

  • 4456034 ast: [BREAKING] Add IdentifierReference to ExportSpecifier (#3820) (Boshen)

  • 0537d29 cfg: [BREAKING] Move control flow to its own crate. (#3728) (rzvxa)

  • 5c38a0f codegen: [BREAKING] New code gen API (#3740) (Boshen)

  • 4bce59d semantic/cfg: [BREAKING] Re-export petgraph as control_flow::graph. (#3722) (rzvxa)

Features

  • 3ae2628 linter: Change no-import-assign to correctness (#3928) (Boshen)
  • a89d501 linter: Implement @typescript-eslint/no-non-null-asserted-nulli… (#3850) (kaykdm)
  • fc48cb4 linter: eslint-plugin-jest/prefer-jest-mocked (#3865) (cinchen)
  • 63b98bd linter: Accept multiple fixes when fix code (#3842) (mysteryven)
  • 328445b linter: Support vitest/no-disabled-tests (#3717) (mysteryven)
  • 8c61f9c linter: Implement @typescript-eslint/no-non-null-assertion (#3825) (kaykdm)
  • 080ecbd linter: Add no-fallthrough. (#3673) (rzvxa)
  • 9493fbe linter: Add oxc/no-optional-chaining rule (#3700) (mysteryven)
  • 139adfe linter: Add @typescript-eslint/no-import-type-side_effects (#3699) (mysteryven)
  • 5f84500 linter/eslint-plugin-react: Implement prefer-es6-class (#3812) (Jelle van der Waa)
  • fafe67c linter/import: Implement max-dependencies (#3814) (Jelle van der Waa)
  • d5f6aeb semantic: Check for illegal symbol modifiers (#3838) (Don Isaac)

Bug Fixes

  • 4bd2c88 linter: Fix and promote getter-return to correctness. (#3777) (rzvxa)
  • 1190dee linter: False positives with setters in the getter-return rule. (#3714) (rzvxa)
  • de0690f linter: Do not run getter-return in typescript (#3693) (Boshen)
  • cf71c23 linter: Edge case with infinite loops. (#3672) (rzvxa)
  • 99a40ce semantic: export default foo should have ExportLocalName::Default(NameSpan) entry (#3823) (Boshen)
  • abd6ac8 semantic/cfg: Discrete finalization path after NewFunctions. (#3671) (rzvxa)

Performance

  • 4f7ff7e Do not pass &Atom to functions (#3818) (overlookmotel)

Refactor

  • 4d2b7f1 linter: LintContext can now only be constructed with a cfg enabled semantic. (#3761) (rzvxa)
  • 7302429 linter/prefer_number_properties: Remove the unused IdentifierName check (#3822) (Boshen)
  • d8ad321 semantic: Make control flow generation optional. (#3737) (rzvxa)

Testing

  • 887da40 linter: Enable no-fallthrough test with disable-next-line. (#3766) (rzvxa)

[0.4.4] - 2024-06-14

Features

  • 8f5655d linter: Add eslint/no-useless-constructor (#3594) (Don Isaac)
  • 29c78db linter: Implement @typescript-eslint/explicit-function-return-type (#3455) (kaykdm)
  • 21d3425 linter: Typescript-eslint no-useless-empty-export (#3605) (keita hino)
  • 85c3b83 linter: Eslint-plugin-jest/max-nested-describes (#3585) (cinchen)
  • f6d9ca6 linter: Add eslint/sort-imports rule (#3568) (Wang Wenzhe)
  • 046ff3f linter/eslint: Add no_unreachable rule. (#3238) (rzvxa)
  • e32ce00 linter/jsdoc: Implement require-param-name rule (#3636) (Yuji Sugiura)
  • 110661c linter/jsdoc: Implement require-param-description (#3621) (Yuji Sugiura)
  • d6370f1 linter/jsdoc: Implement require-param-type rule (#3601) (Yuji Sugiura)
  • d9c5b33 semantic/cfg: Add Condition instruction. (#3567) (Ali Rezvani)
  • f2dfd66 semantic/cfg: Add iteration instructions. (#3566) (rzvxa)

Bug Fixes

  • f0b689d linter: Panic in jsdoc/require-param (#3590) (Don Isaac)
  • e148a32 semantic/cfg: Correct unreachability propagation in try-finally. (#3667) (Ali Rezvani)

Refactor

  • 84304b4 linter: Add a ctx.module_record() method (#3637) (Boshen)
  • f98f777 linter: Add rule fixer (#3589) (Don Isaac)
  • fa11644 linter: Pass Rc by value (#3587) (overlookmotel)
  • f702fb9 semantic/cfg: Cleanup control flow and it's builder. (#3650) (rzvxa)
  • 5793ff1 transformer: Replace &a Trivias with Rc<Trivias> (#3580) (Dunqing)

[0.4.3] - 2024-06-07

Features

  • 1fb9d23 linter: Add fixer for no-useless-fallback-in-spread rule (#3544) (Don Isaac)
  • 6506d08 linter: Add fixer for no-single-promise-in-promise-methods (#3531) (Don Isaac)
  • daf559f linter: Eslint-plugin-jest/no-large-snapshot (#3436) (cinchen)
  • 4c17bc6 linter: Eslint/no-constructor-return (#3321) (谭光志)
  • 4a075cc linter/jsdoc: Implement require-param rule (#3554) (Yuji Sugiura)
  • 747500a linter/jsdoc: Implement require-returns-type rule (#3458) (Yuji Sugiura)
  • 6b39654 linter/tree-shaking: Support options (#3504) (Wang Wenzhe)
  • 0cdb45a oxc_codegen: Preserve annotate comment (#3465) (IWANABETHATGUY)

Bug Fixes

  • b188778 linter/eslint: Fix require-await false positives in ForOfStatement. (#3457) (rzvxa)
  • 350cd91 parser: Should parser error when function declaration has no name (#3461) (Dunqing)

[0.4.2] - 2024-05-28

Features

  • 14ef4df lint/eslint: Implement require-await (#3406) (Todor Andonov)
  • e275659 linter: Add oxc/no-rest-spread-properties rule (#3432) (Wang Wenzhe)
  • 0d2c977 linter: Add oxc/no-const-enum rule (#3435) (Wang Wenzhe)
  • 085f917 linter: Add oxc/no-async-await rule (#3438) (Wang Wenzhe)
  • ded59bc linter: Eslint-plugin-jest/require-top-level-describe (#3439) (cinchen)
  • edaa555 linter: Eslint-plugin-jest/prefer-hooks-on-top (#3437) (cinchen)
  • aa26ce9 linter: @typescript-eslint/consistent-indexed-object-style (#3126) (Todor Andonov)
  • b589fd6 linter/eslint: Implement no-div-regex (#3442) (Jelle van der Waa)
  • 147864c linter/eslint: Implement no-useless-concat (#3363) (Jelle van der Waa)

Bug Fixes

  • 5e06298 linter: Memorize visited block id in neighbors_filtered_by_edge_weight (#3407) (mysteryven)
  • 74b06a7 linter: Accept more valid regex (#3408) (magic-akari)
  • 19bb1c0 website: Hack schemars to render code snippet in markdown (#3417) (Boshen)

Documentation

  • 5c7041b linter: Add docs for consistent-indexed-object-style (#3409) (Wang Wenzhe)

[0.4.0] - 2024-05-24

Features

  • e241136 cli,linter: Add --disable-oxc-plugin (#3328) (Boshen)
  • 8ab9856 cli,linter: Add --disable-react/unicorn/typescript-plugin (#3305) (Boshen)
  • ecdffcf linter: Temporary move react/require-render-return to nursery (Boshen)
  • b8997f5 linter: Eslint/no-restricted-globals (#3390) (mysteryven)
  • 79811ca linter: Change jsdoc/require-returns from correctness to pedantic (Boshen)
  • 8a1db67 linter: Change jsdoc/require-render-return from correctness to pedantic (Boshen)
  • fe208dd linter: Start adding json schema for configuration file (#3375) (Boshen)
  • aec613b linter: Eslint-plugin-jest/no-duplicate-hooks (#3358) (cinchen)
  • e4b3a3c linter: Backward compability for react-hooks and deepscan plugins (#3334) (Boshen)
  • 9744707 linter/eslint: Implement default_case rule (#3379) (Jelle van der Waa)
  • 74be8b1 linter/eslint: Implement no-new (#3368) (Jelle van der Waa)
  • c588e52 linter/eslint: Implement prefer-exponentiation-operator (#3365) (Jelle van der Waa)
  • 283d6c7 linter/eslint: Implement symbol-description (#3364) (Jelle van der Waa)
  • b6e2d62 linter/jsdoc: Implement require-returns-description (#3397) (Yuji Sugiura)
  • 3a5f088 linter/jsdoc: Implement require-returns rule (#3218) (Yuji Sugiura)
  • 3671b5c tasks/website: Code generate the linter rules (Boshen)
  • 57d2bca tasks/website: Start generating linter config markdown from json schema (#3386) (Boshen)
  • ead637b website: Generate linter configuration page (Boshen)

Bug Fixes

  • c664c6c linter: no-new false positive when return from arrow expression (#3393) (Boshen)
  • fbccd1f linter: Only report issues on top-level fragment (#3389) (Jovi De Croock)
  • a23bbf9 linter: Avoid infinite loop in jest/expect-expect (#3332) (mysteryven)
  • 385965f linter: Avoid infinite loop when traverse ancestors in jest/no_conditional_expect (#3330) (mysteryven)
  • 95e9b69 linter: Fix panic in jest/expect-expect (#3324) (Boshen)
  • 6c3d99a linter/jsx-no-undef: Check for globals when an identifier is undefined (#3331) (Boshen)
  • bb2221e linter/next: False positives for non-custom font link (#3383) (Dunqing)
  • 712ee0d linter/react: Fix false positives for async components in rules_of_hooks (#3307) (rzvxa)
  • 0864cd0 linter/react: Better detection for hooks in the rules_of_hooks. (#3306) (rzvxa)
  • 9594441 linter/react: rules_of_hooks add support for property hooks/components. (#3300) (rzvxa)
  • c8f1f79 linter/react: rules_of_hooks resolve false positives with conditional hooks. (#3299) (rzvxa)
  • d46538e linter/react: Fix loop hooks false positives. (#3297) (Ali Rezvani)

Performance

  • 8388c7b linter: Use usize for RuleEnum hash (#3336) (Boshen)

Refactor

  • c9d84af diagnostics: S/warning/warn (Boshen)
  • 5bf595d linter: Rename variable names prefix ESLint to Oxlint (Boshen)
  • d8c3187 linter: Remove unnecessary check in eslint/no-global-assign (#3391) (mysteryven)
  • d7849f8 linter: Find return statement by using CFG in react/require-render-return (#3353) (mysteryven)
  • 8383b6e linter: Remove with_rule_name from the tight loop (#3335) (Boshen)
  • 4f76cb6 linter: Merge deepscan rules into oxc rules (#3327) (Boshen)
  • 78e6326 semantic/cfg: Alias petgraph's NodeIndex as BasicBlockId. (#3380) (rzvxa)

[0.3.5] - 2024-05-15

Features

  • 5b2fc39 linter: Add use-isnan fixer for (in)equality operations (#3284) (Don Isaac)
  • 3644400 linter/eslint: Implement fixer for unicode-bom rule (#3259) (Jelle van der Waa)

Bug Fixes

  • e12323f linter/no-direct-mutation-state: False positive when class is declared inside a CallExpression (#3294) (Boshen)

Refactor

  • 6128171 linter: Rewrite react/require-render-return (#3276) (Wang Wenzhe)

[0.3.4] - 2024-05-13

Features

  • 6edcae8 linter: Move react/rules_of_hooks to nursery (Boshen)
  • 44b16ef linter/eslint: Implement max-classes-per-file (#3241) (Jelle van der Waa)

[0.3.3] - 2024-05-13

Features

  • c6874ad linter: Demote no-inner-declarations from correctness to pedantic (eslint v9) (Boshen)
  • 4ccc3ee linter: Demote react/jsx-no-useless-fragment from correctness to pedantic (Boshen)
  • d45b28a linter: Unicorn/no-anonymous-default-export (#3220) (1zumii)
  • 7113e85 linter: Add radix rule (#3167) (Kuba Jastrzębski)
  • fa0093b linter: Eslint-plugin-next/no-page-custom-font (#3185) (Dunqing)
  • 4defe37 linter: Remove deprecated eslint v9 rules no-return-await and no-mixed-operators (#3188) (Boshen)
  • ca9f13f linter: Eslint/no-new-native-nonconstructor (#3187) (Boshen)
  • 5514936 linter: Eslint-plugin-next/no-styled-jsx-in-document (#3184) (Dunqing)
  • cb2e651 linter: Eslint-plugin-next/no-duplicate-head (#3174) (Boshen)
  • 8244d2b linter/eslint: Implement unicode-bom rule (#3239) (Jelle van der Waa)
  • 5081652 linter/eslint: Implement no-empty-function rule (#3181) (Jelle van der Waa)
  • f88f330 linter/import: Improve multiple exports error message (#3160) (Dunqing)
  • 1f135ce linter/react: Add the rules_of_hooks rule. (#3071) (rzvxa)
  • c0abbbd linter/tree-shaking: Add isPureFunction (#3175) (Wang Wenzhe)

Bug Fixes

  • edb30e1 linter: Handle import { default as foo } in import/named (#3255) (Boshen)
  • 313fb83 linter/default: Ignore unsupported files (e.g. .vue) (Boshen)
  • 0ba7778 parser: Correctly parse cls.fn = x (#3208) (Dunqing)

Refactor

  • dbde5b3 diagnostics: Remove export of miette (Boshen)
  • 551632a diagnostics: Remove thiserror (Boshen)
  • 312f74b diagnostics: S/OxcDiagnostic::new/OxcDiagnostic::error (Boshen)
  • f7a3773 linter: Clean up diagnostics (Boshen)
  • 5671714 linter: Clean up diagnostics in fixer (Boshen)
  • 6e90f67 linter: Remove unnecessary usages of CompactStr (Boshen)
  • 15f275f linter: Reduce llvm lines generated by RuleEnum::read_json (#3207) (Boshen)
  • a84454c linter: Clean up prefer_node_protocol and move to restriction (#3171) (Boshen)
  • f6f7adc linter,diagnostic: One diagnostic struct to eliminate monomorphization of generic types (#3235) (Boshen)
  • 2064ae9 parser,diagnostic: One diagnostic struct to eliminate monomorphization of generic types (#3214) (Boshen)- 893af23 Clean up more diagnostics usages (Boshen)

[0.3.2] - 2024-05-04

Features

  • 80cf0b2 linter: @typescript-eslint/prefer-literal-enum-member (#3134) (kaykdm)
  • cd600fa linter: Add more "ban-ts-comment" test cases. (#3107) (谭光志)
  • bef8a71 linter: Eslint-plugin-jest/require-hook (#3110) (cinchen)
  • 388ee51 linter: Typescript-eslint/prefer-enum-initializers (#3097) (Todor Andonov)
  • be9cdfc linter: Eslint/no-await-in-loop (#3070) (谭光志)
  • 6f5df11 linter/import: Move some rules out of nursery (#2841) (Dunqing)
  • 5a1d63a linter/jsdoc: Implement require-yields rule (#3150) (Yuji Sugiura)
  • d7a8345 linter/jsdoc: Support settings.ignore(Private|Internal) (#3147) (Yuji Sugiura)
  • 5866086 linter/jsdoc: Implement no-defaults rule (#3098) (Yuji Sugiura)
  • fa3d9d2 linter/jsdoc: Implement implements-on-classes rule (#3081) (Yuji Sugiura)
  • d109767 linter/jsdoc: Implement check-tag-names rule (#3029) (Yuji Sugiura)
  • 32df6d7 linter/tree-shaking: Support While/Switch/Yield Statement (#3155) (Wang Wenzhe)
  • 8290421 linter/tree-shaking: Support SequenceExpression (#3154) (Wang Wenzhe)
  • 5c21b7f linter/tree-shaking: Support UnaryExpression (#3153) (Wang Wenzhe)
  • 7333618 linter/tree-shaking: Support JSX (#3139) (Wang Wenzhe)
  • 16a31e9 linter/tree-shaking: Support import statement (#3138) (Wang Wenzhe)
  • 88ded0c linter/tree-shaking: Support ForStatement (#3078) (Wang Wenzhe)
  • c3ec710 linter/tree-shaking: Support ExportNamedDeclaration (#3072) (Wang Wenzhe)
  • 8cdd5b0 linter/tree_shaking: Support LogicExpression and MemberExpression (#3148) (Wang Wenzhe)

Bug Fixes

  • fde7d65 linter: Handle named export default in import-plugin/named (#3158) (Boshen)
  • b1bddac linter: Fix hang if a file fails to parse while using --import-plugin (Boshen)
  • dcb2528 semantic: Revert test code pushed to the main by accident. (#3085) (Ali Rezvani)
  • 8d17ab3 semantic: Allow root_node to be empty for empty trees. (#3084) (Ali Rezvani)

Refactor

  • 7e1fe36 ast: Squash nested enums (#3115) (overlookmotel)
  • 942b2ba ast: Add array element Elision type (#3074) (overlookmotel)
  • 222030c linter: Render --rules in a table (Boshen)
  • 1f12aee linter/jsdoc: Misc improvements (#3109) (Yuji Sugiura)
  • a8af5de syntax: Move number related functions to number module (#3130) (Boshen)
  • ae65613 syntax: Use FxHashMap for ModuleRecord::request_modules (#3124) (Boshen)

[0.3.1] - 2024-04-22

Bug Fixes

  • a5a7351 linter: Fix unwanted plugin rules being enabled (Boshen)

[0.3.0] - 2024-04-22

Features

  • 92d709b ast: Add CatchParameter node (#3049) (Boshen)
  • 8d17bb4 linter: --deny all should not enable nursery rules (Boshen)
  • c2ad8f8 linter: Implement fixer for typescript-eslint/consistent-type-definitions (#3045) (Todor Andonov)
  • ae72be1 linter: Remove all ESLint Stylistic rules (Boshen)
  • 58d6438 linter: Change no-empty-static-block to correctness (Boshen)
  • 5cf55c2 linter: No barrel file. (#3030) (Ali Rezvani)
  • ae1f15a linter: Support eslint globals (#3038) (Boshen)
  • 1a1ba11 linter/tree-shaking: Support ExportDefaultDeclaration (#3052) (Wang Wenzhe)

Bug Fixes

  • b88dfd7 linter: Support -D all -D nursery (Boshen)
  • 598bbba linter: Fix crashing with unwrap in import/no-cycle (#3035) (Boshen)

Performance

  • 6c82961 ast: Box typescript enum variants. (#3065) (Ali Rezvani)
  • 48e2088 ast: Box enum variants (#3058) (overlookmotel)

Refactor

  • 53c0ff5 linter: Improve the ergonomics around ESlintConfig (#3037) (Boshen)
  • 7e4beb0 linter/import/no_cycle: Use ModuleGraphVisitor. (#3064) (Ali Rezvani)

[0.2.18] - 2024-04-19

Features

  • 2bac1d5 linter: Support oxlint-disable alongside eslint-disable (#3024) (Boshen)
  • fa08abe linter: Remove import/no-unresolved (#3023) (Boshen)
  • 9b4e87a linter: Eslint/max-len (#2874) (谭光志)
  • df2036e linter: Implement plugin-jsdoc/check-property-names (#2989) (Yuji Sugiura)
  • aa62dbb linter: Add missing test cases to no-empty-interface and add config (#2973) (Jose)
  • ba2121f linter: Add --jsdoc-plugin flag (#2935) (Yuji Sugiura)
  • 395ad76 linter/jsdoc: Update settings.jsdoc method (#3016) (Yuji Sugiura)
  • 5d89e75 linter/jsdoc: Implement require-property-(type|name|description) rules (#3013) (Yuji Sugiura)
  • 7de9c91 linter/jsdoc: Implement require-property rule (#3011) (Yuji Sugiura)
  • ac37d55 linter/tree-shaking: Support DoWhileStatement and IfStatement (#2994) (Wang Wenzhe)
  • 5b02ae1 linter/tree-shaking: Support ConditionalExpression (#2965) (Wang Wenzhe)
  • da5ea41 linter/tree-shaking: Support Class (#2964) (Wang Wenzhe)

Bug Fixes

  • 627dd42 linter/no-empty-interface: Add missing test (#2979) (Jose)

[0.2.17] - 2024-04-11

Features

  • 6757dba linter: Eslint-plugin-jest/prefer-lowercase-title (#2911) (cinchen)
  • b4b471f linter: Typescript-eslint/consistent-type-definitions (#2885) (Todor Andonov)
  • 990eda6 linter/tree-shaking: Support part BinaryExpression (#2922) (Wang Wenzhe)

Bug Fixes

  • 5abbb0c linter: Import/no-cycle ignore type-only imports (#2924) (John Daly)

Refactor

  • 0a77d62 semantic/jsdoc: Rework JSDoc struct for better Span handling (#2917) (Yuji Sugiura)

[0.2.16] - 2024-04-08

Features

  • acb6eb2 linter: @typescript-eslint/prefer-for-of (#2789) (Denis Gonchar)
  • aa63b64 linter: Implement jsdoc/check-access (#2642) (Yuji Sugiura)
  • 6823482 linter: Implement jsdoc/empty-tags (#2893) (Yuji Sugiura)
  • 7bc638e linter: Eslint-plugin-jest/prefer-mock-promise-sorthand (#2864) (cinchen)
  • 6de1b77 linter/import: Add ignoreTypes option for the import/no-cycle rule (#2905) (John Daly)
  • b053d54 linter/tree-shaking: Support try-catch and AwaitExpression (#2902) (Wang Wenzhe)
  • 59869d0 linter/tree-shaking: Check this in different environment (#2901) (Wang Wenzhe)
  • ce34829 linter/tree-shaking: Support ThisExpression and NewExpression (#2890) (Wang Wenzhe)
  • 15d08f6 linter/tree-shaking: Support ArrowFunctionExpression (#2883) (Wang Wenzhe)
  • 4a86dcb linter/tree-shaking: Support ArrayExpression and ArrayPattern (#2882) (Wang Wenzhe)

Bug Fixes

  • 5f8f7f8 ast: FinallyClause won't get visited as BlockStatement anymore. (#2881) (Ali Rezvani)
  • 79e2c95 linter: Handle self closing script tags in astro partial loader (#2017) (#2907) (Kalven Schraut)
  • 1cd5e75 linter: Svelte partial loader handle generics (#2875) (#2906) (Kalven Schraut)

[0.2.15] - 2024-03-30

Features

  • 2365198 cli: Add tsconfig file validation in LintRunner (#2850) (Dunqing)
  • d63807e linter: Fallback to the default tsconfig path (#2842) (Dunqing)
  • f6391f9 linter: Eslint-plugin-jest/prefer-comparison-matcher (#2806) (cinchen)
  • f131442 linter: Eslint-plugin-jest/no-untyped-mock-factory (#2807) (cinchen)
  • 451162e linter: Eslint/no-iterator (#2758) (Jose)
  • 53ffbc6 linter: Eslint-plugin-react checked-requires-onchange-or-readonly (#2754) (keita hino)
  • 1c07a99 linter: Default_param_last (#2756) (Jose)
  • 291dc05 linter: No_script_url (#2761) (Jose)
  • 76cc906 linter/import: Ignore type-only imports and exports in no_unresolved (#2849) (Dunqing)
  • 0cae373 linter/tree-shaking: Pass CallExpression cases (#2839) (Wang Wenzhe)
  • fa39fa8 linter/tree-shaking: Check CallExpression when called (#2809) (Wang Wenzhe)
  • 3c9e77d linter/tree-shaking: Detect CallExpression in MemberExpression (#2772) (Wang Wenzhe)

Bug Fixes

  • df62828 linter/import: Ignore export declaration in no-duplicates (#2863) (Dunqing)
  • c452897 linter/import: False positive for indirect export in namespace (#2862) (Dunqing)
  • 64e4de7 linter/max-lines: Only report codes that exceed the line limit (#2778) (Wang Wenzhe)

Refactor

  • 1b5e544 semantic: Distinguish whether requested_modules is type imports/exports (#2848) (Dunqing)
  • d9b77d8 sourcemap: Change sourcemap name to take a reference (#2779) (underfin)

[0.2.14] - 2024-03-19

  • c3477de ast: [BREAKING] Rename BigintLiteral to BigIntLiteral (#2659) (Arnaud Barré)

Features

  • ac813a6 linter: No_template_curly_in_string (#2763) (Jose)
  • 134e15e linter: Eslint/no-proto (#2760) (Jose)
  • 39b98ba linter: No_eq_null (#2757) (Jose)
  • 86d006e linter: Eslint/max-params (#2749) (Jose)
  • 22c84c5 linter: Eslint/guard-for-in (#2746) (Jose)
  • f5b4599 linter: Eslint/no-ternary (#2744) (Jose)
  • 6189985 linter: Eslint/no-continue (#2742) (Jose)
  • 91e8a71 linter: Eslint/no-with (#2741) (Andi Pabst)
  • 81752b2 linter: Eslint/max-lines (#2739) (Andi Pabst)
  • 0623a53 linter: Eslint-plugin-jest: prefer-to-contain (#2735) (cinchen)
  • 9edda49 linter: Eslint-plugin-jest: prefer-expect-resolves (#2703) (cinchen)
  • 53a8e7f linter: Add settings.jsdoc (#2706) (Yuji Sugiura)
  • f8fe3af linter: Eslint-plugin-jest: prefer-to-be (#2702) (cinchen)
  • 265030d linter: Eslint-plugin-jest: prefer-spy-on (#2666) (cinchen)
  • 3ae9479 linter: Report side effect for array element in node_side_effects rule (#2683) (Wang Wenzhe)
  • 366a879 linter: Resolve ESM star exports (#2682) (Boshen)
  • 9b56134 linter: Support check ImportNamespaceSpecifier in no_import_assign (#2617) (Dunqing)
  • 7605cd3 linter: Change ban-ts-comment to pedantic (Boshen)
  • 95ac265 linter/import: Check ObjectPattern syntax in namespace (#2691) (Dunqing)
  • e86cd62 linter/import: Support check reexport binding in namespace (#2678) (Dunqing)
  • 4947809 linter/jest: Add new property for parse_jest_fn (#2715) (cinchen)
  • 2ef4762 linter/tree-shaking: Add cache for checking mutating identifiers (#2743) (Wang Wenzhe)
  • 11219d4 linter/tree_shaking: Check assignment of identifier (#2697) (Wang Wenzhe)
  • 57ce737 semantic: Move redeclare varaibles to symbol table (#2614) (Dunqing)
  • 8b3de77 span: impl<'a> PartialEq<str> for Atom<'a> (#2649) (Boshen)
  • 4f9dd98 span: Remove From<String> and From<Cow> API because they create memory leak (#2628) (Boshen)
  • f8e8af2 task: Init eslint-plugin-tree-shaking rule (#2662) (Wang Wenzhe)- 265b2fb Miette v7 (#2465) (Boshen)

Bug Fixes

  • a671d75 linter: Fix guard_for_in span error (#2755) (Jose)
  • 09d4c7d linter: Correct example for no-obj-calls rule (#2618) (overlookmotel)
  • b453a07 parser: Parse named rest element in type tuple (#2655) (Arnaud Barré)

Refactor

  • 0f86333 ast: Refactor Trivias API - have less noise around it (#2692) (Boshen)
  • 220eba1 lint: Split files for no_side_effects rule (#2684) (Wang Wenzhe)
  • 47e735a linter: Improve the implementation of no_shadow_restricted_names based on symbols (#2615) (Dunqing)
  • 240ff19 parser: Improve parsing of BindingPattern in TypeScript (#2624) (Boshen)
  • 798a6df span: Disallow struct expression constructor for Span (#2625) (Boshen)- 8001b2f Make CompactStr immutable (#2620) (overlookmotel)- 0646bf3 Rename CompactString to CompactStr (#2619) (overlookmotel)

[0.2.13] - 2024-03-05

Features

  • 35ce3cc linter: Eslint-plugin-jest: prefer-to-have-length (#2580) (cinchen)
  • 212f128 linter: Eslint-plugin-jest: prefer-strict-equal (#2581) (cinchen)
  • fe777f3 linter/import: Partial support namespace check (#2538) (Dunqing)

Bug Fixes

  • 951297e linter: Avoid crash if no members in TSTypeLiteral in typescript/prefer-function-type (#2604) (Wenzhe Wang)
  • c09c602 linter: Exclude typescript syntax function in only_used_in_recursion (#2595) (Dunqing)
  • f00834d linter: Fix getter return rule false positives in TypeScript (#2543) (BlackSoulHub)
  • 24d46bc parser: Fix span start for TSModuleDeclaration (#2593) (Arnaud Barré)
  • 37de80d semantic: Jsx reference with an incorrect node id (#2546) (Dunqing)- 7cc9013 Broken build from codegen API change (Boshen)

Refactor

  • ef932a3 codegen: Clean up API around building sourcemaps (#2602) (Boshen)
  • 1391e4a semantic/jsdoc: Misc fixes for JSDoc related things (#2531) (Yuji Sugiura)

[0.2.12] - 2024-02-28

Features

  • 3efbbb2 ast: Add "abstract" type to MethodDefinition and PropertyDefinition (#2536) (Boshen)
  • 02c82c3 cli,linter: Provide tsconfig path from the cli (#2526) (Boshen)
  • d41dcc3 linter: Remove all commonjs logic for import plugin (#2537) (Boshen)

[0.2.11] - 2024-02-26

Features

  • f5aadc7 linter: Handle cjs `module.exports = {} as default export (#2493) (Boshen)
  • f64c7e0 linter: Handle cjs module.exports.foo = bar and exports.foo = bar (#2492) (Boshen)
  • d0a9c46 linter: Handle top-level require for import plugin (#2491) (Boshen)
  • 696818a linter: Implement @typescript-eslint/prefer-ts-expect-error (#2435) (Alex Yip)
  • 6aa8c2d linter: Initialize resolver lazily and automatically read tsconfig.json for now (#2482) (Boshen)
  • 135e56a linter: Ignore unsupported extensions in import/no_unresolved (#2481) (Boshen)
  • 7f86722 linter: Handle built-in modules in import/no_unresolved (#2479) (Boshen)
  • 015b2ee linter: Eslint-plugin-react void-dom-elements-no-children (#2477) (keita hino)
  • c5f67fe linter: Add boilerplate for eslint-plugin-import/no_duplicates (#2476) (Boshen)
  • f1e364f linter: Eslint-plugin-import/no_unresolved (#2475) (Boshen)
  • 2714a32 linter: Continue working on no_cycle (#2471) (Boshen)
  • 6527bfd linter: Add boilerplace code for import/namespace,no_deprecated,no_unused_modules (#2470) (Boshen)
  • ff6a337 linter: Typescript-eslint: prefer-function-type (#2337) (zhangrunzhao)

Bug Fixes

  • 93742f8 linter: Correct configuration file parsing for jsx-no-useless-fragment (#2512) (keita hino)
  • fba66dc linter: Improve import/no-named-as-default (#2494) (Boshen)
  • d741d72 linter: Fix import plugin hanging when ignored modules are imported (#2478) (Boshen)
  • 35a0f89 linter: Handle cases where createElement is an Identifier in is_create_element_call (#2474) (keita hino)
  • bc22ae5 semantic: Refactor jsdoc finding (#2437) (Yuji Sugiura)

Refactor

  • 540f917 ast: Remove TSEnumBody (#2509) (Boshen)
  • 9087f71 ast: S/TSThisKeyword/TSThisType to align with estree (Boshen)
  • d08abc6 ast: S/NumberLiteral/NumericLiteral to align with estree (Boshen)
  • e6b391a ast: S/ArrowExpression/ArrowFunctionExpression to align estree (Boshen)

[0.2.10] - 2024-02-21

Features

  • e6d536c codegen: Configurable typescript codegen (#2443) (Andrew McClenaghan)
  • f7e1576 linter: Eslint no-nonoctal-decimal-escape (#2428) (tudorbarbu)

Bug Fixes

  • 5bd2ce6 semantic: Incorrect reference flag for MemberExpression assign (#2433) (Dunqing)

Refactor

  • cd48e1e linter: Simplify getting ImportDefaultSpecifier (#2453) (Dunqing)
  • 2a2bb2b linter: Improve implementation of no_dupe_class_members based on ClassTable (#2446) (Dunqing)- a2c173d Remove panic! from examples (#2454) (Boshen)

[0.2.9] - 2024-02-18

Features

  • 0b9e122 linter: Implement unicorn/no-process-exit rule (#2410) (Yuji Sugiura)
  • d9f073e linter: Detect jest file by default glob pattern (#2408) (Wenzhe Wang)
  • 8d6202f linter: Eslint-plugin-jest require-to-throw-message (#2384) (keita hino)
  • 92afbb1 linter: Eslint-plugin-jest: prefer-equality-matcher (#2358) (cinchen)
  • 40e9541 semantic: Add export binding for ExportDefaultDeclarations in module record (#2329) (Dunqing)- 8e0277e Add Typescript ban-tslint-comment (#2371) (tudorbarbu)

Bug Fixes

  • f49ffb2 linter: getter-return false positive with TypeScript syntax (#2363) (Boshen)
  • ebc08d4 linter: Add missing typescript-eslint(_) prefix for some errors (#2342) (Maurice Nicholson)
  • 6a25864 linter/jsx_a11y: Refactor jsx-a11y related utils and its usage (#2389) (Yuji Sugiura)
  • 2521b52 linter/jsx_a11y: Ensure plugin settings are used (#2359) (Yuji Sugiura)

Performance

  • 7d7a3fc lint/no_var_requires: Quicker way to check if the IdentifierReference point to a global variable (#2376) (Yunfei He)

Refactor

  • 67d7a46 linter: Get arrow expression by scope_id in no_render_return_value (#2424) (Dunqing)
  • 63b4741 linter/config: Use serde::Deserialize for config parsing (#2325) (Yuji Sugiura)

[0.2.8] - 2024-02-06

Features

  • d571839 ast: Enter AstKind::ExportDefaultDeclaration, AstKind::ExportNamedDeclaration and AstKind::ExportAllDeclaration (#2317) (Dunqing)
  • a762d17 linter: Promote no-this-before-super to correctness (#2313) (Boshen)
  • 0060d6a linter: Implement no_this_before_super with cfg (#2254) (Tzvi Melamed)
  • f3035f1 semantic: Apply ImportSpecifier's binder and remove ModuleDeclaration's binder (#2307) (Dunqing)- 8771c64 Add typescript-eslint rule array-type (#2292) (luhc228)

Bug Fixes

  • b5e43fb linter: Fix no_dupe_keys false postive on similar key names (#2291) (Boshen)

Refactor

  • 1822cfe ast: Fix BigInt memory leak by removing it (#2293) (Boshen)

[0.2.7] - 2024-02-03

Features

  • 2578bb3 ast: Remove generator property from ArrowFunction (#2260) (Dunqing)
  • a95a16c linter: Complete custom components setting (#2234) (hjio)
  • da3b305 linter: Implement @next/next/no-before-interactive-script-outsi… (#2203) (kaykdm)
  • b694a6a linter: Implement @next/next/no-unwanted-polyfillio (#2197) (kaykdm)
  • e561457 semantic: Track cfg index per ast node (#2210) (Tzvi Melamed)

Bug Fixes

  • 2beacd3 lexer: Correct the span for irregular whitespaces (#2245) (Boshen)
  • 37a2676 linter: AllowFunction doesn't support generator (#2277) (Dunqing)
  • f039ad6 linter: Ban --fix for variety files(vue, astro, svelte) (#2189) (Wenzhe Wang)
  • f32228e linter: Jsx no undef match scope should check with ancestors (#2027) (西了意)
  • 73ccf8a oxc_semantic: Proper traversal of try statements (#2250) (Tzvi Melamed)

Refactor

  • 1de3518 linter: Remove Regex and change error position (#2188) (Wenzhe Wang)- 650f6c9 Use our forked version of miette::Reporter for tests (#2266) (Boshen)- 87b9978 Move all miette usages to oxc_diagnostics (Boshen)

[0.2.6] - 2024-01-26

Features

  • ee5b968 linter: Support read env from eslintrc (#2130) (fi3ework)
  • 8898377 semantic: Cfg prototype (#2019) (Boshen)
  • 2794064 transfrom: Transform-json-strings (#2168) (underfin)

Bug Fixes

  • 2e3153e linter: Rename react_perf/jsx_no_new_function_as_props to jsx_no_new_function_as_prop (#2175) (Yuji Sugiura)

Refactor

  • a17e43e linter: Move settings and env to the config module (#2181) (Boshen)

[0.2.5] - 2024-01-25

Features

  • ac1d318 linter: Eslint-plugin-jest: prefer-called-with (#2163) (cin)
  • 3891430 linter: Eslint: no-void (#2162) (cin)

Bug Fixes

  • 989ab88 codegen: Print Directive original string (#2157) (underfin)
  • c18619e linter: Use correct rule name (#2169) (Yuji Sugiura)
  • 2602232 linter: Explicit-length-check inside ternary (#2165) (Maurice Nicholson)

[0.2.3] - 2024-01-23

Features

  • 6d808a6 linter: Linter-eslint-plugin-import/no-named-as-default (#2109) (Valerii Smirnov)
  • d90db3a linter: Promote no-new-array to correctness with better help message (#2123) (Boshen)
  • 69fecac linter: Eslint config jsonc support (#2121) (Boshen)
  • 5ca07bc linter: Eslint-plugin-react-perf (#2086) (Hulk)
  • b160842 linter: Support eslint config in nextjs eslint (#2107) (kaykdm)
  • 16b3261 linter: Eslint-plugin-jest: no-restricted-jest-methods (#2091) (cin)- 20a34b5 Introduce --react-perf-plugin CLI flag, update rules to correctness (#2119) (Hulk)- 4adce6f (eslint-plugin-jest): no-restricted-matchers (#2090) (cin)

Bug Fixes

  • d00c44c linter: Allow [...new Array(n)] in no-useless-spread (#2124) (Boshen)
  • 2228aa8 linter: Jsx_a11y/img-redundant linter enable test case(#2112) (msdlisper)
  • 142f84f linter: Not use new_inline with flexible str (#2106) (Wenzhe Wang)

Refactor

  • 766ca63 ast: Rename RestElement to BindingRestElement (#2116) (Dunqing)
  • 8bccdab semantic: Add binder for FormalParameters and RestElement, replacing the binder for FormalParameters (#2114) (Dunqing)

[0.2.2] - 2024-01-20

Features

  • 721a869 linter: Improve no_redeclare rule implementation (#2084) (Dunqing)- 2f1e1e2 Expose linter RULES and use it for listing (#2083) (Yuji Sugiura)

Bug Fixes

  • d7ecd21 linter: Eslint-plugin-import no-named-as-default-member rule (#2071) (Valerii Smirnov)
  • 3faa2aa linter: S/consistent-type-export/consistent-type-exports (#2065) (Boshen)

Refactor

  • a368134 linter: Perfect the scope linter (#2092) (msdlisper)

[0.2.1] - 2024-01-16

Features

  • 9e06bd7 linter: Remove the --timings feature (#2049) (Boshen)
  • c60c315 linter: Eslint-plugin-import no-named-as-default-member rule (#1988) (Valerii Smirnov)
  • 530d1be linter: Eslint-plugin-jsx-a11y no-redundant-roles rule (#1981) (Yuto Yoshino)
  • 198f0e5 linter: Eslint-plugin-jsx-a11y aria-activedescendant-has-tabindex (#2012) (keita hino)
  • a356918 linter: Eslint-plugin-next: no-document-import-in-page (#1997) (kaykdm)
  • c70a065 linter: Eslint-plugin-next: no-head-element (#2006) (kaykdm)
  • 8f0f824 linter: Eslint-plugin-next: no-typos (#1978) (kaykdm)
  • 04540f7 linter: Eslint-plugin-jsx-a11y click-events-have-key-events (#1976) (Yuji Sugiura)

Bug Fixes

  • 3b40fbd linter: False positive for filename_case where filename doesn't have a proper casing (#2032) (Boshen)
  • 68606c4 linter: Keep rules disabled if the rule is not enabled in the config (#2031) (Boshen)
  • 107a32e linter: Fix false positive for erasing-op in 0/0 case (#2009) (Cameron)

Refactor

  • f514410 linter: Move LintSettings to its own file (#2052) (Boshen)
  • ae4e714 linter: Remove the LintSettings parameter from LintContext::new. (#2051) (Boshen)
  • b386177 linter: Move away from tuples for test cases (#2011) (Boshen)

[0.2.0] - 2024-01-12

Features

  • d51c9f1 linter: Eslint-plugin-jest: no-test-return-statement (#1979) (cin)
  • fb5d0a7 linter: Add support for same rule name but different plugin names (#1992) (Boshen)
  • b7ea4e5 linter: Support vue generic component (#1989) (Boshen)
  • c5887bc linter: Implement @typescript-eslint/triple-slash-reference (#1903) (kaykdm)
  • ac704cc linter: Eslint-plugin-jsx-a11y autocomplete-valid (#1901) (Yuto Yoshino)
  • 40dbfae linter: Eslint-plugin-react: no-direct-mutation-state (#1892) (zhangrunzhao)
  • 856b9a5 linter: Support overriding oxlint rules by eslint config (#1966) (Boshen)
  • 7891670 linter: Eslint-plugin-react: require-render-return (#1946) (kaykdm)
  • 2b7ca59 linter: Eslint-plugin-jsx-a11y role-has-required-aria-props (#1881) (Yuto Yoshino)
  • f6047b6 linter: Eslint-plugin-jsx-a11y role-support-aria-props (#1961) (Rintaro Itokawa)
  • fd5856e linter: Eslint-plugin-jsx-a11y role-support-aria-props (#1949) (Rintaro Itokawa)
  • c6eb519 linter: Eslint-plugin-react: no-unknown-property (#1875) (Valerii Smirnov)
  • fe48bfa lsp: Support vue, astro and svelte (#1923) (IWANABETHATGUY)- ac3b44b Nextjs plugin (#1948) (Cameron)

Bug Fixes

  • e0da12a linter: Allow eslintrc to add rule when overriding (#1984) (fi3ework)
  • d4acd14 linter: Jsx-key: handle anonymous functional components in arrays that have a function body (#1983) (Maurice Nicholson)
  • b5f4f1e linter: Fix plugin name parsing when reading config file (#1972) (Hao Cheng)
  • 8d9894a linter: Support cases where aria-hidden includes expressions (#1964) (keita hino)
  • 66e95a5 linter: Change severity of no-sparse-arrays to warnings (Boshen)

Refactor

  • a6717db formatter,linter,codegen: Remove oxc_formatter (#1968) (Boshen)
  • 64310fa linter: Remove duplicate get_jsx_attribute_name (#1971) (Cameron)

[0.1.2] - 2024-01-06

Features

  • c2e8ef5 linter: Disable no-unused-labels for svelte (#1919) (Boshen)
  • f2ed83c linter: