vim-patch:8.0.0347

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 vim/vim#1494)

d099e03370
This commit is contained in:
Shougo Matsushita 2017-03-04 12:35:40 +09:00
parent 4303399c10
commit cf0b344df1
2 changed files with 22 additions and 0 deletions

View File

@ -4344,6 +4344,7 @@ static int ins_complete(int c, bool enable_pum)
int save_w_wrow;
int save_w_leftcol;
int insert_match;
int save_did_ai = did_ai;
compl_direction = ins_compl_key2dir(c);
insert_match = ins_compl_use_match(c);
@ -4559,6 +4560,8 @@ static int ins_complete(int c, bool enable_pum)
if (*funcname == NUL) {
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;
}

View File

@ -522,4 +522,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