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

Add initial support for defining language server adapters in WebAssembly-based extensions #8645

Merged
merged 32 commits into from
Mar 2, 2024

Conversation

maxbrunsfeld
Copy link
Collaborator

@maxbrunsfeld maxbrunsfeld commented Mar 1, 2024

This PR adds internal ability to run arbitrary language servers via WebAssembly extensions. The functionality isn't exposed yet - we're just landing this in this early state because there have been a lot of changes to the LspAdapter trait, and other language server logic.

Next steps

  • Currently, wasm extensions can only define how to install and run a language server, they can't yet implement the other LSP adapter methods, such as formatting completion labels and workspace symbols.
  • We don't have an automatic way to install or develop these types of extensions
  • We don't have a way to package these types of extensions in our extensions repo, to make them available via our extensions API.
  • The Rust extension API crate, zed-extension-api has not yet been published to crates.io, because we still consider the API a work in progress.

Release Notes:

  • N/A

maxbrunsfeld and others added 19 commits February 27, 2024 11:13
Co-authored-by: Marshall <marshall@zed.dev>
Also, show that we can pass worktree snapshots into extensions via resources.
Co-authored-by: Marshall <marshall@zed.dev>
Co-authored-by: Marshall <marshall@zed.dev>
Co-authored-by: Marshall <marshall@zed.dev>
Co-authored-by: Marshall <marshall@zed.dev>
… server

* Add a method to the Fs trait for extracting tar archives

Co-authored-by: Marshall <marshall@zed.dev>
Co-authored-by: Nathan <nathan@zed.dev>
…dLspAdapter

Co-authored-by: Marshall <marshall@zed.dev>
Co-authored-by: Marshall <marshall@zed.dev>
Co-authored-by: Marshall <marshall@zed.dev>
Co-authored-by: Marshall <marshall@zed.dev>
Soon, the language won't own LSP adapters.

Co-authored-by: Marshall <marshall@zed.dev>
Update zillions of tests to set up fake LSPs differently.

Co-authored-by: Marshall <marshall@zed.dev>
@cla-bot cla-bot bot added the cla-signed The user has signed the Contributor License Agreement label Mar 1, 2024
extension.rs Outdated Show resolved Hide resolved
maxdeviant and others added 3 commits March 1, 2024 13:20
Co-authored-by: Marshall <marshall@zed.dev>
* Make it possible to use real lsp adapters in tests, and still observe
  the stream of fake language servers that are started.

Co-authored-by: Marshall <marshall@zed.dev>
@maxbrunsfeld maxbrunsfeld merged commit 268fa1c into main Mar 2, 2024
10 checks passed
@maxbrunsfeld maxbrunsfeld deleted the wasm-extensions branch March 2, 2024 00:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cla-signed The user has signed the Contributor License Agreement
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants