-
-
Notifications
You must be signed in to change notification settings - Fork 417
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
feat: reintroducing the complete language server #4119
Conversation
58f748b
to
b16d556
Compare
36d7bf6
to
c51f915
Compare
That was a hard time |
So what's the recommended setup for TypeScript users now? Do we need the extra VSC extension again? |
@Stanzilla No, you only need the |
And Hybrid Mode enabled, right? Would make more sense if this was called something like enable TypeScript support maybe? |
If you have TS 5.3+ installed and have a
Not exact. "Hybrid Mode" means Vue Language Tools makes the built-in TS service to run on |
Would be very helpful to have a comparison table of two solutions/approaches. Not being much experienced in tooling for JS I struggle to see how to chose what to do, enable hybrid mode? Disable it? What are the benefits of each approach? Downsides? |
Yes exactly, it's very unclear atm |
…ame time (#3908) ## What is this PR for? At the moment, the config for vue set hybrid mode to `false` which volar will run a typescript server under the hook. ( hybrid mode false is the takeover mode in v1, was introduced in `2.0.7` see more information here: vuejs/language-tools#4119 ). However, another vtsls with vue language plugin also attached to vue files, this will cause two typescript server running at the same time. It can be very easily observed with tools like `htop` volar and vtsls will have similar memory usage which is abnormal because volar should be very light by itself. This will introduce issues like duplicate diagnostics, see vuejs/language-tools#4159 (comment) In this pull request, I set the hybrid mode to true as default because the hybrid mode is the "correct" way moving forward, thus it would be more stable. Let me know if you feel it should stay as `false` to be default. ## Does this PR fix an existing issue? No existing issue. ## Checklist - [x] I've read the [CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md) guidelines.
Maybe this can help : https://gist.github.com/johnsoncodehk/62580d04cb86e576e0e8d6bf1cb44e73 |
closes #3942, closes #3962
We migrated to the TS plugin in 2.0 to resolve many issues with v1, unfortunately it had many issues with compatibility:
@vue/typescript-plugin
in some environments.@vue/typescript-plugin
only provides vue virtual code and handles mapping, it still causes performance problems in tsserver in some TS versions.@vue/typescript-plugin
to be invalidated and make intellisense completely wrong. This is a fault-tolerance problem of the TS LS plugin architecture.These issues are beyond our control, so we reintroduced the v1 complete LSP server and only switched to Hybrid Mode when explicitly enabled by the user.