commit ca760e645ba4d1fdb0b6fff3ac98231c3d683306
parent c87ca1e2eba8659841fd5f4dfdb601eab705485c
Author: Tomasz N <przepompownia@users.noreply.github.com>
Date: Tue, 10 Dec 2024 11:39:41 +0100
fix(messages): no message kind for :write messages #31519
- Problem: cannot replace the initial bufwrite message (from `filemess`) by the final one (`"test.lua" [New] 0L, 0B written`), when using `vim.ui_attach`.
- Solution: add kind to both messages.
Diffstat:
3 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/runtime/doc/ui.txt b/runtime/doc/ui.txt
@@ -789,6 +789,7 @@ must handle.
kind
Name indicating the message kind:
"" (empty) Unknown (consider a |feature-request|)
+ "bufwrite" |:write| message
"confirm" |confirm()| or |:confirm| dialog
"confirm_sub" |:substitute| confirm dialog |:s_c|
"emsg" Error (|errors|, internal error, |:throw|, …)
diff --git a/src/nvim/bufwrite.c b/src/nvim/bufwrite.c
@@ -1148,6 +1148,7 @@ int buf_write(buf_T *buf, char *fname, char *sfname, linenr_T start, linenr_T en
msg_scroll = true; // don't overwrite previous file message
}
if (!filtering) {
+ msg_ext_set_kind("bufwrite");
// show that we are busy
#ifndef UNIX
filemess(buf, sfname, "");
@@ -1763,6 +1764,7 @@ restore_backup:
if (msg_add_fileformat(fileformat)) {
insert_space = true;
}
+ msg_ext_set_kind("bufwrite");
msg_add_lines(insert_space, lnum, nchars); // add line/char count
if (!shortmess(SHM_WRITE)) {
if (append) {
diff --git a/test/functional/ui/messages_spec.lua b/test/functional/ui/messages_spec.lua
@@ -1112,7 +1112,7 @@ stack traceback:
command('write ' .. fname)
screen:expect({
messages = {
- { content = { { string.format('"%s" [New] 0L, 0B written', fname) } }, kind = '' },
+ { content = { { string.format('"%s" [New] 0L, 0B written', fname) } }, kind = 'bufwrite' },
},
})
end)