mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
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:
parent
4303399c10
commit
cf0b344df1
@ -4344,6 +4344,7 @@ static int ins_complete(int c, bool enable_pum)
|
|||||||
int save_w_wrow;
|
int save_w_wrow;
|
||||||
int save_w_leftcol;
|
int save_w_leftcol;
|
||||||
int insert_match;
|
int insert_match;
|
||||||
|
int save_did_ai = did_ai;
|
||||||
|
|
||||||
compl_direction = ins_compl_key2dir(c);
|
compl_direction = ins_compl_key2dir(c);
|
||||||
insert_match = ins_compl_use_match(c);
|
insert_match = ins_compl_use_match(c);
|
||||||
@ -4559,6 +4560,8 @@ static int ins_complete(int c, bool enable_pum)
|
|||||||
if (*funcname == NUL) {
|
if (*funcname == NUL) {
|
||||||
EMSG2(_(e_notset), ctrl_x_mode == CTRL_X_FUNCTION
|
EMSG2(_(e_notset), ctrl_x_mode == CTRL_X_FUNCTION
|
||||||
? "completefunc" : "omnifunc");
|
? "completefunc" : "omnifunc");
|
||||||
|
// restore did_ai, so that adding comment leader works
|
||||||
|
did_ai = save_did_ai;
|
||||||
return FAIL;
|
return FAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -522,4 +522,23 @@ func Test_completion_can_undo()
|
|||||||
iunmap <Right>
|
iunmap <Right>
|
||||||
endfunc
|
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
|
" vim: shiftwidth=2 sts=2 expandtab
|
||||||
|
Loading…
Reference in New Issue
Block a user