diff options
author | zeertzjq <zeertzjq@outlook.com> | 2024-12-07 10:17:36 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-12-07 02:17:36 +0000 |
commit | ec94c2704f5059794923777ed51412d80bd26b5b (patch) | |
tree | 5e75aa7277274401f475e3eb1ccc711b7cd2ddc8 /test | |
parent | 517ecb85f58ed6ac8b4d5443931612e75e7c7dc2 (diff) | |
download | rneovim-ec94c2704f5059794923777ed51412d80bd26b5b.tar.gz rneovim-ec94c2704f5059794923777ed51412d80bd26b5b.tar.bz2 rneovim-ec94c2704f5059794923777ed51412d80bd26b5b.zip |
vim-patch:9.1.0908: not possible to configure :messages (#31492)
Problem: not possible to configure :messages
Solution: add the 'messagesopt' option (Shougo Matsushita)
closes: vim/vim#16068
https://github.com/vim/vim/commit/51d4d84d6a7159c6ce9e04b36f8edc105ca3794b
Co-authored-by: Shougo Matsushita <Shougo.Matsu@gmail.com>
Co-authored-by: h_east <h.east.727@gmail.com>
Diffstat (limited to 'test')
-rw-r--r-- | test/functional/legacy/messages_spec.lua | 39 | ||||
-rw-r--r-- | test/old/testdir/gen_opt_test.vim | 6 | ||||
-rw-r--r-- | test/old/testdir/test_cmdline.vim | 26 | ||||
-rw-r--r-- | test/old/testdir/test_messages.vim | 47 | ||||
-rw-r--r-- | test/old/testdir/test_options.vim | 7 |
5 files changed, 96 insertions, 29 deletions
diff --git a/test/functional/legacy/messages_spec.lua b/test/functional/legacy/messages_spec.lua index bc58551a34..063bd05618 100644 --- a/test/functional/legacy/messages_spec.lua +++ b/test/functional/legacy/messages_spec.lua @@ -689,4 +689,43 @@ describe('messages', function() ]]) os.remove('b.txt') end) + + -- oldtest: Test_messagesopt_wait() + it('&messagesopt "wait"', function() + screen = Screen.new(45, 6) + command('set cmdheight=1') + + -- Check hit-enter prompt + command('set messagesopt=hit-enter,history:500') + feed(":echo 'foo' | echo 'bar' | echo 'baz'\n") + screen:expect([[ + | + {3: }| + foo | + bar | + baz | + {6:Press ENTER or type command to continue}^ | + ]]) + feed('<CR>') + + -- Check no hit-enter prompt when "wait:" is set + command('set messagesopt=wait:100,history:500') + feed(":echo 'foo' | echo 'bar' | echo 'baz'\n") + screen:expect({ + grid = [[ + | + {1:~ }| + {3: }| + foo | + bar | + baz | + ]], + timeout = 100, + }) + screen:expect([[ + ^ | + {1:~ }|*4 + | + ]]) + end) end) diff --git a/test/old/testdir/gen_opt_test.vim b/test/old/testdir/gen_opt_test.vim index be5a7e6ee4..74aea93ee9 100644 --- a/test/old/testdir/gen_opt_test.vim +++ b/test/old/testdir/gen_opt_test.vim @@ -117,7 +117,6 @@ let test_values = { "\ 'imstyle': [[0, 1], [-1, 2, 999]], \ 'lines': [[2, 24, 1000], [-1, 0, 1]], \ 'linespace': [[-1, 0, 2, 4, 999], ['']], - \ 'msghistory': [[0, 1, 100, 10000], [-1, 10001]], \ 'numberwidth': [[1, 4, 8, 10, 11, 20], [-1, 0, 21]], \ 'regexpengine': [[0, 1, 2], [-1, 3, 999]], \ 'report': [[0, 1, 2, 9999], [-1]], @@ -264,6 +263,11 @@ let test_values = { \ 'eol:\\u21b5', 'eol:\\U000021b5', 'eol:x,space:y'], \ ['xxx', 'eol:']], \ 'matchpairs': [['', '(:)', '(:),<:>'], ['xxx']], + \ 'messagesopt': [['hit-enter,history:1', 'hit-enter,history:10000', + \ 'history:100,wait:100', 'history:0,wait:0', + \ 'hit-enter,history:1,wait:1'], + \ ['xxx', 'history:500', 'hit-enter,history:-1', + \ 'hit-enter,history:10001', 'hit-enter']], \ 'mkspellmem': [['10000,100,12'], ['', 'xxx', '10000,100']], \ 'mouse': [['', 'n', 'v', 'i', 'c', 'h', 'a', 'r', 'nvi'], \ ['xxx', 'n,v,i']], diff --git a/test/old/testdir/test_cmdline.vim b/test/old/testdir/test_cmdline.vim index 2f34ecb414..cbce0e908d 100644 --- a/test/old/testdir/test_cmdline.vim +++ b/test/old/testdir/test_cmdline.vim @@ -4181,30 +4181,4 @@ func Test_cd_bslash_completion_windows() let &shellslash = save_shellslash endfunc -func Test_msghistory() - " After setting 'msghistory' to 2 and outputting a message 4 times with - " :echomsg, is the number of output lines of :messages 2? - set msghistory=2 - echomsg 'foo' - echomsg 'bar' - echomsg 'baz' - echomsg 'foobar' - call assert_equal(['baz', 'foobar'], GetMessages()) - - " When the number of messages is 10 and 'msghistory' is changed to 5, is the - " number of output lines of :messages 5? - set msghistory=10 - for num in range(1, 10) - echomsg num - endfor - set msghistory=5 - call assert_equal(5, len(GetMessages())) - - " Check empty list - set msghistory=0 - call assert_true(empty(GetMessages())) - - set msghistory& -endfunc - " vim: shiftwidth=2 sts=2 expandtab diff --git a/test/old/testdir/test_messages.vim b/test/old/testdir/test_messages.vim index ac5184645f..d79bc0fae7 100644 --- a/test/old/testdir/test_messages.vim +++ b/test/old/testdir/test_messages.vim @@ -216,6 +216,7 @@ endfunc " Test more-prompt (see :help more-prompt). func Test_message_more() CheckRunVimInTerminal + let buf = RunVimInTerminal('', {'rows': 6}) call term_sendkeys(buf, ":call setline(1, range(1, 100))\n") @@ -611,4 +612,50 @@ func Test_cmdheight_zero() tabonly endfunc +func Test_messagesopt_history() + " After setting 'messagesopt' "history" to 2 and outputting a message 4 times + " with :echomsg, is the number of output lines of :messages 2? + set messagesopt=hit-enter,history:2 + echomsg 'foo' + echomsg 'bar' + echomsg 'baz' + echomsg 'foobar' + call assert_equal(['baz', 'foobar'], GetMessages()) + + " When the number of messages is 10 and 'messagesopt' "history" is changed to + " 5, is the number of output lines of :messages 5? + set messagesopt=hit-enter,history:10 + for num in range(1, 10) + echomsg num + endfor + set messagesopt=hit-enter,history:5 + call assert_equal(5, len(GetMessages())) + + " Check empty list + set messagesopt=hit-enter,history:0 + call assert_true(empty(GetMessages())) + + set messagesopt& +endfunc + +func Test_messagesopt_wait() + CheckRunVimInTerminal + + let buf = RunVimInTerminal('', {'rows': 6, 'cols': 45}) + call term_sendkeys(buf, ":set cmdheight=1\n") + + " Check hit-enter prompt + call term_sendkeys(buf, ":set messagesopt=hit-enter,history:500\n") + call term_sendkeys(buf, ":echo 'foo' | echo 'bar' echo 'baz'\n") + call WaitForAssert({-> assert_equal('Press ENTER or type command to continue', term_getline(buf, 6))}) + + " Check no hit-enter prompt when "wait:" is set + call term_sendkeys(buf, ":set messagesopt=wait:100,history:500\n") + call term_sendkeys(buf, ":echo 'foo' | echo 'bar' echo 'baz'\n") + call WaitForAssert({-> assert_equal(' 0,0-1 All', term_getline(buf, 6))}) + + " clean up + call StopVimInTerminal(buf) +endfunc + " vim: shiftwidth=2 sts=2 expandtab diff --git a/test/old/testdir/test_options.vim b/test/old/testdir/test_options.vim index 3773775564..d090186b62 100644 --- a/test/old/testdir/test_options.vim +++ b/test/old/testdir/test_options.vim @@ -644,6 +644,10 @@ func Test_set_completion_string_values() " call feedkeys(":set hl=8b i\<Left>\<Left>\<Tab>\<C-B>\"\<CR>", 'xt') " call assert_equal("\"set hl=8bi i", @:) + " messagesopt + call assert_equal(['history:', 'hit-enter', 'wait:'], + \ getcompletion('set messagesopt+=', 'cmdline')->sort()) + " " Test flag lists " @@ -743,7 +747,6 @@ func Test_set_option_errors() call assert_fails('set backupcopy=', 'E474:') call assert_fails('set regexpengine=3', 'E474:') call assert_fails('set history=10001', 'E474:') - call assert_fails('set msghistory=10001', 'E474:') call assert_fails('set numberwidth=21', 'E474:') call assert_fails('set colorcolumn=-a', 'E474:') call assert_fails('set colorcolumn=a', 'E474:') @@ -757,7 +760,6 @@ func Test_set_option_errors() endif call assert_fails('set helpheight=-1', 'E487:') call assert_fails('set history=-1', 'E487:') - call assert_fails('set msghistory=-1', 'E487:') call assert_fails('set report=-1', 'E487:') call assert_fails('set shiftwidth=-1', 'E487:') call assert_fails('set sidescroll=-1', 'E487:') @@ -2517,6 +2519,7 @@ func Test_string_option_revert_on_failure() \ ['lispoptions', 'expr:1', 'a123'], \ ['listchars', 'tab:->', 'tab:'], \ ['matchpairs', '<:>', '<:'], + \ ['messagesopt', 'hit-enter,history:100', 'a123'], \ ['mkspellmem', '100000,1000,100', '100000'], \ ['mouse', 'nvi', 'z'], \ ['mousemodel', 'extend', 'a123'], |