From 19834010889fc5bfa0f88b3ba83133dae6c0a35d Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Tue, 12 Jun 2018 17:03:39 +0200 Subject: [PATCH] patch 8.1.0047: no completion for :unlet $VAR Problem: No completion for :unlet $VAR. Solution: Add completion. (Jason Franklin) --- src/ex_docmd.c | 13 ++++++++++++- src/testdir/test_unlet.vim | 10 ++++++++++ src/version.c | 2 ++ 3 files changed, 24 insertions(+), 1 deletion(-) diff --git a/src/ex_docmd.c b/src/ex_docmd.c index 3bc86f5ac..5229e0e73 100644 --- a/src/ex_docmd.c +++ b/src/ex_docmd.c @@ -4056,8 +4056,16 @@ set_one_cmd_context( case CMD_unlet: while ((xp->xp_pattern = vim_strchr(arg, ' ')) != NULL) arg = xp->xp_pattern + 1; + xp->xp_context = EXPAND_USER_VARS; xp->xp_pattern = arg; + + if (*xp->xp_pattern == '$') + { + xp->xp_context = EXPAND_ENV_VARS; + ++xp->xp_pattern; + } + break; case CMD_function: @@ -11277,7 +11285,10 @@ makeopens( * winminheight and winminwidth need to be set to avoid an error if the * user has set winheight or winwidth. */ - if (put_line(fd, "set winminheight=1 winheight=1 winminwidth=1 winwidth=1") == FAIL) + if (put_line(fd, "set winminheight=0") == FAIL + || put_line(fd, "set winheight=1") == FAIL + || put_line(fd, "set winminwidth=0") == FAIL + || put_line(fd, "set winwidth=1") == FAIL) return FAIL; if (nr > 1 && ses_winsizes(fd, restore_size, tab_firstwin) == FAIL) return FAIL; diff --git a/src/testdir/test_unlet.vim b/src/testdir/test_unlet.vim index 6636f6d66..0a9f3c61b 100644 --- a/src/testdir/test_unlet.vim +++ b/src/testdir/test_unlet.vim @@ -45,3 +45,13 @@ func Test_unlet_env() unlet $MUST_NOT_BE_AN_ERROR endfunc + +func Test_unlet_complete() + let g:FOOBAR = 1 + call feedkeys(":unlet g:FOO\t\n", 'tx') + call assert_true(!exists('g:FOOBAR')) + + let $FOOBAR = 1 + call feedkeys(":unlet $FOO\t\n", 'tx') + call assert_true(!exists('$FOOBAR') || empty($FOOBAR)) +endfunc diff --git a/src/version.c b/src/version.c index 2ce060c50..d290fda6f 100644 --- a/src/version.c +++ b/src/version.c @@ -761,6 +761,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 47, /**/ 46, /**/ -- 2.40.0