diff options
author | Bram Moolenaar <Bram@vim.org> | 2021-01-26 22:42:21 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2021-01-26 22:42:21 +0100 |
commit | 21829c5f2c86cd525c8468121b4fc54c5d75bf6e (patch) | |
tree | 41396772eb831dd5c7d774d3a98016b640d7bda5 | |
parent | b7e2670b6a1de02c772af5097ba24f2a15b26eec (diff) | |
download | vim-git-21829c5f2c86cd525c8468121b4fc54c5d75bf6e.tar.gz |
patch 8.2.2415: no way to check for the cmdwin featurev8.2.2415
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.
-rw-r--r-- | runtime/doc/cmdline.txt | 2 | ||||
-rw-r--r-- | src/evalfunc.c | 7 | ||||
-rw-r--r-- | src/testdir/test_arglist.vim | 7 | ||||
-rw-r--r-- | src/testdir/test_autocmd.vim | 6 | ||||
-rw-r--r-- | src/testdir/test_cmdline.vim | 26 | ||||
-rw-r--r-- | src/testdir/test_ins_complete.vim | 2 | ||||
-rw-r--r-- | src/testdir/test_normal.vim | 8 | ||||
-rw-r--r-- | src/testdir/test_tabpage.vim | 2 | ||||
-rw-r--r-- | src/testdir/test_termcodes.vim | 2 | ||||
-rw-r--r-- | src/testdir/test_window_cmd.vim | 2 | ||||
-rw-r--r-- | src/version.c | 2 |
11 files changed, 53 insertions, 13 deletions
diff --git a/runtime/doc/cmdline.txt b/runtime/doc/cmdline.txt index 990380f04..efb1400f1 100644 --- a/runtime/doc/cmdline.txt +++ b/runtime/doc/cmdline.txt @@ -1096,7 +1096,7 @@ Also see |`=|. 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?* diff --git a/src/evalfunc.c b/src/evalfunc.c index cc812ce33..b752c51d1 100644 --- 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 diff --git a/src/testdir/test_arglist.vim b/src/testdir/test_arglist.vim index b72fe2d53..620299349 100644 --- 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 diff --git a/src/testdir/test_autocmd.vim b/src/testdir/test_autocmd.vim index 5ec854e67..60369c247 100644 --- 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 diff --git a/src/testdir/test_cmdline.vim b/src/testdir/test_cmdline.vim index cb16de124..c2bbcc6c0 100644 --- 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>" diff --git a/src/testdir/test_ins_complete.vim b/src/testdir/test_ins_complete.vim index b1a2a9e30..e59bd207e 100644 --- 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' diff --git a/src/testdir/test_normal.vim b/src/testdir/test_normal.vim index d2f1fab57..8aef41ddd 100644 --- 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! diff --git a/src/testdir/test_tabpage.vim b/src/testdir/test_tabpage.vim index 38a6283eb..dac6d809a 100644 --- 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('$')) diff --git a/src/testdir/test_termcodes.vim b/src/testdir/test_termcodes.vim index 055ed8b65..040869cc0 100644 --- 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 diff --git a/src/testdir/test_window_cmd.vim b/src/testdir/test_window_cmd.vim index 8a9748849..f26b44746 100644 --- a/src/testdir/test_window_cmd.vim +++ b/src/testdir/test_window_cmd.vim @@ -19,6 +19,8 @@ func Test_window_cmd_ls0_with_split() endfunc func Test_window_cmd_cmdwin_with_vsp() + CheckFeature cmdwin + let efmt = 'Expected 0 but got %d (in ls=%d, %s window)' for v in range(0, 2) exec "set ls=" . v diff --git a/src/version.c b/src/version.c index 071a36e86..24a1d7fd4 100644 --- a/src/version.c +++ b/src/version.c @@ -751,6 +751,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 2415, +/**/ 2414, /**/ 2413, |