Code at the speed of thought – Zed is a high-performance, multiplayer code editor from the creators of Atom and Tree-sitter.
Find a file
Max Brunsfeld 268fa1cbaf
Add initial support for defining language server adapters in WebAssembly-based extensions (#8645)
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

---------

Co-authored-by: Marshall <marshall@zed.dev>
Co-authored-by: Nathan <nathan@zed.dev>
Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>
2024-03-01 16:00:55 -08:00
.cargo
.config
.github Add initial support for defining language server adapters in WebAssembly-based extensions (#8645) 2024-03-01 16:00:55 -08:00
.zed
assets
crates Add initial support for defining language server adapters in WebAssembly-based extensions (#8645) 2024-03-01 16:00:55 -08:00
docs
extensions/gleam Add initial support for defining language server adapters in WebAssembly-based extensions (#8645) 2024-03-01 16:00:55 -08:00
script
.dockerignore
.gitattributes
.gitignore Add initial support for defining language server adapters in WebAssembly-based extensions (#8645) 2024-03-01 16:00:55 -08:00
.gitmodules
.mailmap
Cargo.lock Add initial support for defining language server adapters in WebAssembly-based extensions (#8645) 2024-03-01 16:00:55 -08:00
Cargo.toml Add initial support for defining language server adapters in WebAssembly-based extensions (#8645) 2024-03-01 16:00:55 -08:00
CODE_OF_CONDUCT.md
CONTRIBUTING.md
debug.plist
docker-compose.sql
docker-compose.yml
Dockerfile
LICENSE-AGPL
LICENSE-APACHE
LICENSE-GPL
livekit.yaml
Procfile
README.md
rust-toolchain.toml
typos.toml

Zed

CI

Welcome to Zed, a high-performance, multiplayer code editor from the creators of Atom and Tree-sitter.

Installation

You can download Zed today for macOS (v10.15+).

Support for additional platforms is on our roadmap:

For macOS users, you can also install Zed from Homebrew:

brew install zed

Developing Zed

Contributing

See CONTRIBUTING.md for ways you can contribute to Zed.

Licensing

License information for third party dependencies must be correctly provided for CI to pass.

We use cargo-about to automatically comply with open source licenses. If CI is failing, check the following:

  • Is it showing a no license specified error for a crate you've created? If so, add publish = false under [package] in your crate's Cargo.toml.
  • Is the error failed to satisfy license requirements for a dependency? If so, first determine what license the project has and whether this system is sufficient to comply with this license's requirements. If you're unsure, ask a lawyer. Once you've verified that this system is acceptable add the license's SPDX identifier to the accepted array in script/licenses/zed-licenses.toml.
  • Is cargo-about unable to find the license for a dependency? If so, add a clarification field at the end of script/licenses/zed-licenses.toml, as specified in the cargo-about book.