diff options
author | Bram Moolenaar <Bram@vim.org> | 2017-02-21 23:00:36 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2017-02-21 23:00:36 +0100 |
commit | d099e033703ce0772f152b8df8a763f0b65303ee (patch) | |
tree | 5ec8e995490879b5d202a4f769a0b8d9a14f4a25 | |
parent | bfd30590f6e3475033099d0fb20d9444fa10af6b (diff) | |
download | vim-git-d099e033703ce0772f152b8df8a763f0b65303ee.tar.gz |
patch 8.0.0347: when using completion comment leader wont workv8.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 #1494)
-rw-r--r-- | src/edit.c | 3 | ||||
-rw-r--r-- | src/testdir/test_popup.vim | 19 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 24 insertions, 0 deletions
diff --git a/src/edit.c b/src/edit.c index d7f89bcbe..25a123e88 100644 --- a/src/edit.c +++ b/src/edit.c @@ -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; } diff --git a/src/testdir/test_popup.vim b/src/testdir/test_popup.vim index 2c6afa06c..2823ed696 100644 --- a/src/testdir/test_popup.vim +++ b/src/testdir/test_popup.vim @@ -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 diff --git a/src/version.c b/src/version.c index 1d23935fd..2a54dc9cf 100644 --- a/src/version.c +++ b/src/version.c @@ -765,6 +765,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 347, +/**/ 346, /**/ 345, |