]> granicus.if.org Git - vim/commitdiff
patch 8.0.0218: no completion for :cexpr and similar commands v8.0.0218
authorBram Moolenaar <Bram@vim.org>
Sun, 22 Jan 2017 15:46:56 +0000 (16:46 +0100)
committerBram Moolenaar <Bram@vim.org>
Sun, 22 Jan 2017 15:46:56 +0000 (16:46 +0100)
Problem:    No command line completion for :cexpr, :cgetexpr, :caddexpr, etc.
Solution:   Make completion work. (Yegappan Lakshmanan)  Add a test.

src/ex_docmd.c
src/testdir/test_cmdline.vim
src/version.c

index 295e53960f68fc66235296c4c3b6b2f4f3b2108b..cff41cf1486b64197ca3dc44aee01d901c06c3cb 100644 (file)
@@ -4109,6 +4109,12 @@ set_one_cmd_context(
        case CMD_echoerr:
        case CMD_call:
        case CMD_return:
+       case CMD_cexpr:
+       case CMD_caddexpr:
+       case CMD_cgetexpr:
+       case CMD_lexpr:
+       case CMD_laddexpr:
+       case CMD_lgetexpr:
            set_context_for_expression(xp, arg, ea.cmdidx);
            break;
 
index 96fee0b1c899a0f014dff705abfc845575b19de5..abeb609eaa24866011375e01d279694fe104e6cb 100644 (file)
@@ -25,6 +25,34 @@ func Test_complete_wildmenu()
   set nowildmenu
 endfunc
 
+func Test_expr_completion()
+  if !(has('cmdline_compl') && has('eval'))
+    return
+  endif
+  for cmd in [
+       \ 'let a = ',
+       \ 'if',
+       \ 'elseif',
+       \ 'while',
+       \ 'for',
+       \ 'echo',
+       \ 'echon',
+       \ 'execute',
+       \ 'echomsg',
+       \ 'echoerr',
+       \ 'call',
+       \ 'return',
+       \ 'cexpr',
+       \ 'caddexpr',
+       \ 'cgetexpr',
+       \ 'lexpr',
+       \ 'laddexpr',
+       \ 'lgetexpr']
+    call feedkeys(":" . cmd . " getl\<Tab>\<Home>\"\<CR>", 'xt')
+    call assert_equal('"' . cmd . ' getline(', getreg(':'))
+  endfor
+endfunc
+
 func Test_getcompletion()
   if !has('cmdline_compl')
     return
index 76b43505800541837261e042a5660a26cde1a58b..286096866e37c4f63b8e8dc672948fe8ce815217 100644 (file)
@@ -764,6 +764,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    218,
 /**/
     217,
 /**/