feat: add statusline function (#10)

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:
Barrett Ruth 2026-03-03 13:37:36 -05:00 committed by GitHub
parent 187474bb3d
commit bf2f4a78e2
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 22 additions and 0 deletions

View file

@ -41,6 +41,7 @@
---@field toggle fun(bufnr?: integer)
---@field open fun(bufnr?: integer)
---@field status fun(bufnr?: integer): preview.Status
---@field statusline fun(bufnr?: integer): string
---@field get_config fun(): preview.Config
local M = {}
@ -188,6 +189,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()