Skip to content

v3.0 Preview #5261

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

Open
johnsoncodehk opened this issue Mar 7, 2025 · 21 comments
Open

v3.0 Preview #5261

johnsoncodehk opened this issue Mar 7, 2025 · 21 comments

Comments

@johnsoncodehk
Copy link
Member

johnsoncodehk commented Mar 7, 2025

3.0.0-alpha.0 (2025-03-08)

3.0.0-alpha.2 (2025-03-17)

3.0.0-alpha.4 (2025-04-08)

3.0.0-alpha.6 (2025-05-05)

@johnsoncodehk johnsoncodehk pinned this issue Mar 7, 2025
@Satont
Copy link

Satont commented Mar 8, 2025

Amazing work.

Is there webstorm build? Not sure does it even possible.

@johnsoncodehk
Copy link
Member Author

@Satont I think that's promising, @tomblachut has already confirmed the required adjustments!

@Ilanaya
Copy link
Contributor

Ilanaya commented Mar 11, 2025

I see you've made some changes to language service plugins here. Would you be able to support working with custom language service plugins in v3? I mean reintroduce changes from #1028 to make volar/services work again?

Related issue

@johnsoncodehk
Copy link
Member Author

@Ilanaya LS plugin support is part of the 3.0 plan, but will not be supported via the reintroduction of volar.config.js.

@rodrigocfd
Copy link

I just tested 3.0.0-alpha.2, and it looks pretty good. I found no bugs so far.

@qiaozhu
Copy link

qiaozhu commented Mar 25, 2025

何时发布3.0版本

@spaceemotion
Copy link

spaceemotion commented Mar 31, 2025

I just installed alpha 3 and for some reason, the auto-complete is missing props on some components and seems incorrect?

Image

Image

Edit: I just checked with v2.2.8 and see the prop show up there just fine.

@KazariEX
Copy link
Member

KazariEX commented Mar 31, 2025

@spaceemotion please provide a minimal reproduction.

@ehoogeveen-medweb
Copy link

Tried out alpha 2 with VSCode Remote Development (over SSH), but it seems to often cause the connection to close. It seems to reliably trigger when I go to view the extensions pane, but I've seen it happen seemingly at random too. I tried checking the logs on the remote, but all I could find was this:

exthost25/remoteexthost.log:
2025-04-02 10:48:41.095 [info] Extension host terminating: received terminate message from renderer

remoteagent.log:
2025-04-02 10:48:43.850 [info] [<unknown>][05fc3261][ExtensionHostConnection] <792972> Extension Host Process exited with code: 0, signal: null.

Here exthost25 is just the most recent extension host. So it seems like a renderer crash, but no further information is given (no stack or error code).

Using VSCode v1.98.2 and Remote SSH v0.118.0 (both the latest as of right now), a Windows host and a Linux remote (but it seems to be the remote that crashes).

@hkochniss
Copy link

that sounds awesome.. roughly when can we expect a release in VS market place? :)

@KazariEX
Copy link
Member

Since semver pre-release tags are not supported on VSCode, we can't release these alpha versions at the moment.

Before the official version is released, we need to patiently wait for other editors to integrate the new architecture.

@hkochniss
Copy link

So basically waiting for Jetbrains here to adjust their plugin API, ok

@moritz-baecker-integra
Copy link

It doesn't matter which project i open, with alpha 6 the tsserver is crashing immediately:

2025-05-05 13:13:48.228 [info] Killing TS Server
2025-05-05 13:13:48.282 [error] TSServer exited. Code: null. Signal: SIGTERM
2025-05-05 13:13:48.282 [info] Starting TS Server
2025-05-05 13:13:48.282 [info] Using tsserver from: Path\To\Project\node_modules\typescript\lib\tsserver.js
2025-05-05 13:13:48.282 [info] <syntax> Forking...
2025-05-05 13:13:48.282 [info] <syntax> Starting...
2025-05-05 13:13:48.282 [info] <semantic> Forking...
2025-05-05 13:13:48.282 [info] <semantic> Starting...
2025-05-05 13:13:48.283 [info] Killing TS Server
2025-05-05 13:13:48.290 [error] TSServer exited. Code: null. Signal: SIGTERM

@KazariEX
Copy link
Member

KazariEX commented May 5, 2025

Sorry, I have updated the vsix link.

@Powersource
Copy link

#5349

@viell-dev
Copy link

Might have issues with Yarn... Downgraded to 2.2.10 and it works again.

2025-05-06 14:42:02.313 [info] Starting TS Server
2025-05-06 14:42:02.313 [info] Using tsserver from: /path/to/project/.yarn/sdks/typescript/lib/tsserver.js
2025-05-06 14:42:02.313 [info] <syntax> Falling back to legacy node.js based file watching because of Yarn PnP.
2025-05-06 14:42:02.313 [info] <syntax> Forking...
2025-05-06 14:42:02.313 [info] <syntax> Starting...
2025-05-06 14:42:02.313 [info] <semantic> Falling back to legacy node.js based file watching because of Yarn PnP.
2025-05-06 14:42:02.313 [info] <semantic> Forking...
2025-05-06 14:42:02.313 [info] <semantic> Starting...
2025-05-06 14:42:02.936 [info] Killing TS Server
2025-05-06 14:42:02.949 [error] TSServer exited. Code: null. Signal: SIGTERM

@RayGuo-ergou
Copy link
Contributor

Having the same issue with @spaceemotion, the completion items for a vue components only show 4 default entries: data-allow-mismatch, ref, is and key.

However if I manually type the prop/event, it can refer to the correct type, diagnostic for required props also works fine.

This issue happens from 'alpha 0'. Is it used some new 'feature' in LSP that require the LSP client to adopt?

Btw tried the vscode version, all work as excepted.

Image

@KazariEX
Copy link
Member

KazariEX commented May 7, 2025

v3.0 redesigned the communication method with tsserver #5252.

@RayGuo-ergou
Copy link
Contributor

RayGuo-ergou commented May 7, 2025

I see, I think the issue is here:https://github.com/vuejs/language-tools/pull/5252/files#diff-3c2b2dc57146f5d52dc996ede798d28b5e6163dcd75762900a25803398a099edR89-R102

There's no forwardingTsRequest in neovim so it would not work.

There should be a way to do it in neovim (I will play with it when i have time), but regardless to me this change limited the version 3 to work with vscode only.🤔 Not as in other editors cannot make it work but it requires more effort from the user.

@johnsoncodehk
Copy link
Member Author

@RayGuo-ergou "forwardingTsRequest" (now changed to "tsserverRequest") is not specific to VSCode. It is a command ID set by the language client, and the language server sends a forwarding request to the language client based on the command ID. (See: https://github.com/search?q=repo%3Avuejs%2Flanguage-tools%20tsserverRequest&type=code)

For other IDEs, what needs to be explored is how the Vue language client accesses the tsserver process so that the Vue language client can forward requests from the Vue language server to tsserver.

In VSCode the tsserver process is maintained by the built-in TS extension, and we use a hack to access it.

@RayGuo-ergou
Copy link
Contributor

RayGuo-ergou commented May 7, 2025

Thanks for clarifying. Sorry did not make that clear, yeah I did mean there's a new custom command that the editors has to handle in some level. What I mean by 'work with vscode only' is that only the vscode plugin comes out of box with vue lsp.

But if there's a strong reason to do it in this way (i think there is: named pipe), should be fine as long as it properly documented.

For other IDEs, what needs to be explored is how the Vue language client accesses the tsserver process so that the Vue language client can forward requests from the Vue language server to tsserver.

I would imagine there's still work to do to achieve this in neovim I will let you know how i goes so there would not be a ton of issues after release 😄


update:

Got something so for neovim users at least have to add these settings while setup lsp

https://github.com/RayGuo-ergou/dotfiles/blob/1ba854dd58c458a3d3b95e58a8cba6f813286678/nvim/lua/ergou/util/lsp/servers.lua#L77-L89

I will try to make it complete and create a PR to update the readme

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests