github zed-industries/zed v0.2

latest releases: nightly, collab-production, v0.136.2-pre...
2 years ago

With 0.2, Zed has matured to the point where we're using it regularly to write prose, and the dogfood is tasting pretty good. We knew Zed would be fast and responsive, but it's hard to understand the difference until you experience it for yourself. We can't wait to start coding in this thing!

Here's an overview of what we've added since 0.1.

Collaborative editing

You can now invite guests into any worktree you open in Zed and collaboratively edit text. We're still building out the UX around sharing and joining, but in the meantime, it's based on sharing links.

To try it out, open a folder or file in Zed and select Zed > Share from the application menu. You'll be directed to the browser to authenticate, then a link will be placed on your clipboard. Someone else can then select Zed > Join with that link on their clipboard in order to join you. They can open, edit, and save any file in the tree.

Collaboration should feel fast and stable, but for now, the experience is still pretty barebones. In Zed 0.3, we'll be replacing the link sharing workflow with a "People Panel" where you can see which of your teammates are online and start collaborating directly from within the application. We'll also be adding the ability to see which collaborators are present and follow collaborators as they move their cursor within and between files.

Chat

Our goal with Zed is to move engineering conversations closer to code, and the heart of this experience is a code-aware chat panel embedded directly into the editor. Imagine you're a new engineer on a codebase. You encounter some code that you don't understand and jump directly into the #questions channel and ask about it. Two minutes later a seasoned engineer sees your question and clicks it to jump directly to that location in your copy of the code where you can both converse and edit.

For now, the experience is very basic. You can select a channel, send and receive messages, and load from history as you scroll up. We're planning to link messages to code locations in Zed 0.3. You can't yet create your own channels, but we've added everyone to a channel named #zed-insiders so you can play with it.

Design

Zed's UI is now taking shape thanks to the design work of our new teammate Nate Butler. Our goal with Zed's design is to maximize signal and minimize noise, keeping everything as clean and simple as possible. Of course we want Zed to look good, but the content being edited should always be the main focus.

We've implemented a data-driven theming system that has allowed Nate to begin establishing a design system for Zed. It has also made it possible for him to develop three distinct color themes for Zed that can be switched at runtime: Dark, Black, and Light.

To toggle the theme selector, type cmd-k cmd-t.

Soft wrap

Soft-wrapping is essential for multi-line messages in the chat UI and a reasonable experience writing prose. It may seem simple on the surface, but it's surprisingly complex to implement correctly and even harder to make performant. We're proud of our implementation on both fronts.

We used randomized tests to ensure correctness in even the edgiest of edge cases, and we move work to the background if it ever blocks the main thread for longer than 1ms. Typical files should re-wrap instantaneously when the editor is resized or the font size changes. When editing a 25MiB JSON file, editing feels instant, and the app remains fluid and responsive when resizing thanks to our ability to move blocking work to the background. When you load the same file in VS Code, they refuse to wrap it at all.

Don't miss a new zed release

NewReleases is sending notifications on new releases.