diff --git a/lua/artio/config.lua b/lua/artio/config.lua index 23cbe93..7f028f1 100644 --- a/lua/artio/config.lua +++ b/lua/artio/config.lua @@ -13,6 +13,7 @@ ---@field prompt_title boolean ---@field pointer string ---@field marker string +---@field infolist ('index'|'list')[] ---@field use_icons boolean ---@class artio.config.win @@ -34,6 +35,7 @@ M.default = { prompt_title = true, pointer = "", marker = "│", + infolist = { "list" }, -- index: [1] list: (4/5) use_icons = _G["MiniIcons"] and true or false, }, win = { diff --git a/lua/artio/view.lua b/lua/artio/view.lua index febd7f3..e136a77 100644 --- a/lua/artio/view.lua +++ b/lua/artio/view.lua @@ -525,6 +525,18 @@ function View:mark(id, line, col, opts) return result end +---@param p artio.Picker +---@param info 'index'|'list'|string +---@return string +local function getpromptinfo(p, info) + if info == "index" then + return ("[%d]"):format(p.idx) + elseif info == "list" then + return ("(%d/%d)"):format(#p.matches, #p.items) + end + return "" +end + function View:drawprompt() logdebug("drawprompt") @@ -534,7 +546,15 @@ function View:drawprompt() self:mark("promptinfo", promptidx, 0, { virt_text = { { - ("[%d] (%d/%d)"):format(self.picker.idx, #self.picker.matches, #self.picker.items), + table.concat( + vim + .iter(self.picker.opts.infolist) + :map(function(info) + return getpromptinfo(self.picker, info) + end) + :totable(), + " " + ), "InfoText", }, },