mirror of
https://github.com/zed-industries/zed.git
synced 2025-01-12 13:24:19 +00:00
62f5ca562e
We've received a complaint on Discord about bad multicursor performance. I too run 15k cursor simultaneously. The gist of the issue was in the lsp_ext; whenever we gather up actions to be registered on a buffer, we need to know whether a buffer has any of the languages for which we have LSP extensions. The problem stemed from the fact that we did a two-phase filtering. For each selection we'd first check whether this selection lies in a part of a file that is part of a language for which we have LSP extensions. Then, we'd check whether we're running a language server of interest for this buffer. This is not optimal, because it would often do the redundant work: 1. We resolve selections for buffer that are known to not contain a given language server. 2. We look up language server in the LspStore once per each matching selection. In case where the file is not related at all, we end up resolving all of the selections which is pretty bad. This PR makes us skip buffers which are known to not match the criteria. It also caches the result of language server lookup for the buffers. Closes #ISSUE Release Notes: - Improved performance with large quantity of cursors |
||
---|---|---|
.. | ||
src | ||
Cargo.toml | ||
LICENSE-GPL |