]> granicus.if.org Git - vim/commitdiff
patch 8.2.1403: Vim9: Vim highlighting may fail in cmdline window v8.2.1403
authorBram Moolenaar <Bram@vim.org>
Sun, 9 Aug 2020 12:33:55 +0000 (14:33 +0200)
committerBram Moolenaar <Bram@vim.org>
Sun, 9 Aug 2020 12:33:55 +0000 (14:33 +0200)
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)

src/ex_cmds.h
src/testdir/test_vim9_script.vim
src/version.c

index c65b956ee45c1766862528ed9e25486a628cf93f..508ecb870438463280c0e28c82dc22579109d8cb 100644 (file)
@@ -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,
index 6c04316bc6a78407d7db98b8b585d43a6c0f140d..2f7d5654d1083397de7df57cf97b53d1bd0d5f64 100644 (file)
@@ -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
index 697a47cf9ce8d218b3aaeb674c1fb4d08148bec9..ddd4354e6cb09adef6e1ee6096be0a431e9ddbb1 100644 (file)
@@ -754,6 +754,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    1403,
 /**/
     1402,
 /**/