From 5973328edaedb04425e2f6cb63b2efab4aeb5fcb Mon Sep 17 00:00:00 2001 From: Shadman Date: Mon, 7 Jul 2025 05:17:06 +0600 Subject: feat(options): per-buffer 'busy' status #34493 Problem: Plugins cannot mark a buffer as "busy". Solution: - Add a buffer-local 'busy' option. - Show a busy indicator in the default 'statusline'. --- runtime/lua/vim/_meta/options.lua | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'runtime/lua/vim/_meta/options.lua') diff --git a/runtime/lua/vim/_meta/options.lua b/runtime/lua/vim/_meta/options.lua index 962f5d6812..60715def3e 100644 --- a/runtime/lua/vim/_meta/options.lua +++ b/runtime/lua/vim/_meta/options.lua @@ -664,6 +664,14 @@ vim.o.bt = vim.o.buftype vim.bo.buftype = vim.o.buftype vim.bo.bt = vim.bo.buftype +--- Sets a buffer "busy" status. Indicated in the default statusline. +--- When busy status is larger then 0 busy flag is shown in statusline. +--- The semantics of "busy" are arbitrary, typically decided by the plugin that owns the buffer. +--- +--- @type integer +vim.o.busy = 0 +vim.bo.busy = vim.o.busy + --- Specifies details about changing the case of letters. It may contain --- these words, separated by a comma: --- internal Use internal case mapping functions, the current @@ -6853,7 +6861,7 @@ vim.wo.stc = vim.wo.statuscolumn --- --- --- @type string -vim.o.statusline = "%<%f %h%w%m%r %=%{% &showcmdloc == 'statusline' ? '%-10.S ' : '' %}%{% exists('b:keymap_name') ? '<'..b:keymap_name..'> ' : '' %}%{% &ruler ? ( &rulerformat == '' ? '%-14.(%l,%c%V%) %P' : &rulerformat ) : '' %}" +vim.o.statusline = "%<%f %h%w%m%r %=%{% &showcmdloc == 'statusline' ? '%-10.S ' : '' %}%{% exists('b:keymap_name') ? '<'..b:keymap_name..'> ' : '' %}%{% &busy > 0 ? '◐ ' : '' %}%{% &ruler ? ( &rulerformat == '' ? '%-14.(%l,%c%V%) %P' : &rulerformat ) : '' %}" vim.o.stl = vim.o.statusline vim.wo.statusline = vim.o.statusline vim.wo.stl = vim.wo.statusline -- cgit v1.3-3-g829e