diff options
author | KunMing Xie <qqzz014@gmail.com> | 2017-11-11 06:35:55 +0800 |
---|---|---|
committer | Justin M. Keyes <justinkz@gmail.com> | 2017-11-10 23:35:55 +0100 |
commit | faa15c5b83d409489c5147ad99e2c44adb3eb37c (patch) | |
tree | 709f8b83c861250995e8043f7ffbb1f0a018d459 | |
parent | f5d4da0144c97ba13f530ea7dbd50f7b9768cb34 (diff) | |
download | rneovim-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.c | 6 | ||||
-rw-r--r-- | src/nvim/testdir/test_cmdline.vim | 28 | ||||
-rw-r--r-- | src/nvim/version.c | 2 |
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, |