feat(linter): add eslint/no-misleading-character-class#13365
Conversation
How to use the Graphite Merge QueueAdd either label to this PR to merge it via the merge queue:
You must have a Graphite account in order to use the merge queue. Sign up using this link. An organization admin has enabled the Graphite Merge Queue in this repository. Please do not merge from GitHub as this will restart CI on PRs being processed by the merge queue. This stack of pull requests is managed by Graphite. Learn more about stacking. |
CodSpeed Instrumentation Performance ReportMerging #13365 will not alter performanceComparing Summary
Footnotes |
f2c2e12 to
c94aa23
Compare
a9e4981 to
ef64a32
Compare
c94aa23 to
c2a7238
Compare
fbc2fd9 to
9ca9dc5
Compare
c2a7238 to
1774721
Compare
77cb235 to
f0cf15f
Compare
1774721 to
0eaa86f
Compare
455236e to
b7a07ca
Compare
f0cf15f to
3690db6
Compare
b7a07ca to
d8ce816
Compare
3690db6 to
de4da11
Compare
d8ce816 to
ca4f52f
Compare
6c617dc to
97cbd4f
Compare
ca4f52f to
7ae6a05
Compare
97cbd4f to
92e888e
Compare
dde3cd4 to
30a5f28
Compare
this seems likley, when rendering the span i guess it doesn't understand that the emojis are amoji sequences |
|
Let's fix the spans later |
30a5f28 to
85540a1
Compare
|
Thanks for the fix! Updated the PR |
85540a1 to
108badd
Compare
c9eba6d to
b116b2c
Compare
b116b2c to
b1029ea
Compare
108badd to
6da84c6
Compare
|
I moved this to directly target main. I'll get miette fixed first, then we can bump it and fix the spans |
6da84c6 to
6fcb3ac
Compare
Merge activity
|
closes #614 related #479 https://eslint.org/docs/latest/rules/no-misleading-character-class The rule is still in nursery because of two problems: - #13660 - #13436 The spans for emojis are wrong too, do not know if the rule should fix this, or the regexp parser.
6fcb3ac to
8221a01
Compare
## [1.17.0] - 2025-09-23 ### 🚀 Features - f47f978 linter/plugins: Add `definePlugin` API (#14008) (overlookmotel) - 3e117c6 linter/plugins: Add `defineRule` API (#13945) (overlookmotel) - 2dc8adb linter/plugins: Add `createOnce` API (#13944) (overlookmotel) - bef8753 linter/plugins: ESTree-compatible AST for JS plugins (#13942) (overlookmotel) - 55c2e11 editor: Add `oxc.fmt.experimental` flag (#13923) (Sysix) - a21ff54 language_server: Introduce `ServerFormatter` (#13700) (Sysix) - a14aa79 npm/oxlint: Convert to ES modules (#13876) (Boshen) - 15eb326 linter: Add `vue/no-required-prop-with-default` rule (#13613) (yefan) - 5d3ba00 linter: Add `vue/require-typed-ref` rule (#13857) (yefan) - b52389a node: Bump `engines` field to require Node.js 20.19.0+ for ESM support (#13879) (Copilot) - 8221a01 linter: Add `eslint/no-misleading-character-class` (#13365) (Sysix) - c75ae8c linter/plugins: Add options to `Context` (#13810) (overlookmotel) - 53d04dd linter: Convert `oxlint` to NAPI app (#13723) (overlookmotel) ### 🐛 Bug Fixes - 1f4be38 napi/parser: Generate `.d.mts` extension for types (#14038) (Daniel Roe) - a018756 linter/plugins: Pin `tsdown` dependency to 0.15.1 (#14005) (overlookmotel) - b8790c2 language_server: Output correct position for parser & semantic errors (#14010) (Sysix) - 4d3c6e1 linter: Support let-chains in codegen node type detection (#14006) (camc314) - a34918a linter/plugins: Avoid lint warnings compiling WASM or big-endian (#13968) (overlookmotel) - 27022ab linter/switch-case-braces: Add support for string including colon on case expression (#13687) (Lukinoh) - dd3843f linter: Set package version in `package.json` (#13890) (overlookmotel) - fa866b3 linter: Sort optimized/unoptimized diagnostics before comparison (#13850) (camc314) - fac7624 linter/plugins: Improve error for no JS plugins (#13858) (overlookmotel) ### 🚜 Refactor - bb040bc parser, linter: Replace `.mjs` files with `.js` (#14045) (overlookmotel) - b353750 linter/plugins: Remove unnecessary `Serialize` derives (#14031) (overlookmotel) - 0d48511 linter/plugins: Improve handling `Context` method calls in `createOnce` (#14032) (overlookmotel) - 36ac0fb language_server: Don't create `mpsc` channel (#14011) (Sysix) - 2e9ae3f linter: Make disable directives own the rule name (#13987) (camc314) - 6bc7664 oxlint: Run oxlint before tsgolint (#13519) (camc314) - 0c93f33 language_server: Use minimal text edit for `ServerFormatter` (#13960) (Sysix) - 823cb57 langauge_server: Move `Backend` into own file (#13955) (Sysix) - dc700f5 language_server: Introduce `LSPFileSystem` (#13731) (Sysix) - 42e2c1d linter: Remove `Rc` from `DisableDirectives` (#13924) (camc314) - ac3e9e9 napi/parser: Move JS code into `src-js` directory (#13899) (overlookmotel) - e90bfe3 linter: Remove double reference in unicorn/error-message (#13916) (camc314) - 83791a0 linter: Remove double reference in vue/jsx-no-undef (#13915) (camc314) - ebd22de linter: Remove double reference in vue/require-typed-ref (#13914) (camc314) - 873e231 language_server: Move `needs_linter_restart` to `ServerLinter` (#13834) (Sysix) - 7e0d736 linter/plugins: Rename `--experimental-js-plugins` to `--js-plugins` (#13860) (overlookmotel) - 6245c8c linter/plugins: Make `Context` properties getters (#13809) (overlookmotel) - a2342a6 linter/plugins: Import named in tests (#13807) (overlookmotel) ### 📚 Documentation - 601c876 linter: Add comment explaining why Mimalloc is feature-gated (#14037) (overlookmotel) ### ⚡ Performance - 4d04c6e linter/plugins: Flatten `LintFileResult` fields (#14033) (overlookmotel) - 06363e0 linter: Add node type codegen support for `match node.kind()` (#13736) (camchenry) - a79af0a linter: Replace `for (... of ...)` loops (#13913) (overlookmotel) - b53292d linter: Use unstable sort where possible (#13818) (sapphi-red) ### 🎨 Styling - 8083740 linter: Import `Serialize` at top level (#14030) (overlookmotel) ### 🧪 Testing - b807b6f language_server: Skip formatter test on windows (#13986) (Sysix) - 2600858 language_server: Add Tester for ServerFormatter (#13969) (Sysix) - 37aadf0 language_server: Add `test_and_snapshot_multiple_file` (#13966) (Sysix) - ad14a41 editor: Fix test setup (#13929) (Sysix) - f51240e linter/plugins: Tests for different import styles (#13859) (overlookmotel) - 407c95e linter/plugins: Check `this` is undefined in visit functions (#13811) (overlookmotel) - f023a22 linter/plugins: Include stack trace in plugin loading errors (#13808) (overlookmotel) ### 💼 Other - 0630d68 linter: Build `oxlint` locally with Mimalloc in release mode (#14034) (overlookmotel) Co-authored-by: camc314 <18101008+camc314@users.noreply.github.com>


closes #614
related #479
https://eslint.org/docs/latest/rules/no-misleading-character-class
The rule is still in nursery because of two problems:
StringLiteralis not correctly detected #13660new RegExp(/ab/u, "i")#13436The spans for emojis are wrong too, do not know if the rule should fix this, or the regexp parser.