diff options
| author | Peter Cardenas <16930781+PeterCardenas@users.noreply.github.com> | 2026-04-24 08:57:35 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-04-24 11:57:35 -0400 |
| commit | 27191e0f4f4f9086180a8fbe3e52c1c280a70b09 (patch) | |
| tree | 7db425cbd45fbc5a32ed2a937691bdd7019d6cbc /src/nvim/message.c | |
| parent | a57fab2f2d852ec33bdbcb7fc8b90d611e6a653b (diff) | |
feat(api): nvim_echo(percent=nil) means "unknown" progress #39029
Problem:
No way to signal "unknown" or "indeterminate" progress percentage.
Solution:
Treat percent=nil as "indeterminate" percent.
Diffstat (limited to 'src/nvim/message.c')
| -rw-r--r-- | src/nvim/message.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/nvim/message.c b/src/nvim/message.c index 1d7c24ce02..5b5a6ba2f8 100644 --- a/src/nvim/message.c +++ b/src/nvim/message.c @@ -337,7 +337,7 @@ static HlMessage format_progress_message(HlMessage hl_msg, MessageData *msg_data ((HlMessageChunk){ .text = copy_string(msg_data->title, NULL), .hl_id = hl_id })); kv_push(updated_msg, ((HlMessageChunk){ .text = cstr_to_string(": "), .hl_id = 0 })); } - if (msg_data->percent > 0) { + if (msg_data->percent >= 0) { char percent_buf[10]; vim_snprintf(percent_buf, sizeof(percent_buf), "%3ld%% ", (long)msg_data->percent); String percent = cstr_to_string(percent_buf); @@ -1173,7 +1173,10 @@ void do_autocmd_progress(MsgID msg_id, HlMessage msg, MessageData *msg_data) PUT_C(data, "id", OBJECT_OBJ(msg_id)); PUT_C(data, "text", ARRAY_OBJ(messages)); if (msg_data != NULL) { - PUT_C(data, "percent", INTEGER_OBJ(msg_data->percent)); + if (msg_data->percent >= 0) { + // If percent=nil we omit it, it means "indeterminate progress". #39029 + PUT_C(data, "percent", INTEGER_OBJ(msg_data->percent)); + } PUT_C(data, "source", STRING_OBJ(msg_data->source)); PUT_C(data, "status", STRING_OBJ(msg_data->status)); PUT_C(data, "title", STRING_OBJ(msg_data->title)); |
