Skip to content
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

Language servers via WebSocket or TCP #8498

Open
1 task done
valentinegb opened this issue Feb 27, 2024 · 4 comments
Open
1 task done

Language servers via WebSocket or TCP #8498

valentinegb opened this issue Feb 27, 2024 · 4 comments
Labels
feature [core label] language server An umbrella label for all language servers language An umbrella label for all programming languages syntax behaviors

Comments

@valentinegb
Copy link
Contributor

valentinegb commented Feb 27, 2024

Check for existing issues

  • Completed

Describe the feature

Some language servers, such as Godot's GDScript language server, are only accessible via WebSocket and/or TCP. Allowing for languages in Zed to use WebSocket or TCP to connect to language servers would allow for even more languages to be possibly supported in Zed.

If applicable, add mockups / screenshots to help present your vision of the feature

VSCode's Godot plugin works this way, where it connects to the GDScript language server built into the Godot editor with a WebSocket or TCP stream: https://github.com/godotengine/godot-vscode-plugin

@Moshyfawn Moshyfawn added language server An umbrella label for all language servers and removed triage labels Feb 28, 2024
@JosephTLyons JosephTLyons added language An umbrella label for all programming languages syntax behaviors and removed admin read labels Feb 28, 2024
@notpeter notpeter changed the title Allow for communicating with a language server using WebSocket or TCP Language servers via WebSocket or TCP Jul 11, 2024
@notpeter
Copy link
Member

notpeter commented Jul 11, 2024

The GDScript Zed Extension (grndctrl/zed-gdscript) currently uses netcat nc as a workaround:

Support for the Godot Language Server Protocol (LSP) is provided via nc which is assumed to be in your PATH.
The language server is expected to be running on the default ip 127.0.0.1 and port 6005.

@valentinegb
Copy link
Contributor Author

@grndctrl (or anyone else with insight) are there any downsides to using netcat as opposed to having support for WebSocket or TCP language servers built into Zed? If not then we could probably consider this issue resolved

@MPKaboose
Copy link

The issue on Windows is that ncat keeps getting quarantined by both my AV and Defender.

From what I've found so far this isn't going to change any time soon Windows Server 2019 sees nc.exe as a virus.

I understand that Windows is not yet supported, just leaving this here in case someone also ran into this.

@maxbrunsfeld
Copy link
Collaborator

I think it would be reasonable to support at least TCP-based connections to language servers, not just stdio. I'm not sure how widely-used the web socket transport is for this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature [core label] language server An umbrella label for all language servers language An umbrella label for all programming languages syntax behaviors
Projects
None yet
Development

No branches or pull requests

6 participants