Query certain editor ranges for inlays with a delay (#2891)
Part of https://linear.app/zed-industries/issue/Z-2750/investigate-performance-of-collaborating-on-large-files-with-inlay Fixes https://linear.app/zed-industries/issue/Z-2824/inlay-hints-affect-code-layout-in-multibuffer We query hints for visible part of the screen, and two parts above and below the visible range, of the same range (if applicable, we can be on the edge of the document). When rapidly typing, we do not care about the invisible range updates, yet still query a lot of them + rust-analyzer sends /refresh hint requests shortly after every modification too, forcing us to re-query. Instead querying both visible and invisible ranges altogether, wait for visible range query first and wait add a `400ms` delay afterwards before querying the invisible ranges. This allows any /refresh requests or rapid typing to avoid 2 extra requests, cancelling them before they start. Visible part of the screen is still queried after every change, without any debouncing. Release Notes: - Delay certain inlay hint requests to reduce general LSP server load
K
Kirill Bulatov committed
205e101dd0650f1f4fc1c4b0d284a128ab9d9c78
Committed by GitHub <noreply@github.com>
on 8/25/2023, 1:33:21 PM