Mercurial > vim
changeset 23748:93f90f2ff4e9 v8.2.2415
patch 8.2.2415: no way to check for the cmdwin feature
Commit: https://github.com/vim/vim/commit/21829c5f2c86cd525c8468121b4fc54c5d75bf6e
Author: Bram Moolenaar <Bram@vim.org>
Date: Tue Jan 26 22:42:21 2021 +0100
patch 8.2.2415: no way to check for the cmdwin feature
Problem: No way to check for the cmdwin feature, cmdline_hist is now always
enabled.
Solution: Add has('cmdwin') support. Skip arglist test on Windows
temporarily.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Tue, 26 Jan 2021 22:45:04 +0100 |
parents | f0d11de94492 |
children | 7ac205554b4f |
files | runtime/doc/cmdline.txt src/evalfunc.c src/testdir/test_arglist.vim src/testdir/test_autocmd.vim src/testdir/test_cmdline.vim src/testdir/test_ins_complete.vim src/testdir/test_normal.vim src/testdir/test_tabpage.vim src/testdir/test_termcodes.vim src/testdir/test_window_cmd.vim src/version.c |
diffstat | 11 files changed, 53 insertions(+), 13 deletions(-) [+] |
line wrap: on
line diff
--- a/runtime/doc/cmdline.txt +++ b/runtime/doc/cmdline.txt @@ -1096,7 +1096,7 @@ 7. Command-line window *cmdline-windo In the command-line window the command line can be edited just like editing text in any window. It is a special kind of window, because you cannot leave it in a normal way. -{not available when compiled without the |+cmdline_hist| feature} +{not available when compiled without the |+cmdwin| feature} OPEN *c_CTRL-F* *q:* *q/* *q?*
--- a/src/evalfunc.c +++ b/src/evalfunc.c @@ -4651,6 +4651,13 @@ f_has(typval_T *argvars, typval_T *rettv }, {"cmdline_compl", 1}, {"cmdline_hist", 1}, + {"cmdwin", +#ifdef FEAT_CMDWIN + 1 +#else + 0 +#endif + }, {"comments", 1}, {"conceal", #ifdef FEAT_CONCEAL
--- a/src/testdir/test_arglist.vim +++ b/src/testdir/test_arglist.vim @@ -527,6 +527,7 @@ endfunc " Test for quitting Vim with unedited files in the argument list func Test_quit_with_arglist() CheckRunVimInTerminal + let buf = RunVimInTerminal('', {'rows': 6}) call term_sendkeys(buf, ":set nomore\n") call term_sendkeys(buf, ":args a b c\n") @@ -561,9 +562,13 @@ endfunc " Test for ":all" not working when in the cmdline window func Test_all_not_allowed_from_cmdwin() + CheckFeature cmdwin + " TODO: why does this hang on Windows? + CheckNotMSWindows + au BufEnter * all next x - call assert_fails(":norm 7q?x\<CR>", 'E11:') + call assert_fails(":norm 7q?print\<CR>", 'E11:') au! BufEnter endfunc
--- a/src/testdir/test_autocmd.vim +++ b/src/testdir/test_autocmd.vim @@ -2397,10 +2397,8 @@ endfunc func Test_autocmd_CmdWinEnter() CheckRunVimInTerminal - " There is not cmdwin switch, so - " test for cmdline_hist - " (both are available with small builds) - CheckFeature cmdline_hist + CheckFeature cmdwin + let lines =<< trim END let b:dummy_var = 'This is a dummy' autocmd CmdWinEnter * quit
--- a/src/testdir/test_cmdline.vim +++ b/src/testdir/test_cmdline.vim @@ -129,7 +129,6 @@ func Test_wildmenu_screendump() endfunc func Test_map_completion() - CheckFeature cmdline_compl call feedkeys(":map <unique> <si\<Tab>\<Home>\"\<CR>", 'xt') call assert_equal('"map <unique> <silent>', getreg(':')) call feedkeys(":map <script> <un\<Tab>\<Home>\"\<CR>", 'xt') @@ -207,7 +206,6 @@ func Test_map_completion() endfunc func Test_match_completion() - CheckFeature cmdline_compl hi Aardig ctermfg=green call feedkeys(":match \<Tab>\<Home>\"\<CR>", 'xt') call assert_equal('"match Aardig', getreg(':')) @@ -216,7 +214,6 @@ func Test_match_completion() endfunc func Test_highlight_completion() - CheckFeature cmdline_compl hi Aardig ctermfg=green call feedkeys(":hi \<Tab>\<Home>\"\<CR>", 'xt') call assert_equal('"hi Aardig', getreg(':')) @@ -253,7 +250,6 @@ func Test_highlight_easter_egg() endfunc func Test_getcompletion() - CheckFeature cmdline_compl let groupcount = len(getcompletion('', 'event')) call assert_true(groupcount > 0) let matchcount = len('File'->getcompletion('event')) @@ -980,6 +976,8 @@ func Test_getcmdtype() endfunc func Test_getcmdwintype() + CheckFeature cmdwin + call feedkeys("q/:let a = getcmdwintype()\<CR>:q\<CR>", 'x!') call assert_equal('/', a) @@ -996,6 +994,8 @@ func Test_getcmdwintype() endfunc func Test_getcmdwin_autocmd() + CheckFeature cmdwin + let s:seq = [] augroup CmdWin au WinEnter * call add(s:seq, 'WinEnter ' .. win_getid()) @@ -1108,6 +1108,8 @@ func Test_cmdline_overstrike() endfunc func Test_cmdwin_bug() + CheckFeature cmdwin + let winid = win_getid() sp try @@ -1118,6 +1120,7 @@ func Test_cmdwin_bug() endfunc func Test_cmdwin_restore() + CheckFeature cmdwin CheckScreendump let lines =<< trim [SCRIPT] @@ -1193,6 +1196,8 @@ func Test_buffers_lastused() endfunc func Test_cmdwin_feedkeys() + CheckFeature cmdwin + " This should not generate E488 call feedkeys("q:\<CR>", 'x') " Using feedkeys with q: only should automatically close the cmd window @@ -1204,6 +1209,8 @@ endfunc " Tests for the issues fixed in 7.4.441. " When 'cedit' is set to Ctrl-C, opening the command window hangs Vim func Test_cmdwin_cedit() + CheckFeature cmdwin + exe "set cedit=\<C-c>" normal! : call assert_equal(1, winnr('$')) @@ -1226,6 +1233,8 @@ endfunc " Test for CmdwinEnter autocmd func Test_cmdwin_autocmd() + CheckFeature cmdwin + augroup CmdWin au! autocmd CmdwinEnter * startinsert @@ -1268,6 +1277,8 @@ func Test_cmdline_expand_special() endfunc func Test_cmdwin_jump_to_win() + CheckFeature cmdwin + call assert_fails('call feedkeys("q:\<C-W>\<C-W>\<CR>", "xt")', 'E11:') new set modified @@ -1284,6 +1295,7 @@ func Test_cmdwin_jump_to_win() endfunc func Test_cmdwin_interrupted() + CheckFeature cmdwin CheckScreendump " aborting the :smile output caused the cmdline window to use the current @@ -1570,6 +1582,8 @@ endfunc " Test for recursively getting multiple command line inputs func Test_cmdwin_multi_input() + CheckFeature cmdwin + call feedkeys(":\<C-R>=input('P: ')\<CR>\"cyan\<CR>\<CR>", 'xt') call assert_equal('"cyan', @:) endfunc @@ -1594,6 +1608,8 @@ endfunc " Test for normal mode commands not supported in the cmd window func Test_cmdwin_blocked_commands() + CheckFeature cmdwin + call assert_fails('call feedkeys("q:\<C-T>\<CR>", "xt")', 'E11:') call assert_fails('call feedkeys("q:\<C-]>\<CR>", "xt")', 'E11:') call assert_fails('call feedkeys("q:\<C-^>\<CR>", "xt")', 'E11:') @@ -1625,6 +1641,8 @@ endfunc " Close the Cmd-line window in insert mode using CTRL-C func Test_cmdwin_insert_mode_close() + CheckFeature cmdwin + %bw! let s = '' exe "normal q:a\<C-C>let s='Hello'\<CR>"
--- a/src/testdir/test_ins_complete.vim +++ b/src/testdir/test_ins_complete.vim @@ -343,6 +343,8 @@ func Test_compl_feedkeys() endfunc func Test_compl_in_cmdwin() + CheckFeature cmdwin + set wildmenu wildchar=<Tab> com! -nargs=1 -complete=command GetInput let input = <q-args> com! -buffer TestCommand echo 'TestCommand'
--- a/src/testdir/test_normal.vim +++ b/src/testdir/test_normal.vim @@ -2584,9 +2584,11 @@ func Test_normal40_ctrl_bsl() call assert_false(&insertmode) call assert_beeps("normal! \<C-\>\<C-A>", 'xt') - " Using CTRL-\ CTRL-N in cmd window should close the window - call feedkeys("q:\<C-\>\<C-N>", 'xt') - call assert_equal('', getcmdwintype()) + if has('cmdwin') + " Using CTRL-\ CTRL-N in cmd window should close the window + call feedkeys("q:\<C-\>\<C-N>", 'xt') + call assert_equal('', getcmdwintype()) + endif " clean up bw!
--- a/src/testdir/test_tabpage.vim +++ b/src/testdir/test_tabpage.vim @@ -617,6 +617,8 @@ endfunc " Test for closing the tab page from a command window func Test_tabpage_close_cmdwin() + CheckFeature cmdwin + tabnew call feedkeys("q/:tabclose\<CR>\<Esc>", 'xt') call assert_equal(2, tabpagenr('$'))
--- a/src/testdir/test_termcodes.vim +++ b/src/testdir/test_termcodes.vim @@ -367,6 +367,8 @@ endfunc " Test for using the mouse to increaes the height of the cmdline window func Test_mouse_cmdwin_resize() + CheckFeature cmdwin + let save_mouse = &mouse let save_term = &term let save_ttymouse = &ttymouse