Skip to content

Commit 2b2207b

Browse files
committed
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.
1 parent e2d74db commit 2b2207b

3 files changed

Lines changed: 36 additions & 0 deletions

File tree

src/ex_docmd.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4109,6 +4109,12 @@ set_one_cmd_context(
41094109
case CMD_echoerr:
41104110
case CMD_call:
41114111
case CMD_return:
4112+
case CMD_cexpr:
4113+
case CMD_caddexpr:
4114+
case CMD_cgetexpr:
4115+
case CMD_lexpr:
4116+
case CMD_laddexpr:
4117+
case CMD_lgetexpr:
41124118
set_context_for_expression(xp, arg, ea.cmdidx);
41134119
break;
41144120

src/testdir/test_cmdline.vim

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,34 @@ func Test_complete_wildmenu()
2525
set nowildmenu
2626
endfunc
2727

28+
func Test_expr_completion()
29+
if !(has('cmdline_compl') && has('eval'))
30+
return
31+
endif
32+
for cmd in [
33+
\ 'let a = ',
34+
\ 'if',
35+
\ 'elseif',
36+
\ 'while',
37+
\ 'for',
38+
\ 'echo',
39+
\ 'echon',
40+
\ 'execute',
41+
\ 'echomsg',
42+
\ 'echoerr',
43+
\ 'call',
44+
\ 'return',
45+
\ 'cexpr',
46+
\ 'caddexpr',
47+
\ 'cgetexpr',
48+
\ 'lexpr',
49+
\ 'laddexpr',
50+
\ 'lgetexpr']
51+
call feedkeys(":" . cmd . " getl\<Tab>\<Home>\"\<CR>", 'xt')
52+
call assert_equal('"' . cmd . ' getline(', getreg(':'))
53+
endfor
54+
endfunc
55+
2856
func Test_getcompletion()
2957
if !has('cmdline_compl')
3058
return

src/version.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -764,6 +764,8 @@ static char *(features[]) =
764764

765765
static int included_patches[] =
766766
{ /* Add new patch number below this line */
767+
/**/
768+
218,
767769
/**/
768770
217,
769771
/**/

0 commit comments

Comments
 (0)