From: Bram Moolenaar Date: Sun, 22 Jan 2017 15:46:56 +0000 (+0100) Subject: patch 8.0.0218: no completion for :cexpr and similar commands X-Git-Tag: v8.0.0218 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=2b2207ba69c6b009e466a36eef0644ca723e16d3;p=vim patch 8.0.0218: no completion for :cexpr and similar commands Problem: No command line completion for :cexpr, :cgetexpr, :caddexpr, etc. Solution: Make completion work. (Yegappan Lakshmanan) Add a test. --- diff --git a/src/ex_docmd.c b/src/ex_docmd.c index 295e53960..cff41cf14 100644 --- a/src/ex_docmd.c +++ b/src/ex_docmd.c @@ -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; diff --git a/src/testdir/test_cmdline.vim b/src/testdir/test_cmdline.vim index 96fee0b1c..abeb609ea 100644 --- a/src/testdir/test_cmdline.vim +++ b/src/testdir/test_cmdline.vim @@ -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\\\"\", 'xt') + call assert_equal('"' . cmd . ' getline(', getreg(':')) + endfor +endfunc + func Test_getcompletion() if !has('cmdline_compl') return diff --git a/src/version.c b/src/version.c index 76b435058..286096866 100644 --- a/src/version.c +++ b/src/version.c @@ -764,6 +764,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 218, /**/ 217, /**/