diff options
author | Pascal Kuthe | 2023-03-02 22:12:50 +0000 |
---|---|---|
committer | Blaž Hrastnik | 2023-03-09 04:01:02 +0000 |
commit | 8cb7cdfd7a01b9cb50b9142e9a5d133bd1e23256 (patch) | |
tree | eaa47f455751d44baf3e4a64d8984b56f8ec1e1e /runtime | |
parent | e8898fd9a8ac8120827fb2d6f4752b3cb2431a62 (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 'runtime')
0 files changed, 0 insertions, 0 deletions