diff options
author | zeertzjq <zeertzjq@outlook.com> | 2024-12-08 07:35:58 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-12-08 07:35:58 +0800 |
commit | 4fcc5cd34a75df9a3088c83dc1a87aa6e37051e1 (patch) | |
tree | 8cb2e83275826cb83d4ffcd45d062fa7c653cf6a | |
parent | 668d2569b4109e7e83c45578c506c1c64dbd5e87 (diff) | |
parent | 96329910b011414758380e3c27e32c0ae7f43e1e (diff) | |
download | rneovim-4fcc5cd34a75df9a3088c83dc1a87aa6e37051e1.tar.gz rneovim-4fcc5cd34a75df9a3088c83dc1a87aa6e37051e1.tar.bz2 rneovim-4fcc5cd34a75df9a3088c83dc1a87aa6e37051e1.zip |
Merge pull request #31504 from zeertzjq/vim-9.1.0910
vim-patch:9.1.{0910,0911}: 'messagesopt' followup
-rw-r--r-- | runtime/doc/options.txt | 17 | ||||
-rw-r--r-- | runtime/lua/vim/_meta/options.lua | 17 | ||||
-rw-r--r-- | runtime/optwin.vim | 4 | ||||
-rw-r--r-- | src/nvim/message.c | 7 | ||||
-rw-r--r-- | src/nvim/option_vars.h | 2 | ||||
-rw-r--r-- | src/nvim/options.lua | 19 | ||||
-rw-r--r-- | test/old/testdir/gen_opt_test.vim | 3 | ||||
-rw-r--r-- | test/old/testdir/test_messages.vim | 4 |
8 files changed, 44 insertions, 29 deletions
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt index 0db7b0f03c..5763d16cad 100644 --- a/runtime/doc/options.txt +++ b/runtime/doc/options.txt @@ -4048,21 +4048,24 @@ A jump table for the options with a short description can be found at |Q_op|. *'messagesopt'* *'mopt'* 'messagesopt' 'mopt' string (default "hit-enter,history:500") global - Option settings when outputting messages. It can consist of the + Option settings for outputting messages. It can consist of the following items. Items must be separated by a comma. - hit-enter Use |hit-enter| prompt when the message is longer than + hit-enter Use a |hit-enter| prompt when the message is longer than 'cmdheight' size. - wait:{n} Ignored when "hit-enter" is present. Instead of using - |hit-enter| prompt, will simply wait for {n} - milliseconds so the user has a chance to read the - message, use 0 to disable sleep (but then the user may - miss an important message). + wait:{n} Instead of using a |hit-enter| prompt, simply wait for + {n} milliseconds so that the user has a chance to read + the message. The maximum value of {n} is 10000. Use + 0 to disable the wait (but then the user may miss an + important message). + This item is ignored when "hit-enter" is present, but + required when "hit-enter" is not present. history:{n} Determines how many entries are remembered in the |:messages| history. The maximum value is 10000. Setting it to zero clears the message history. + This item must always be present. *'mkspellmem'* *'msm'* 'mkspellmem' 'msm' string (default "460000,2000,500") diff --git a/runtime/lua/vim/_meta/options.lua b/runtime/lua/vim/_meta/options.lua index 59d270e640..7a8c3a6c29 100644 --- a/runtime/lua/vim/_meta/options.lua +++ b/runtime/lua/vim/_meta/options.lua @@ -4084,21 +4084,24 @@ vim.o.mis = vim.o.menuitems vim.go.menuitems = vim.o.menuitems vim.go.mis = vim.go.menuitems ---- Option settings when outputting messages. It can consist of the +--- Option settings for outputting messages. It can consist of the --- following items. Items must be separated by a comma. --- ---- hit-enter Use `hit-enter` prompt when the message is longer than +--- hit-enter Use a `hit-enter` prompt when the message is longer than --- 'cmdheight' size. --- ---- wait:{n} Ignored when "hit-enter" is present. Instead of using ---- `hit-enter` prompt, will simply wait for {n} ---- milliseconds so the user has a chance to read the ---- message, use 0 to disable sleep (but then the user may ---- miss an important message). +--- wait:{n} Instead of using a `hit-enter` prompt, simply wait for +--- {n} milliseconds so that the user has a chance to read +--- the message. The maximum value of {n} is 10000. Use +--- 0 to disable the wait (but then the user may miss an +--- important message). +--- This item is ignored when "hit-enter" is present, but +--- required when "hit-enter" is not present. --- --- history:{n} Determines how many entries are remembered in the --- `:messages` history. The maximum value is 10000. --- Setting it to zero clears the message history. +--- This item must always be present. --- --- @type string vim.o.messagesopt = "hit-enter,history:500" diff --git a/runtime/optwin.vim b/runtime/optwin.vim index 923f55f8fa..6866d46d51 100644 --- a/runtime/optwin.vim +++ b/runtime/optwin.vim @@ -1,7 +1,7 @@ " These commands create the option window. " " Maintainer: The Vim Project <https://github.com/vim/vim> -" Last Change: 2024 Jul 12 +" Last Change: 2024 Dec 07 " Former Maintainer: Bram Moolenaar <Bram@vim.org> " If there already is an option window, jump to that one. @@ -626,7 +626,7 @@ call <SID>AddOption("terse", gettext("add 's' flag in 'shortmess' (don't show se call <SID>BinOptionG("terse", &terse) call <SID>AddOption("shortmess", gettext("list of flags to make messages shorter")) call <SID>OptionG("shm", &shm) -call <SID>AddOption("messagesopt", gettext("Option settings when outputting messages")) +call <SID>AddOption("messagesopt", gettext("options for outputting messages")) call <SID>OptionG("mopt", &mopt) call <SID>AddOption("showcmd", gettext("show (partial) command keys in location given by 'showcmdloc'")) let &sc = s:old_sc diff --git a/src/nvim/message.c b/src/nvim/message.c index a32a06edca..d8e6fd3001 100644 --- a/src/nvim/message.c +++ b/src/nvim/message.c @@ -1063,7 +1063,7 @@ int messagesopt_changed(void) int messages_wait_new = 0; int messages_history_new = 0; - char *p = p_meo; + char *p = p_mopt; while (*p != NUL) { if (strnequal(p, S_LEN(MESSAGES_OPT_HIT_ENTER))) { p += STRLEN_LITERAL(MESSAGES_OPT_HIT_ENTER); @@ -1103,6 +1103,11 @@ int messagesopt_changed(void) return FAIL; } + // "wait" must be <= 10000 + if (messages_wait_new > 10000) { + return FAIL; + } + msg_flags = messages_flags_new; msg_wait = messages_wait_new; diff --git a/src/nvim/option_vars.h b/src/nvim/option_vars.h index aca876bddb..97455380cc 100644 --- a/src/nvim/option_vars.h +++ b/src/nvim/option_vars.h @@ -448,7 +448,7 @@ EXTERN OptInt p_mfd; ///< 'maxfuncdepth' EXTERN OptInt p_mmd; ///< 'maxmapdepth' EXTERN OptInt p_mmp; ///< 'maxmempattern' EXTERN OptInt p_mis; ///< 'menuitems' -EXTERN char *p_meo; ///< 'messagesopt' +EXTERN char *p_mopt; ///< 'messagesopt' EXTERN char *p_msm; ///< 'mkspellmem' EXTERN int p_ml; ///< 'modeline' EXTERN int p_mle; ///< 'modelineexpr' diff --git a/src/nvim/options.lua b/src/nvim/options.lua index a5d5a45b59..afce4a918b 100644 --- a/src/nvim/options.lua +++ b/src/nvim/options.lua @@ -5456,21 +5456,24 @@ return { flags = true, deny_duplicates = true, desc = [=[ - Option settings when outputting messages. It can consist of the + Option settings for outputting messages. It can consist of the following items. Items must be separated by a comma. - hit-enter Use |hit-enter| prompt when the message is longer than + hit-enter Use a |hit-enter| prompt when the message is longer than 'cmdheight' size. - wait:{n} Ignored when "hit-enter" is present. Instead of using - |hit-enter| prompt, will simply wait for {n} - milliseconds so the user has a chance to read the - message, use 0 to disable sleep (but then the user may - miss an important message). + wait:{n} Instead of using a |hit-enter| prompt, simply wait for + {n} milliseconds so that the user has a chance to read + the message. The maximum value of {n} is 10000. Use + 0 to disable the wait (but then the user may miss an + important message). + This item is ignored when "hit-enter" is present, but + required when "hit-enter" is not present. history:{n} Determines how many entries are remembered in the |:messages| history. The maximum value is 10000. Setting it to zero clears the message history. + This item must always be present. ]=], expand_cb = 'expand_set_messagesopt', full_name = 'messagesopt', @@ -5478,7 +5481,7 @@ return { scope = { 'global' }, short_desc = N_('options for outputting messages'), type = 'string', - varname = 'p_meo', + varname = 'p_mopt', }, { abbreviation = 'msm', diff --git a/test/old/testdir/gen_opt_test.vim b/test/old/testdir/gen_opt_test.vim index 74aea93ee9..22ffde5269 100644 --- a/test/old/testdir/gen_opt_test.vim +++ b/test/old/testdir/gen_opt_test.vim @@ -267,7 +267,8 @@ let test_values = { \ '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']], + \ 'hit-enter,history:10001', 'history:0,wait: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_messages.vim b/test/old/testdir/test_messages.vim index d79bc0fae7..bfead20142 100644 --- a/test/old/testdir/test_messages.vim +++ b/test/old/testdir/test_messages.vim @@ -646,12 +646,12 @@ func Test_messagesopt_wait() " 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 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 term_sendkeys(buf, ":echo 'foo' | echo 'bar' | echo 'baz'\n") call WaitForAssert({-> assert_equal(' 0,0-1 All', term_getline(buf, 6))}) " clean up |