Mercurial > vim
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', @:)