aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2024-12-08 07:35:58 +0800
committerGitHub <noreply@github.com>2024-12-08 07:35:58 +0800
commit4fcc5cd34a75df9a3088c83dc1a87aa6e37051e1 (patch)
tree8cb2e83275826cb83d4ffcd45d062fa7c653cf6a
parent668d2569b4109e7e83c45578c506c1c64dbd5e87 (diff)
parent96329910b011414758380e3c27e32c0ae7f43e1e (diff)
downloadrneovim-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.txt17
-rw-r--r--runtime/lua/vim/_meta/options.lua17
-rw-r--r--runtime/optwin.vim4
-rw-r--r--src/nvim/message.c7
-rw-r--r--src/nvim/option_vars.h2
-rw-r--r--src/nvim/options.lua19
-rw-r--r--test/old/testdir/gen_opt_test.vim3
-rw-r--r--test/old/testdir/test_messages.vim4
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