Prerequisite to https://github.com/zed-industries/zed/pull/64257 * gpui: build inspector IDs only when the window's inspector exists, drop the inspector maps on close, skip inspector state lookups for absent or non-selected IDs * gpui: create inspector element renderers per inspector instance instead of at registration * inspector_ui: create the project and editors lazily per inspector session, keep the init task and subscriptions cancellable, hold the inspector weakly from the completion provider * lsp: bound the shutdown output drain by the same timeout as the shutdown request * gpui_platform: add an `inspector_render` benchmark that builds with the inspector in or out Mean time per rendered frame with the inspector closed; overhead is relative to the inspector compiled out. | Benchmark | Frame, compiled out | Frame, `main` | Frame, this PR | Overhead on `main` | Overhead on this PR | | --- | ---: | ---: | ---: | ---: | ---: | | 1,000 bare divs, never opened | 3.352 ms | 3.505 ms | 3.362 ms | +153 µs (+4.57%) | +10 µs (+0.29%) | | 1,000 bare divs, opened and closed twice | 3.349 ms | 3.508 ms | 3.364 ms | +159 µs (+4.76%) | +15 µs (+0.46%) | | 100 bare divs, opened and closed twice | 317.0 µs | 336.3 µs | 317.6 µs | +19 µs (+6.10%) | +1 µs (+0.18%) | | 10,000 bare divs, never opened | 56.617 ms | 58.925 ms | 56.472 ms | +2.31 ms (+4.08%) | -145 µs (-0.26%) | | 500 panel rows with text, hover, click, never opened | 4.173 ms | 4.451 ms | 4.179 ms | +278 µs (+6.67%) | +7 µs (+0.16%) | | 500 panel rows with text, hover, click, opened and closed twice | 4.197 ms | 4.448 ms | 4.159 ms | +252 µs (+6.00%) | -37 µs (-0.89%) | | 50 panel rows with text, hover, click, never opened | 523.4 µs | 543.3 µs | 522.3 µs | +20 µs (+3.80%) | -1 µs (-0.21%) | | 500 panel rows with text, hover, click, opened and closed twice, another window inspected | 4.191 ms | 4.469 ms | 4.176 ms | +278 µs (+6.64%) | -15 µs (-0.35%) | | editor, cursor moves (`crates/benchmarks`, `release-fast`) | 940.9 µs | 943.0 µs | 942.5 µs | +2 µs (+0.23%) | +2 µs (+0.17%) | Release Notes: - N/A - [GPUI] Optimize GPUI inspector's runtime cost by an order of magnitude
Zed
Welcome to Zed, a high-performance, multiplayer code editor from the creators of Atom and Tree-sitter.
Installation
On macOS, Linux, and Windows you can download Zed directly or install Zed via your local package manager (macOS/Linux/Windows).
Other platforms are not yet available:
- Web (tracking discussion)
Developing Zed
Contributing
See CONTRIBUTING.md for ways you can contribute to Zed.
Also... we're hiring! Check out our jobs page for open roles.
Licensing
Zed source code is licensed primarily under GPL-3.0-or-later, with Apache-2.0 components where marked.
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 specifiederror for a crate you've created? If so, addpublish = falseunder[package]in your crate's Cargo.toml. - Is the error
failed to satisfy license requirementsfor 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 theacceptedarray inscript/licenses/zed-licenses.toml. - Is
cargo-aboutunable 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.
Sponsorship
Zed is developed by Zed Industries, Inc., a for-profit company.
If you’d like to financially support the project, you can do so via GitHub Sponsors. Sponsorships go directly to Zed Industries and are used as general company revenue. There are no perks or entitlements associated with sponsorship.