changeset 30017:578e71f924fe v9.0.0346

patch 9.0.0346: :horizontal modifier not fully supported Commit: https://github.com/vim/vim/commit/d3de178e5352fedf0f30b979f46a2fcbca24ea40 Author: zeertzjq <zeertzjq@outlook.com> Date: Thu Sep 1 12:58:52 2022 +0100 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)
author Bram Moolenaar <Bram@vim.org>
date Thu, 01 Sep 2022 14:00:04 +0200
parents 3514fb971cff
children 64780017de33
files runtime/doc/map.txt src/cmdexpand.c src/ex_docmd.c src/testdir/test_cmdline.vim src/testdir/test_usercommands.vim src/usercmd.c src/version.c
diffstat 7 files changed, 20 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/runtime/doc/map.txt
+++ b/runtime/doc/map.txt
@@ -1724,11 +1724,11 @@ The valid escape sequences are
 					*<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
--- a/src/cmdexpand.c
+++ b/src/cmdexpand.c
@@ -1776,6 +1776,7 @@ set_context_by_cmdname(
 	case CMD_folddoclosed:
 	case CMD_folddoopen:
 	case CMD_hide:
+	case CMD_horizontal:
 	case CMD_keepalt:
 	case CMD_keepjumps:
 	case CMD_keepmarks:
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -2455,6 +2455,7 @@ do_one_cmd(
 	    case CMD_final:
 	    case CMD_help:
 	    case CMD_hide:
+	    case CMD_horizontal:
 	    case CMD_ijump:
 	    case CMD_ilist:
 	    case CMD_isearch:
--- a/src/testdir/test_cmdline.vim
+++ b/src/testdir/test_cmdline.vim
@@ -1078,6 +1078,10 @@ func Test_cmdline_complete_various()
   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", @:)
--- a/src/testdir/test_usercommands.vim
+++ b/src/testdir/test_usercommands.vim
@@ -103,6 +103,10 @@ function Test_cmdmods()
   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
--- a/src/usercmd.c
+++ b/src/usercmd.c
@@ -1443,6 +1443,9 @@ add_win_cmd_modifers(char_u *buf, cmdmod
     // :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;
 }
 
--- a/src/version.c
+++ b/src/version.c
@@ -708,6 +708,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    346,
+/**/
     345,
 /**/
     344,