mirror of
https://github.com/vim/vim.git
synced 2025-09-25 03:54:15 -04:00
patch 8.0.0347: when using completion comment leader wont work
Problem: When using CTRL-X CTRL-U inside a comment, the use of the comment leader may not work. (Klement) Solution: Save and restore did_ai. (Christian Brabandt, closes #1494)
This commit is contained in:
@@ -5095,6 +5095,7 @@ ins_complete(int c, int enable_pum)
|
||||
int n;
|
||||
int save_w_wrow;
|
||||
int insert_match;
|
||||
int save_did_ai = did_ai;
|
||||
|
||||
compl_direction = ins_compl_key2dir(c);
|
||||
insert_match = ins_compl_use_match(c);
|
||||
@@ -5378,6 +5379,8 @@ ins_complete(int c, int enable_pum)
|
||||
{
|
||||
EMSG2(_(e_notset), ctrl_x_mode == CTRL_X_FUNCTION
|
||||
? "completefunc" : "omnifunc");
|
||||
/* restore did_ai, so that adding comment leader works */
|
||||
did_ai = save_did_ai;
|
||||
return FAIL;
|
||||
}
|
||||
|
||||
|
@@ -551,4 +551,23 @@ func Test_completion_can_undo()
|
||||
iunmap <Right>
|
||||
endfunc
|
||||
|
||||
func Test_completion_comment_formatting()
|
||||
new
|
||||
setl formatoptions=tcqro
|
||||
call feedkeys("o/*\<cr>\<cr>/\<esc>", 'tx')
|
||||
call assert_equal(['', '/*', ' *', ' */'], getline(1,4))
|
||||
%d
|
||||
call feedkeys("o/*\<cr>foobar\<cr>/\<esc>", 'tx')
|
||||
call assert_equal(['', '/*', ' * foobar', ' */'], getline(1,4))
|
||||
%d
|
||||
try
|
||||
call feedkeys("o/*\<cr>\<cr>\<c-x>\<c-u>/\<esc>", 'tx')
|
||||
call assert_false(1, 'completefunc not set, should have failed')
|
||||
catch
|
||||
call assert_exception('E764:')
|
||||
endtry
|
||||
call assert_equal(['', '/*', ' *', ' */'], getline(1,4))
|
||||
bwipe!
|
||||
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 */
|
||||
/**/
|
||||
347,
|
||||
/**/
|
||||
346,
|
||||
/**/
|
||||
|
Reference in New Issue
Block a user