aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorluukvbaal <luukvbaal@gmail.com>2025-01-13 13:59:34 +0100
committerGitHub <noreply@github.com>2025-01-13 04:59:34 -0800
commitcb7b4e296238b46025de05203c886d67da401728 (patch)
tree660ce0d42e77c294b40d2808ddfb3899a12d427d /src
parent47866cd8d20c62afa8a3c3929d3aada2db9162f5 (diff)
downloadrneovim-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.c24
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;
}
}