mirror of
https://github.com/neovim/neovim.git
synced 2025-09-11 22:08:18 +00:00
vim-patch:8.2.0614: get ml_get error when deleting a line in 'completefunc' (#19244)
Problem: Get ml_get error when deleting a line in 'completefunc'. (Yegappan
Lakshmanan)
Solution: Lock the text while evaluating 'completefunc'.
ff06f283e3
Fix a mistake in the porting of patch 8.1.0098.
Cherry-pick Test_run_excmd_with_text_locked() from patch 8.2.0270.
Cherry-pick test_gf.vim changes from patch 8.2.0369.
Cherry-pick message change from later patches.
This commit is contained in:
@@ -1062,6 +1062,11 @@ static void f_complete(typval_T *argvars, typval_T *rettv, FunPtr fptr)
|
||||
return;
|
||||
}
|
||||
|
||||
const int save_textlock = textlock;
|
||||
// "textlock" is set when evaluating 'completefunc' but we can change text
|
||||
// here.
|
||||
textlock = 0;
|
||||
|
||||
// Check for undo allowed here, because if something was already inserted
|
||||
// the line was already saved for undo and this check isn't done.
|
||||
if (!undo_allowed(curbuf)) {
|
||||
@@ -1070,15 +1075,13 @@ static void f_complete(typval_T *argvars, typval_T *rettv, FunPtr fptr)
|
||||
|
||||
if (argvars[1].v_type != VAR_LIST) {
|
||||
emsg(_(e_invarg));
|
||||
return;
|
||||
} else {
|
||||
const colnr_T startcol = tv_get_number_chk(&argvars[0], NULL);
|
||||
if (startcol > 0) {
|
||||
set_completion(startcol - 1, argvars[1].vval.v_list);
|
||||
}
|
||||
}
|
||||
|
||||
const colnr_T startcol = tv_get_number_chk(&argvars[0], NULL);
|
||||
if (startcol <= 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
set_completion(startcol - 1, argvars[1].vval.v_list);
|
||||
textlock = save_textlock;
|
||||
}
|
||||
|
||||
/// "complete_add()" function
|
||||
|
Reference in New Issue
Block a user