aboutsummaryrefslogtreecommitdiff
path: root/test/functional/lua/luaeval_spec.lua
diff options
context:
space:
mode:
authorShadman <shadmansaleh3@gmail.com>2025-08-27 02:48:53 +0600
committerGitHub <noreply@github.com>2025-08-26 13:48:53 -0700
commit8b171852a92595176308a36978baead585e878d3 (patch)
tree74db3dee83966c12cf9977bd513b9900aca6b007 /test/functional/lua/luaeval_spec.lua
parent1e1619de830ec64ec887911b444753486db63476 (diff)
downloadrneovim-8b171852a92595176308a36978baead585e878d3.tar.gz
rneovim-8b171852a92595176308a36978baead585e878d3.tar.bz2
rneovim-8b171852a92595176308a36978baead585e878d3.zip
feat(api): nvim_echo can emit Progress messages/events #34846
Problem: Nvim does not have a core concept for indicating "progress" of long-running tasks. The LspProgress event is specific to LSP. Solution: - `nvim_echo` can emit `kind="progress"` messages. - Emits a `Progress` event. - Includes new fields (id, status, percent) in the `msg_show` ui-event. - The UI is expected to overwrite any message having the same id. - Messages have a globally unique ID. - `nvim_echo` returns the message ID. - `nvim_echo(… {id=…})` updates existing messages. Example: local grp = vim.api.nvim_create_augroup("Msg", {clear = true}) vim.api.nvim_create_autocmd('Progress', { pattern={"term"}, group = grp, callback = function(ev) print(string.format('event fired: %s', vim.inspect(ev))..'\n') end }) -- require('vim._extui').enable({enable=true, msg={target='msg', timeout=1000}}) vim.api.nvim_echo({{'searching'}}, true, {kind='progress', percent=80, status='running', title="terminal(ripgrep)"}) local id = vim.api.nvim_echo({{'searching'}}, true, {kind='progress', status='running', percent=10, title="terminal(ripgrep)"}) vim.api.nvim_echo({}, true, {id = id, kind='progress', percent=20, status = 'running', title='find tests'}) vim.api.nvim_echo({}, true, {id = id, kind='progress', status='running', percent=70}) vim.api.nvim_echo({{'complete'}}, true, {id = id, kind='progress', status='success', percent=100, title="find tests"}) Followups: - Integrate with 'statusline' by listening to the Progress autocmd event. - Integrate progress ui-event with `vim._extui`.
Diffstat (limited to 'test/functional/lua/luaeval_spec.lua')
0 files changed, 0 insertions, 0 deletions