aboutsummaryrefslogtreecommitdiff
path: root/helix-view/src/macros.rs
diff options
context:
space:
mode:
authorPascal Kuthe2023-03-02 22:12:50 +0000
committerBlaž Hrastnik2023-03-09 04:01:02 +0000
commit8cb7cdfd7a01b9cb50b9142e9a5d133bd1e23256 (patch)
treeeaa47f455751d44baf3e4a64d8984b56f8ec1e1e /helix-view/src/macros.rs
parente8898fd9a8ac8120827fb2d6f4752b3cb2431a62 (diff)
discard stale completion requests
Completion requests are computed asynchronously to avoid common micro freezes while editing. This means that once a completion request completes, the state of the editor might have changed. Currently, there is a check to ensure we are still in insert mode. However, we also need to ensure that the view and document hasn't changed to avoid accidentally using a savepoint with the wrong view/document. Furthermore, the editor might request a new completion while the previous completion request hasn't complemented yet. This can lead to weird flickering or an outdated completion request replacing a newer completion that has already completed (the LSP server is not required to process completion requests in order). This change also needed to ensure determinism/linear ordering so that completion popup always correspond to the last completion request.
Diffstat (limited to 'helix-view/src/macros.rs')
0 files changed, 0 insertions, 0 deletions