diff --git a/lua/preview/init.lua b/lua/preview/init.lua index e2cf794..5e220aa 100644 --- a/lua/preview/init.lua +++ b/lua/preview/init.lua @@ -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() diff --git a/spec/init_spec.lua b/spec/init_spec.lua index 5b97c8a..5c49276 100644 --- a/spec/init_spec.lua +++ b/spec/init_spec.lua @@ -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)