feat: add statusline function
Problem: no way to expose compiling/watching state to statusline
plugins like lualine or heirline without polling status() and
formatting it manually.
Solution: add `require('preview').statusline()` that returns
'compiling', 'watching', or '' for direct use in statusline components.
This commit is contained in:
parent
0b16ff7178
commit
51a99dd876
2 changed files with 22 additions and 0 deletions
|
|
@ -40,6 +40,7 @@
|
|||
---@field clean fun(bufnr?: integer)
|
||||
---@field toggle fun(bufnr?: integer)
|
||||
---@field status fun(bufnr?: integer): preview.Status
|
||||
---@field statusline fun(bufnr?: integer): string
|
||||
---@field get_config fun(): preview.Config
|
||||
local M = {}
|
||||
|
||||
|
|
@ -179,6 +180,19 @@ function M.status(bufnr)
|
|||
return compiler.status(bufnr)
|
||||
end
|
||||
|
||||
---@param bufnr? integer
|
||||
---@return string
|
||||
function M.statusline(bufnr)
|
||||
bufnr = bufnr or vim.api.nvim_get_current_buf()
|
||||
local s = compiler.status(bufnr)
|
||||
if s.compiling then
|
||||
return 'compiling'
|
||||
elseif s.watching then
|
||||
return 'watching'
|
||||
end
|
||||
return ''
|
||||
end
|
||||
|
||||
M._test = {
|
||||
---@diagnostic disable-next-line: assign-type-mismatch
|
||||
reset = function()
|
||||
|
|
|
|||
|
|
@ -100,4 +100,12 @@ describe('preview', function()
|
|||
helpers.delete_buffer(bufnr)
|
||||
end)
|
||||
end)
|
||||
|
||||
describe('statusline', function()
|
||||
it('returns empty string when idle', function()
|
||||
local bufnr = helpers.create_buffer({})
|
||||
assert.are.equal('', preview.statusline(bufnr))
|
||||
helpers.delete_buffer(bufnr)
|
||||
end)
|
||||
end)
|
||||
end)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue