aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKunMing Xie <qqzz014@gmail.com>2017-11-11 06:35:55 +0800
committerJustin M. Keyes <justinkz@gmail.com>2017-11-10 23:35:55 +0100
commitfaa15c5b83d409489c5147ad99e2c44adb3eb37c (patch)
tree709f8b83c861250995e8043f7ffbb1f0a018d459
parentf5d4da0144c97ba13f530ea7dbd50f7b9768cb34 (diff)
downloadrneovim-faa15c5b83d409489c5147ad99e2c44adb3eb37c.tar.gz
rneovim-faa15c5b83d409489c5147ad99e2c44adb3eb37c.tar.bz2
rneovim-faa15c5b83d409489c5147ad99e2c44adb3eb37c.zip
vim-patch:8.0.0218 (#7529)
Problem: No command line completion for :cexpr, :cgetexpr, :caddexpr, etc. Solution: Make completion work. (Yegappan Lakshmanan) Add a test. https://github.com/vim/vim/commit/2b2207ba69c6b009e466a36eef0644ca723e16d3
-rw-r--r--src/nvim/ex_docmd.c6
-rw-r--r--src/nvim/testdir/test_cmdline.vim28
-rw-r--r--src/nvim/version.c2
3 files changed, 35 insertions, 1 deletions
diff --git a/src/nvim/ex_docmd.c b/src/nvim/ex_docmd.c
index 096187b162..7a2b0328df 100644
--- a/src/nvim/ex_docmd.c
+++ b/src/nvim/ex_docmd.c
@@ -3272,6 +3272,12 @@ const char * 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, (char_u *)arg, ea.cmdidx);
break;
diff --git a/src/nvim/testdir/test_cmdline.vim b/src/nvim/testdir/test_cmdline.vim
index c0f04f4730..5abff1838d 100644
--- a/src/nvim/testdir/test_cmdline.vim
+++ b/src/nvim/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/nvim/version.c b/src/nvim/version.c
index a31381eddf..7a12e6c38a 100644
--- a/src/nvim/version.c
+++ b/src/nvim/version.c
@@ -886,7 +886,7 @@ static const int included_patches[] = {
// 221 NA
// 220,
219,
- // 218,
+ 218,
// 217 NA
// 216,
// 215,