aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Edmund Lazo <janedmundlazo@hotmail.com>2018-10-02 22:10:47 -0400
committerJan Edmund Lazo <janedmundlazo@hotmail.com>2018-10-02 22:47:47 -0400
commitc0d835764fbf33b2effc359498e58e8a114444a8 (patch)
treeb0598f7a1697285f7586a4c6f354c7a811d2d278
parent07fbdf4acc3b15ff97acb5c90243c61d938f8541 (diff)
downloadrneovim-c0d835764fbf33b2effc359498e58e8a114444a8.tar.gz
rneovim-c0d835764fbf33b2effc359498e58e8a114444a8.tar.bz2
rneovim-c0d835764fbf33b2effc359498e58e8a114444a8.zip
vim-patch:8.1.0047: no completion for :unlet $VAR
Problem: No completion for :unlet $VAR. Solution: Add completion. (Jason Franklin) https://github.com/vim/vim/commit/19834010889fc5bfa0f88b3ba83133dae6c0a35d
-rw-r--r--src/nvim/ex_docmd.c13
-rw-r--r--src/nvim/testdir/test_unlet.vim10
2 files changed, 21 insertions, 2 deletions
diff --git a/src/nvim/ex_docmd.c b/src/nvim/ex_docmd.c
index f8d4e7d980..2a733f5831 100644
--- a/src/nvim/ex_docmd.c
+++ b/src/nvim/ex_docmd.c
@@ -3260,8 +3260,15 @@ const char * set_one_cmd_context(
while ((xp->xp_pattern = (char_u *)strchr(arg, ' ')) != NULL) {
arg = (const char *)xp->xp_pattern + 1;
}
+
xp->xp_context = EXPAND_USER_VARS;
xp->xp_pattern = (char_u *)arg;
+
+ if (*xp->xp_pattern == '$') {
+ xp->xp_context = EXPAND_ENV_VARS;
+ xp->xp_pattern++;
+ }
+
break;
case CMD_function:
@@ -9049,8 +9056,10 @@ makeopens(
// cursor can be set. This is done again below.
// 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 winminwidth=1 winheight=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) {
diff --git a/src/nvim/testdir/test_unlet.vim b/src/nvim/testdir/test_unlet.vim
index dbddffb492..b02bdaab3b 100644
--- a/src/nvim/testdir/test_unlet.vim
+++ b/src/nvim/testdir/test_unlet.vim
@@ -52,3 +52,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