Zed Improved. Aiming to improve upon Zed and make a truly delightful code editor.
https://zed.dev
![]() Closes #18702 This is take 2 of [my previous PR](https://github.com/zed-industries/zed/pull/19555), which was closed due to inactivity and merge conflicts. **Cause**: The editor's horizontal scroll width only considers the longest line in the buffer, using `layout_line` for `longest_row`. The inline blame width isn’t included in it because it is just a decoration on top of the line (think of like CSS absolute) and not part of its actual content. This causes blame to overflow. **Solution**: Along with `longest_row` width we also add that line's inline blame width for scroll width calculation. We also have to add some padding that is between inline blame and line's content. **Alternate Solution**: In my previous PR, instead of adding the inline blame width of the longest line for scroll width calculation, I used the inline blame of the current line the cursor is on (since we only see the blame for the current line). I added that to the current line's width, giving us the full width of that row. Then, we compare that row's width with the longest row width and use the max of the two for the scroll width calculation. While this solution seems clever, it's overly complicated and could cause issues, like the scroll width changing every time you move the cursor up or down. I don't think we should go with this, but I'm open to suggestions. **Preview**: Before: https://github.com/user-attachments/assets/01ef90cf-06e7-4ebb-8bd1-637a53e0654e After: https://github.com/user-attachments/assets/b13616de-bdea-4da4-b32d-9c4104448166 Release Notes: - Fixed inline Git blame not visible on long lines due to overflow. |
||
---|---|---|
.cargo | ||
.cloudflare | ||
.config | ||
.github | ||
.zed | ||
assets | ||
crates | ||
docs | ||
extensions | ||
legal | ||
nix | ||
script | ||
tooling/xtask | ||
.git-blame-ignore-revs | ||
.gitattributes | ||
.gitignore | ||
.mailmap | ||
Cargo.lock | ||
Cargo.toml | ||
clippy.toml | ||
CODE_OF_CONDUCT.md | ||
compose.yml | ||
CONTRIBUTING.md | ||
Cross.toml | ||
debug.plist | ||
default.nix | ||
docker-compose.sql | ||
Dockerfile-collab | ||
Dockerfile-collab.dockerignore | ||
Dockerfile-cross | ||
Dockerfile-cross.dockerignore | ||
Dockerfile-distros | ||
Dockerfile-distros.dockerignore | ||
flake.lock | ||
flake.nix | ||
LICENSE-AGPL | ||
LICENSE-APACHE | ||
LICENSE-GPL | ||
livekit.yaml | ||
Procfile | ||
Procfile.postgrest | ||
README.md | ||
renovate.json | ||
rust-toolchain.toml | ||
shell.nix | ||
typos.toml |
Zed
Welcome to Zed, a high-performance, multiplayer code editor from the creators of Atom and Tree-sitter.
Installation
On macOS and Linux you can download Zed directly or install Zed via your local package manager.
Other platforms are not yet available:
- Windows (tracking issue)
- Web (tracking issue)
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.
Also... we're hiring! Check out our jobs page for open roles.
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.