-
-
Notifications
You must be signed in to change notification settings - Fork 707
refactor(language_server): use LintRunner
#14472
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
base: 10-17-feat_language_server_send_in_memory_source_text_to_tsgolint_
Are you sure you want to change the base?
refactor(language_server): use LintRunner
#14472
Conversation
|
Warning This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
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 Performance ReportMerging #14472 will not alter performanceComparing Summary
Footnotes
|
8819d40 to
ddc8a9d
Compare
e8c2373 to
109ad5b
Compare
109ad5b to
d644a9f
Compare
ddc8a9d to
20e884e
Compare
d644a9f to
545abf2
Compare
545abf2 to
7dd438a
Compare
7dd438a to
a6b9b45
Compare
a6b9b45 to
0c542df
Compare
b1c0f28 to
9b2fdf0
Compare
e848705 to
35cd2a4
Compare
35cd2a4 to
716cfc9
Compare
9b2fdf0 to
0e01d98
Compare
716cfc9 to
990fcc9
Compare
0e01d98 to
ecd3fb5
Compare
990fcc9 to
27c0255
Compare
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 refactors the language server's linting architecture by consolidating type-aware (TsGoLint) and regular (Oxlint) linting into a unified LintRunner abstraction. Previously, the language server managed two separate linters (IsolatedLintHandler for Oxlint and TsgoLinter for type-aware checking), which required complex coordination logic.
Key changes:
- Replaced dual linter architecture with unified
LintRunnerthat coordinates both regular and type-aware linting internally - Removed the separate
TsgoLintermodule from the language server codebase - Simplified the
ServerLinterby delegating type-aware linting logic toLintRunner
Reviewed Changes
Copilot reviewed 9 out of 9 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| crates/oxc_linter/src/lint_runner.rs | Added run_source method to enable language server to run both linting modes on in-memory source text |
| crates/oxc_language_server/src/linter/tsgo_linter.rs | Removed entire file as functionality moved to LintRunner |
| crates/oxc_language_server/src/linter/isolated_lint_handler.rs | Refactored to use LintRunner instead of LintService directly, now handles both linting modes |
| crates/oxc_language_server/src/linter/server_linter.rs | Simplified by removing dual-linter coordination logic and delegating to IsolatedLintHandler |
| crates/oxc_language_server/src/linter/mod.rs | Removed tsgo_linter module export |
| editors/vscode/tests/e2e_server.spec.ts | Updated test timing and helper function calls for consistency |
| crates/oxc_language_server/src/snapshots/* | Updated test snapshots to reflect behavioral changes in lint execution modes |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

closes #13795
Now the language server uses
LintRunnerwhich lints in memory files withtsgolint🥳Cleanup the
ServerLinterto use onlyIsolatedLinterand noTsgoLinter.