mirror of
https://github.com/vim/vim.git
synced 2025-07-26 11:04:33 -04:00
patch 8.0.0319: insert mode completion does not respect 'backspace'
Problem: Insert mode completion does not respect "start" in 'backspace'. Solution: Check whether backspace can go before where insert started. (Hirohito Higashi)
This commit is contained in:
parent
a9f8ffb634
commit
190b04cdd9
@ -3467,10 +3467,13 @@ ins_compl_bs(void)
|
||||
mb_ptr_back(line, p);
|
||||
|
||||
/* Stop completion when the whole word was deleted. For Omni completion
|
||||
* allow the word to be deleted, we won't match everything. */
|
||||
* allow the word to be deleted, we won't match everything.
|
||||
* Respect the 'backspace' option. */
|
||||
if ((int)(p - line) - (int)compl_col < 0
|
||||
|| ((int)(p - line) - (int)compl_col == 0
|
||||
&& ctrl_x_mode != CTRL_X_OMNI) || ctrl_x_mode == CTRL_X_EVAL)
|
||||
&& ctrl_x_mode != CTRL_X_OMNI) || ctrl_x_mode == CTRL_X_EVAL
|
||||
|| (!can_bs(BS_START) && (int)(p - line) - (int)compl_col
|
||||
- compl_length < 0))
|
||||
return K_BS;
|
||||
|
||||
/* Deleted more than what was used to find matches or didn't finish
|
||||
|
@ -511,4 +511,24 @@ func Test_completion_clear_candidate_list()
|
||||
bw!
|
||||
endfunc
|
||||
|
||||
func Test_completion_respect_bs_option()
|
||||
new
|
||||
let li = ["aaa", "aaa12345", "aaaabcdef", "aaaABC"]
|
||||
|
||||
set bs=indent,eol
|
||||
call setline(1, li)
|
||||
1
|
||||
call feedkeys("A\<C-X>\<C-N>\<C-P>\<BS>\<BS>\<BS>\<Esc>", "tx")
|
||||
call assert_equal('aaa', getline(1))
|
||||
|
||||
%d
|
||||
set bs=indent,eol,start
|
||||
call setline(1, li)
|
||||
1
|
||||
call feedkeys("A\<C-X>\<C-N>\<C-P>\<BS>\<BS>\<BS>\<Esc>", "tx")
|
||||
call assert_equal('', getline(1))
|
||||
|
||||
bw!
|
||||
endfunc
|
||||
|
||||
" vim: shiftwidth=2 sts=2 expandtab
|
||||
|
@ -764,6 +764,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
319,
|
||||
/**/
|
||||
318,
|
||||
/**/
|
||||
|
Loading…
x
Reference in New Issue
Block a user