0a78c676475d8e3ca3d569f22e8bce0d3291cff5
This fixes #6440. The previous approach was calling select-next-match in a loop, which leaves optimizations on the table when you already know that you want to select all of the matches. So what we did here is to optimize the code for the "give me all matches" case: 1. Find all results in the current buffer 2. Build up *all* selections 3. Sort selections & throw away overlapping ones (keep oldest) 4. Unfold if necessary 5. Render selections On my M3 Max searching for `<span` in the test file [1] from the ticket, it previously took: ~1.07s now takes: ~4ms [1]: https://github.com/standardebooks/edgar-allan-poe_poetry/blob/master/src/epub/text/poetry.xhtml Co-authored-by: Antonio <antonio@zed.dev>
Zed
Welcome to Zed, a high-performance, multiplayer code editor from the creators of Atom and Tree-sitter.
Developing Zed
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 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%