summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2017-01-22 16:46:56 +0100
committerBram Moolenaar <Bram@vim.org>2017-01-22 16:46:56 +0100
commit2b2207ba69c6b009e466a36eef0644ca723e16d3 (patch)
tree4ad19516d7a232d12921ab9d3be50ce49326345c
parente2d74dbe19c0980c72725a7d0c2b668d6f41766e (diff)
patch 8.0.0218: no completion for :cexpr and similar commandsv8.0.0218
Problem: No command line completion for :cexpr, :cgetexpr, :caddexpr, etc. Solution: Make completion work. (Yegappan Lakshmanan) Add a test.
-rw-r--r--src/ex_docmd.c6
-rw-r--r--src/testdir/test_cmdline.vim28
-rw-r--r--src/version.c2
3 files changed, 36 insertions, 0 deletions
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index 295e53960f..cff41cf148 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 96fee0b1c8..abeb609eaa 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\<Tab>\<Home>\"\<CR>", '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 76b4350580..286096866e 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 */
/**/
+ 218,
+/**/
217,
/**/
216,