05b658114750e9b63717ec3d05b316a927d8378e
This helps with the problem of keyboard input feeling laggy when the event loop is under load. What would previously happen is: - N events from X11 arrive - N events get forwarded to XIM - N events are handled in N iterations of the event loop (sadly, yes: we only seem to be getting back one `ClientMessage` per poll from XCB connection) - Each event is pushed into the channel - N event loop iterations are needed to get the events off the channel and handle them With this change, we get rid of the last 2 steps: instead of pushing the event onto a channel, we store it on the XIM handler itself, and then work it off synchronously. Usually one shouldn't block the event loop, but I think in this case - user input! - it's better to handle the events directly instead of re-enqueuing them again in a channel, where they can accumulate and need multiple iterations of the loop to be worked off. This does *not* fix the problem of input feeling choppy/slower when the system is under load, but it makes the behavior now feel exactly the same as when XIM is disabled. I also think the code is easier to understand since it's more straightforward. Release Notes: - N/A
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 install --cask 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.
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 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.
Description
GPUI – Community Edition maintained by Oak Team
https://gpui-ce.github.io/
258 MiB
Languages
Rust
95.6%
WGSL
1.2%
Metal
1.1%
HLSL
1.1%
Python
0.6%
Other
0.3%