diff options
author | luukvbaal <luukvbaal@gmail.com> | 2025-01-13 13:59:34 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-01-13 04:59:34 -0800 |
commit | cb7b4e296238b46025de05203c886d67da401728 (patch) | |
tree | 660ce0d42e77c294b40d2808ddfb3899a12d427d /src | |
parent | 47866cd8d20c62afa8a3c3929d3aada2db9162f5 (diff) | |
download | rneovim-cb7b4e296238b46025de05203c886d67da401728.tar.gz rneovim-cb7b4e296238b46025de05203c886d67da401728.tar.bz2 rneovim-cb7b4e296238b46025de05203c886d67da401728.zip |
feat(messages): "verbose" message kind #31991
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/message.c | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/src/nvim/message.c b/src/nvim/message.c index 12d980f58f..f87eba27d0 100644 --- a/src/nvim/message.c +++ b/src/nvim/message.c @@ -3324,6 +3324,10 @@ int redirecting(void) || redir_reg || redir_vname || capture_ga != NULL; } +// Save and restore message kind when emitting a verbose message. +static const char *pre_verbose_kind = NULL; +static const char *verbose_kind = "verbose"; + /// Before giving verbose message. /// Must always be called paired with verbose_leave()! void verbose_enter(void) @@ -3331,6 +3335,10 @@ void verbose_enter(void) if (*p_vfile != NUL) { msg_silent++; } + if (msg_ext_kind != verbose_kind) { + pre_verbose_kind = msg_ext_kind; + msg_ext_set_kind("verbose"); + } } /// After giving verbose message. @@ -3342,14 +3350,17 @@ void verbose_leave(void) msg_silent = 0; } } + if (pre_verbose_kind != NULL) { + msg_ext_set_kind(pre_verbose_kind); + pre_verbose_kind = NULL; + } } /// Like verbose_enter() and set msg_scroll when displaying the message. void verbose_enter_scroll(void) { - if (*p_vfile != NUL) { - msg_silent++; - } else { + verbose_enter(); + if (*p_vfile == NUL) { // always scroll up, don't overwrite msg_scroll = true; } @@ -3358,11 +3369,8 @@ void verbose_enter_scroll(void) /// Like verbose_leave() and set cmdline_row when displaying the message. void verbose_leave_scroll(void) { - if (*p_vfile != NUL) { - if (--msg_silent < 0) { - msg_silent = 0; - } - } else { + verbose_leave(); + if (*p_vfile == NUL) { cmdline_row = msg_row; } } |