mirror of
https://github.com/vim/vim.git
synced 2025-09-25 03:54:15 -04:00
patch 8.2.1403: Vim9: Vim highlighting may fail in cmdline window
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)
This commit is contained in:
@@ -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,
|
||||
|
@@ -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
|
||||
|
@@ -754,6 +754,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
1403,
|
||||
/**/
|
||||
1402,
|
||||
/**/
|
||||
|
Reference in New Issue
Block a user