mirror of
https://github.com/prabirshrestha/asyncomplete.vim.git
synced 2025-12-14 20:35:41 +01:00
* Remove "skip popup" related logic * Fix matches not getting cleared Before this commit we don't clear the matches when the text under the cursor is no longer suitable for completion. This causes e.g. removing everything using <BS> does not close the completion menu. * Allow closing popup menu Closing popup menu calls completion itself, making it impossible to be successful. We used to have a "skip popup" logic to fix this. It was removed 2 commits ago for being too confusing. To fix this a check is adapted to make sure that completion is only called when the completion context has changed. Since closing popup menu does not change the completion context, it no longer calls completion, and therefore can succeed. Previously this check lets us not complete when we move to a different line we are in insert mode, through for example <CR> or <BS>, but actually we are not afraid of this. When we enter a newline, we don't complete anyway since the refresh pattern is not matched, and when we backspace to a previous line, and the line happens to end with something that will trigger a completion, why do we not want to trigger it? * Also compare completion base to determine context change It is possible that in some situation changing the text under the cursor does not change the position of the cursor, so we also compare the completion base to determine whether the context has changed.