Commit Graph

13 Commits

Author SHA1 Message Date
camc314 016cf2acd6 feat(linter/oxc): add bad-match-all-arg rule (#24900)
## Summary

- add oxc/bad-match-all-arg for non-global regular expressions passed to matchAll
- share cycle-safe RegExp flag resolution with bad-replace-all-arg
- support callable and global-qualified RegExp constructors
- update generated metadata, diagnostics, timings, and CLI rule-count snapshots

Closes #24823.
2026-07-24 14:48:45 +00:00
camc314 ce7a4dc3cb feat(linter/no-unreachable): move rule from nursery to correctness (#21618) 2026-04-21 18:58:20 +00:00
camc314 e3b5e78eeb feat(linter/getter-return): move rule from nursery to correctness (#21617)
This rule has been in in nursey for a significant amount of time, it should now be stable enough to promote to correctness.
2026-04-21 18:32:26 +00:00
Sysix 7be8613490 feat(linter): move no-misleading-chracter-class to correctness (#19006)
Almost all passing tests are now successful, we have still some false-false tests, but they are rare in real word, one is #13436
2026-02-06 13:59:54 +00:00
connorshea a398152031 feat(linter): Promote the eslint/no-iterator rule to correctness, which makes it a default rule (#18915)
Not sure if this should really count as `feat`, but any new rule getting added to the default set should at least show up in the changelog for users.

Also updated all the snapshots that needed to be updated for this.
2026-02-05 00:21:36 +00:00
overlookmotel 9de9385fd1 refactor(linter/plugins): rename oxlint/plugin to oxlint/plugins (#18792)
Part of #18610.

Our intent is to move `definePlugin`, `defineRule`, and `eslintCompatPlugin` to a separate package `@oxlint/plugins` (plural to avoid confusion with naming convention for plugins `oxlint-plugin-xxx`).

So rename the current entry point which exports these functions from `oxlint/plugin` to `oxlint/plugins` (plural).
2026-02-01 13:23:14 +00:00
overlookmotel 6ad44809e6 refactor(linter/plugins): remove experimental warning (#18771)
As we prepare for alpha release of JS plugins, it feels like we can remove the warning logged to stderr.

```
WARNING: JS plugins are experimental and not subject to semver.
Breaking changes are possible while JS plugins support is under development.
```

They do still remain experimental, but I don't think we need to shout that quite as loudly now.
2026-01-31 17:28:11 +00:00
camc314 558b588fc4 feat(linter/prefer-namespace-keyword): move to correctness (#18733)
this is going to be a hard parser error in a future release, so lets move this rule to correctness to allow people to take advantage of the fixer and migrate their code
2026-01-30 14:59:48 +00:00
camc314 81eb6fa9db refactor(linter): split entry points for custom plugins/config/types (#18601)
This is technically breaking (only for types), but custom plugins are experimental.

The ruletester/defineRule/definePlugin are re-exported but with a `@deprecated` tag which I think is a good enough trade off

I want to avoid users bringing in a ton of custom plugin code when doing `import { defineConfig } from 'oxlint'`
2026-01-27 00:58:08 +00:00
camc314 3bd6d68feb test(linter): dont print links in diagnostics in tests (#18074) 2026-01-16 23:15:50 +00:00
connorshea 529901cfc9 fix(linter): include JS plugin rules when calculating total rule count (#17520)
This ensures that we print the expected number of rules for users that are using JS Plugins.

Fix #17519.

Based on #17517, because otherwise we'd end up with weird snapshot differences when trying to merge these anyway.

AI Disclosure: The fix here was generated with Copilot + GitHub's Raptor mini model.
2025-12-31 23:14:52 +00:00
connorshea 96ef2cced3 fix(linter): print total rule # when using a single nested config (#17517)
For a while, we've been skipping the printing of rule runs unless `--disable-nested-config` was passed. This was a result of the nested_configs value including the base config (see #16356). When we were checking whether that value was empty, it would always have at least 1 item (unless nested configs were entirely disabled).

As part of this, I've updated some configs in the fixtures to disable correctness rules, otherwise we will end up with a bunch of fixture snapshots needing updates every time a new default rule is added.

It's probably easiest to review this one commit at a time.
2025-12-31 22:56:47 +00:00
overlookmotel 99e672363e test(linter/plugins): shorten fixture directory names (#16242)
Pure refactor of tests. Shorten fixture directory names. There's no need to include "custom_plugin" in dir names. *All* these tests are for custom plugins.

This PR doesn't alter content of any files, just renames them.
2025-11-28 13:27:30 +00:00