summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2020-08-09 14:33:55 +0200
committerBram Moolenaar <Bram@vim.org>2020-08-09 14:33:55 +0200
commit3896a105eb3697b1a399255ac31c742c8840bd69 (patch)
tree6c01db70d33fdbd680389734dd19fc7a09027134
parent94f6c06ac54401ea34a07f8c45242f11bd1e1e3a (diff)
patch 8.2.1403: Vim9: Vim highlighting may fail in cmdline windowv8.2.1403
Problem: Vim9: Vim highlighting fails in cmdline window if it uses Vim9 commands. Solution: Allow using :vim9script, :import and :export while in the cmdline window. (closes #6656)
-rw-r--r--src/ex_cmds.h6
-rw-r--r--src/testdir/test_vim9_script.vim31
-rw-r--r--src/version.c2
3 files changed, 36 insertions, 3 deletions
diff --git a/src/ex_cmds.h b/src/ex_cmds.h
index c65b956ee4..508ecb8704 100644
--- a/src/ex_cmds.h
+++ b/src/ex_cmds.h
@@ -572,7 +572,7 @@ EXCMD(CMD_exit, "exit", ex_exit,
EX_RANGE|EX_WHOLEFOLD|EX_BANG|EX_FILE1|EX_ARGOPT|EX_DFLALL|EX_TRLBAR|EX_CMDWIN|EX_LOCK_OK,
ADDR_LINES),
EXCMD(CMD_export, "export", ex_export,
- EX_EXTRA|EX_NOTRLCOM|EX_LOCK_OK,
+ EX_EXTRA|EX_NOTRLCOM|EX_CMDWIN|EX_LOCK_OK,
ADDR_NONE),
EXCMD(CMD_exusage, "exusage", ex_exusage,
EX_TRLBAR,
@@ -698,7 +698,7 @@ EXCMD(CMD_imenu, "imenu", ex_menu,
EX_RANGE|EX_ZEROR|EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN|EX_LOCK_OK,
ADDR_OTHER),
EXCMD(CMD_import, "import", ex_import,
- EX_EXTRA|EX_NOTRLCOM|EX_LOCK_OK,
+ EX_EXTRA|EX_NOTRLCOM|EX_CMDWIN|EX_LOCK_OK,
ADDR_NONE),
EXCMD(CMD_inoremap, "inoremap", ex_map,
EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN|EX_LOCK_OK,
@@ -1670,7 +1670,7 @@ EXCMD(CMD_vimgrepadd, "vimgrepadd", ex_vimgrep,
EX_RANGE|EX_BANG|EX_NEEDARG|EX_EXTRA|EX_NOTRLCOM|EX_TRLBAR|EX_XFILE,
ADDR_OTHER),
EXCMD(CMD_vim9script, "vim9script", ex_vim9script,
- EX_LOCK_OK,
+ EX_CMDWIN|EX_LOCK_OK,
ADDR_NONE),
EXCMD(CMD_viusage, "viusage", ex_viusage,
EX_TRLBAR,
diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim
index 6c04316bc6..2f7d5654d1 100644
--- a/src/testdir/test_vim9_script.vim
+++ b/src/testdir/test_vim9_script.vim
@@ -3009,6 +3009,37 @@ def Test_vim9_autoload()
&rtp = save_rtp
enddef
+def Test_cmdline_win()
+ # if the Vim syntax highlighting uses Vim9 constructs they can be used from
+ # the command line window.
+ mkdir('rtp/syntax', 'p')
+ let export_lines =<< trim END
+ vim9script
+ export let That = 'yes'
+ END
+ writefile(export_lines, 'rtp/syntax/Xexport.vim')
+ let import_lines =<< trim END
+ vim9script
+ import That from './Xexport.vim'
+ END
+ writefile(import_lines, 'rtp/syntax/vim.vim')
+ let save_rtp = &rtp
+ &rtp = getcwd() .. '/rtp' .. ',' .. &rtp
+ syntax on
+ augroup CmdWin
+ autocmd CmdwinEnter * g:got_there = 'yes'
+ augroup END
+ # this will open and also close the cmdline window
+ feedkeys('q:', 'xt')
+ assert_equal('yes', g:got_there)
+
+ augroup CmdWin
+ au!
+ augroup END
+ &rtp = save_rtp
+ delete('rtp', 'rf')
+enddef
+
" Keep this last, it messes up highlighting.
def Test_substitute_cmd()
new
diff --git a/src/version.c b/src/version.c
index 697a47cf9c..ddd4354e6c 100644
--- a/src/version.c
+++ b/src/version.c
@@ -755,6 +755,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1403,
+/**/
1402,
/**/
1401,