]> granicus.if.org Git - vim/commitdiff
patch 8.0.0347: when using completion comment leader wont work v8.0.0347
authorBram Moolenaar <Bram@vim.org>
Tue, 21 Feb 2017 22:00:36 +0000 (23:00 +0100)
committerBram Moolenaar <Bram@vim.org>
Tue, 21 Feb 2017 22:00:36 +0000 (23:00 +0100)
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)

src/edit.c
src/testdir/test_popup.vim
src/version.c

index d7f89bcbed8b36245345a8804206f663b698a08d..25a123e8891ccb29e317258f4e2dccfb7d11bf78 100644 (file)
@@ -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;
            }
 
index 2c6afa06c286ad43f60fd440f6430a5f8ff9a35b..2823ed6967b244f04c4f8fa1514bf556647abbea 100644 (file)
@@ -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
index 1d23935fdc874b7c1f2bc893aabc2c501774d13d..2a54dc9cf6af047a074b63272d01e84f59282598 100644 (file)
@@ -764,6 +764,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    347,
 /**/
     346,
 /**/