Zed Improved. Aiming to improve upon Zed and make a truly delightful code editor.
https://zed.dev
![]() Here comes a lenghty explanation for a short commit: We've had feedback that our diagnostics tab often mismatches what's shown in the status bar. E.g: https://x.com/fasterthanlime/status/1778764747732594753 Let's dive into the lifetime of diagnostic tab first; it is actually spawned *just once per workspace*, the first time you click on the diagnostics status indicator. Even if you close this tab, we still reuse the same object under the hood later on. This has upsides, as it means that you can close a tab and then reopen it with your selections still in-tact and so on. However, this also leads to the perceived staleness. Crucially, the first time ever in a given session that you spawn the diagnostics tab, the status bar counts match the content of a tab. That is because we always call \`update_excerpts\` when we create diagnostics tab for the first time, but later on we have severe constraints on when we want to update the excerpts in diagnostics tab, mostly centered around presence of selections in an editor... but, since we reuse the diagnostic tab object under the hood, we're always gonna have at least one selection in an editor sans the first time you open it. The end result is that in order for diagnostic tab contents to be updated, we have to get a "on-disk-diagnostics-finished" notification from language server, which can take a long time. Another example of this property manifesting itself is that if you fix a diagnostic warning/error, it takes a while for diagnostic tab to reflect it. With this PR, I've afforded a bit of leniency in refreshing the contents of that tab. The old check that discarded updates when diagnostics editor had at least one selection has been updated to instead reject multicursors; this is still overly conservative, as I'm not yet sure how big of an issue is the cursor that's jumping around (as that's what the selections constraint is supposed to prevent). Release Notes: - Fixed diagnostics tab showing outdated entries before the language server is done with it's analysis. |
||
---|---|---|
.cargo | ||
.config | ||
.github | ||
.zed | ||
assets | ||
crates | ||
docs | ||
extensions | ||
script | ||
tooling/xtask | ||
.dockerignore | ||
.gitattributes | ||
.gitignore | ||
.gitmodules | ||
.mailmap | ||
Cargo.lock | ||
Cargo.toml | ||
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
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:
- Linux (tracking issue)
- Windows (tracking issue)
- Web (tracking issue)
For macOS users, you can also install Zed using Homebrew:
brew install --cask zed
Alternatively, to install the Preview release:
brew tap homebrew/cask-versions
brew install zed-preview
Developing Zed
- Building Zed for macOS
- Building Zed for Linux
- Building Zed for Windows
- Running Collaboration Locally
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, addpublish = 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 theaccepted
array inscript/licenses/zed-licenses.toml
. - Is
cargo-about
unable to find the license for a dependency? If so, add a clarification field at the end ofscript/licenses/zed-licenses.toml
, as specified in the cargo-about book.