-
-
Notifications
You must be signed in to change notification settings - Fork 782
perf(linter): check for giving reserved plugin name before calling load_plugin on napi side
#17841
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
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. |
Merging this PR will not alter performance
Comparing Footnotes
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR optimizes the external plugin loading process by checking for reserved plugin names earlier in the flow, before making a potentially expensive NAPI call to load_plugin. This prevents unnecessary cross-boundary calls and fixes a panic that occurred in the oxc git project when testing with nested configs enabled.
Key changes:
- Added early validation to reject reserved plugin names before calling
load_pluginon the NAPI side - Added a TODO comment noting a potential future issue with plugin cleanup if a reserved name bypasses the early check
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Merge activity
|
…oad_plugin` on napi side (#17841) found here #17840 (comment) The check for reserved plugin names can be done before when we know the name already, avoiding a call to the NAPI side. This fixes the panic for the `oxc` git project when testing it with nested configs enabled. Added a comment for a possible panic in the future. This does not will show up in `CLI` because it fast fails on this error, the `--lsp` integrations wants to skip it.
6a410c6 to
f87a1e2
Compare
# Oxlint ### 🚀 Features - 9699a1b linter/prefer-global-this: Add suggestion (#17873) (Mikhail Baev) - 51c2815 linter/no-invalid-regexp: Add labels and help text to flag diagnostics (#17865) (camchenry) - 344d77d linter/no-ex-assign: Improve diagnostic with more detail (#17864) (camchenry) - 7d280e0 linter: Add fixer for `unicorn/no-useless-error-capture-stack-trace` rule (#17839) (Mikhail Baev) - af1d0e3 linter/prefer-optional-chain: Add rule (#17831) (camc314) - e3c4108 vscode: Add more supported languages to extension (#17812) (Alexander Lichter) - 4a46678 vscode: Activate extension on more languages (#17717) (Sysix) - b1298fc vscode: Sync formatter with supported files (#17615) (Alexander Lichter) - c7f0848 linte/rno-required-prop-with-default: Implement suggestion (#17747) (Minsu Lee) - 0e8127e linter/vue: Implement no-lifecycle-after-await (#17701) (yefan) - 3567304 linter/vitest: Implement `consistent-each-for` (#17601) (Said Atrahouch) - 883e156 linter: Add fixer for `unicorn/no-useless-collection-argument` rule (#17594) (Mikhail Baev) - 4eb335c linter/vitest: Implemented prefer-called-once (#17674) (Said Atrahouch) - 2bd2d5a linter/vitest: Implement hoisted-apis-on-top (#17658) (Said Atrahouch) - cfb2bcc linter/vue: Implement no-arrow-functions-in-watch (#17672) (yefan) - a68208a linter/eslint-plugin-vitest: Implements `prefer-describe-function-title` (#17677) (Said Atrahouch) - efa029f linter/vitest: Implement no-unneeded-async-expect-function (#17494) (Minsu Lee) ### 🐛 Bug Fixes - 49cf66e lsp: Fix workspace worker selection for nested and similar-named workspaces (#17853) (Copilot) - 84f4f3c linter: Add doc url for tsgolint diagnostics (#17879) (Sysix) - 76c903f linter/consistent-indexed-object-style: Skip fixing default exported interface (#17874) (Copilot) - 7e87d16 linter/tabindex-no-positive: Improve diagnostic phrasing (#17849) (connorshea) - 28f9fba vscode: Fix nested search for binaries (#17832) (Sysix) - 8ca2cd2 linter: Move jsx-a11y/no-static-element-interactions rule to nursery. (#17818) (connorshea) - dc9fdd6 linter/consistent-indexed-object-style: Re-port test cases and fix some bugs (#17802) (camc314) - 7bbd880 linter: Update prefer-destructuring rule metadata (#17642) (Hamir Mahal) - 3c45185 linter/consistent-indexed-object-style: False positive with circular reference (#17789) (heygsc) - bd186b4 vscode: Search for `oxlint` and `oxfmt` in every workspace directory (#17760) (Sysix) - 3e0dff7 linter/no-hooks: Add punctuation to diagnostic message (#17751) (camc314) - 6ae21f9 linter/prefer-called-once: Avoid panic on trailing comma (#17735) (Said Atrahouch) - 32c3901 oxlint: Do not panic on invalid `no-unused-vars` configuration (#17719) (Sysix) - 59a6228 parser: Detect TS1363 error for type-only imports with mixed default and named/namespace bindings (#17712) (Copilot) ### ⚡ Performance - f87a1e2 linter: Check for giving reserved plugin name before calling `load_plugin` on napi side (#17841) (Sysix) ### 📚 Documentation - a2b3a24 linter/no-caller: Improve docs and diagnostic for rule. (#17890) (connorshea) - aa48247 linter/no-unsafe-finally: Improve rule docs. (#17891) (connorshea) - 1b0bdee linter: Tweak docs for no-useless-constructor and hoisted-apis-on-top (#17888) (connorshea) - 8f24fa9 vscode: Remove mention of a built-in server (#17836) (Sysix) - e81a306 linter: Update the tsconfig flag mention for the import plugin. (#17778) (connorshea) # Oxfmt ### 🚀 Features - 539b350 formatter/sort_imports: Update `NODE_BUILTINS` modules (#17771) (nilptr) - 2e03ebf oxfmt/lsp: Use `SourceFormatter` to support non-JS files and napi features (#17655) (leaysgur) - 623f7eb oxfmt/sort_package_json: Use `options.sort_scripts` (#17740) (leaysgur) - 86c0168 oxfmt/sort_package_json: Handle `oxfmtrc.sort_scripts` option (#17738) (leaysgur) - 256636a oxfmt/lsp: Add `.editorconfig` to `get_watcher_patterns` (#17694) (leaysgur) - 3f3db39 oxfmt/lsp: Use `ConfigResolver` to align with CLI (#17654) (leaysgur) ### 🐛 Bug Fixes - fdd1e1e formatter: Don't wrap parenthesis for type assertion when it's an declaration of export default (#17878) (Dunqing) - f0813ad formatter: Incorrect type annotation check for short argument (#17877) (Dunqing) - 9e89389 formatter/tailwindcss: Nested class string doesn't respect `singleQuote: true` (#17838) (Dunqing) - e2f534c formatter/sort_imports: Handle alignable comment with JsLabels (#17791) (leaysgur) - f0cedd4 formatter/tailwindcss: Class name is broken after sorting when its contains single quotes with `singleQuote: true` (#17790) (Dunqing) - 1864142 oxfmt/tailwindcss: Bundle `prettier/plugins/*` (#17782) (leaysgur) - 3a9d43b oxfmt: Ignore explicit positional path which is ignored by directory (#17732) (leaysgur) - 0563217 formatter: Classes will be stripped out when both `experimentalTailwindcss` and `experimentalSortImports` are enabled (#17726) (Dunqing) ### ⚡ Performance - d1bc514 formatter: Optimize RegExpLiteral formatting to avoid heap allocations (#17797) (Dunqing) ### 📚 Documentation - 62b7a01 formatter: Clarify `experimentalTailwindcss` configuration comments (#17898) (Dunqing) Co-authored-by: Boshen <1430279+Boshen@users.noreply.github.com>

found here #17840 (comment)
The check for reserved plugin names can be done before when we know the name already, avoiding a call to the NAPI side.
This fixes the panic for the
oxcgit project when testing it with nested configs enabled.Added a comment for a possible panic in the future.
This does not will show up in
CLIbecause it fast fails on this error, the--lspintegrations wants to skip it.