From a5e06b776167375ef68cd9bc836e4e89a3a192f3 Mon Sep 17 00:00:00 2001 From: Yutao Yuan Date: Sat, 28 Jan 2023 00:19:11 +0800 Subject: [PATCH] Make the CompleteDone backspace check more robust (#1426) When checking for backspace in `CompleteDone` event, also look at the line number. If the line number changed, the user probably pressed something like `` and not backspace. --- autoload/lsp/ui/vim/completion.vim | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/autoload/lsp/ui/vim/completion.vim b/autoload/lsp/ui/vim/completion.vim index 66b600f3..87206ac5 100644 --- a/autoload/lsp/ui/vim/completion.vim +++ b/autoload/lsp/ui/vim/completion.vim @@ -49,6 +49,7 @@ function! s:on_complete_done() abort endif let s:context['done_line'] = getline('.') + let s:context['done_line_nr'] = line('.') let s:context['completed_item'] = copy(v:completed_item) let s:context['done_position'] = lsp#utils#position#vim_to_lsp('%', getpos('.')[1 : 2]) let s:context['complete_position'] = l:managed_user_data['complete_position'] @@ -71,6 +72,7 @@ function! s:on_complete_done_after() abort endif let l:done_line = s:context['done_line'] + let l:done_line_nr = s:context['done_line_nr'] let l:completed_item = s:context['completed_item'] let l:done_position = s:context['done_position'] let l:complete_position = s:context['complete_position'] @@ -79,7 +81,7 @@ function! s:on_complete_done_after() abort let l:start_character = s:context['start_character'] " check the commit characters are or . - if strlen(getline('.')) < strlen(l:done_line) + if line('.') ==# l:done_line_nr && strlen(getline('.')) < strlen(l:done_line) doautocmd User lsp_complete_done return '' endif