patch 9.0.0346: :horizontal modifier not fully supported
Problem: :horizontal modifier not fully supported.
Solution: Also use :horizontal for completion and user commands.
(closes #11025)
diff --git a/runtime/doc/map.txt b/runtime/doc/map.txt
index 69557d6..6beae6e 100644
--- a/runtime/doc/map.txt
+++ b/runtime/doc/map.txt
@@ -1724,11 +1724,11 @@
*<mods>* *<q-mods>* *:command-modifiers*
<mods> The command modifiers, if specified. Otherwise, expands to
nothing. Supported modifiers are |:aboveleft|, |:belowright|,
- |:botright|, |:browse|, |:confirm|, |:hide|, |:keepalt|,
- |:keepjumps|, |:keepmarks|, |:keeppatterns|, |:leftabove|,
- |:lockmarks|, |:noautocmd|, |:noswapfile| |:rightbelow|,
- |:sandbox|, |:silent|, |:tab|, |:topleft|, |:unsilent|,
- |:verbose|, and |:vertical|.
+ |:botright|, |:browse|, |:confirm|, |:hide|, |:horizontal|,
+ |:keepalt|, |:keepjumps|, |:keepmarks|, |:keeppatterns|,
+ |:leftabove|, |:lockmarks|, |:noautocmd|, |:noswapfile|
+ |:rightbelow|, |:sandbox|, |:silent|, |:tab|, |:topleft|,
+ |:unsilent|, |:verbose|, and |:vertical|.
Note that |:filter| is not supported.
Examples: >
command! -nargs=+ -complete=file MyEdit
diff --git a/src/cmdexpand.c b/src/cmdexpand.c
index 5cdb1be..bfa3053 100644
--- a/src/cmdexpand.c
+++ b/src/cmdexpand.c
@@ -1776,6 +1776,7 @@
case CMD_folddoclosed:
case CMD_folddoopen:
case CMD_hide:
+ case CMD_horizontal:
case CMD_keepalt:
case CMD_keepjumps:
case CMD_keepmarks:
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index 681ab2c..9f7875f 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -2455,6 +2455,7 @@
case CMD_final:
case CMD_help:
case CMD_hide:
+ case CMD_horizontal:
case CMD_ijump:
case CMD_ilist:
case CMD_isearch:
diff --git a/src/testdir/test_cmdline.vim b/src/testdir/test_cmdline.vim
index 95db663..bec0f5f 100644
--- a/src/testdir/test_cmdline.vim
+++ b/src/testdir/test_cmdline.vim
@@ -1078,6 +1078,10 @@
call feedkeys(":all abc\<C-A>\<C-B>\"\<CR>", 'xt')
call assert_equal("\"all abc\<C-A>", @:)
+ " completion for :wincmd with :horizontal modifier
+ call feedkeys(":horizontal wincm\<C-A>\<C-B>\"\<CR>", 'xt')
+ call assert_equal("\"horizontal wincmd", @:)
+
" completion for a command with a command modifier
call feedkeys(":topleft new\<C-A>\<C-B>\"\<CR>", 'xt')
call assert_equal("\"topleft new", @:)
diff --git a/src/testdir/test_usercommands.vim b/src/testdir/test_usercommands.vim
index 9c75a91..91d8bfd 100644
--- a/src/testdir/test_usercommands.vim
+++ b/src/testdir/test_usercommands.vim
@@ -103,6 +103,10 @@
call assert_equal('vertical', g:mods)
vert MyCmd
call assert_equal('vertical', g:mods)
+ horizontal MyCmd
+ call assert_equal('horizontal', g:mods)
+ hor MyCmd
+ call assert_equal('horizontal', g:mods)
aboveleft belowright botright browse confirm hide keepalt keepjumps
\ keepmarks keeppatterns lockmarks noautocmd noswapfile silent
diff --git a/src/usercmd.c b/src/usercmd.c
index 7113511..6b3eadc 100644
--- a/src/usercmd.c
+++ b/src/usercmd.c
@@ -1443,6 +1443,9 @@
// :vertical
if (cmod->cmod_split & WSP_VERT)
result += add_cmd_modifier(buf, "vertical", multi_mods);
+ // :horizontal
+ if (cmod->cmod_split & WSP_HOR)
+ result += add_cmd_modifier(buf, "horizontal", multi_mods);
return result;
}
diff --git a/src/version.c b/src/version.c
index 0e46347..f6cdb1c 100644
--- a/src/version.c
+++ b/src/version.c
@@ -708,6 +708,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 346,
+/**/
345,
/**/
344,