changeset 24256:b471a413d36a v8.2.2669

patch 8.2.2669: command line completion does not work after "vim9" Commit: https://github.com/vim/vim/commit/df749a2b9cab579b8c0ca6ca91889aa03d2da704 Author: Bram Moolenaar <Bram@vim.org> Date: Sun Mar 28 15:29:43 2021 +0200 patch 8.2.2669: command line completion does not work after "vim9" Problem: Command line completion does not work after "vim9". Solution: Include the "9". (Naohiro Ono, closes https://github.com/vim/vim/issues/8025)
author Bram Moolenaar <Bram@vim.org>
date Sun, 28 Mar 2021 15:30:05 +0200
parents 811f6574df57
children 952600bbf45c
files src/cmdexpand.c src/ex_docmd.c src/testdir/test_cmdline.vim src/version.c
diffstat 4 files changed, 10 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/cmdexpand.c
+++ b/src/cmdexpand.c
@@ -1020,8 +1020,9 @@ set_one_cmd_context(
 	p = cmd;
 	while (ASCII_ISALPHA(*p) || *p == '*')    // Allow * wild card
 	    ++p;
-	// a user command may contain digits
-	if (ASCII_ISUPPER(cmd[0]))
+	// A user command may contain digits.
+	// Include "9" for "vim9*" commands; "vim9cmd" and "vim9script".
+	if (ASCII_ISUPPER(cmd[0]) || STRNCMP("vim9", cmd, 4) == 0)
 	    while (ASCII_ISALNUM(*p) || *p == '*')
 		++p;
 	// for python 3.x: ":py3*" commands completion
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -3553,7 +3553,7 @@ find_ex_command(
 	}
 	else if (*p == '9' && STRNCMP("vim9", eap->cmd, 4) == 0)
 	{
-	    // include "9" for "vim9script"
+	    // include "9" for "vim9*" commands; "vim9cmd" and "vim9script".
 	    ++p;
 	    while (ASCII_ISALPHA(*p))
 		++p;
--- a/src/testdir/test_cmdline.vim
+++ b/src/testdir/test_cmdline.vim
@@ -871,6 +871,10 @@ func Test_cmdline_complete_various()
   call feedkeys(":py3\<C-A>\<C-B>\"\<CR>", 'xt')
   call assert_equal('"py3 py3do py3file', @:)
 
+  " completion for the :vim9 commands
+  call feedkeys(":vim9\<C-A>\<C-B>\"\<CR>", 'xt')
+  call assert_equal('"vim9cmd vim9script', @:)
+
   " redir @" is not the start of a comment. So complete after that
   call feedkeys(":redir @\" | cwin\t\<C-B>\"\<CR>", 'xt')
   call assert_equal('"redir @" | cwindow', @:)
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2669,
+/**/
     2668,
 /**/
     2667,