nvim: refactor lualine component for searchcount
This commit is contained in:
parent
14a0d8e7d2
commit
f55e1b6951
1 changed files with 16 additions and 9 deletions
|
@ -6,22 +6,29 @@ function M:init(options)
|
||||||
vim.tbl_extend("keep", options or {}, {
|
vim.tbl_extend("keep", options or {}, {
|
||||||
maxcount = 999,
|
maxcount = 999,
|
||||||
timeout = 250,
|
timeout = 250,
|
||||||
|
cond = function() return vim.v.hlsearch == 1 end,
|
||||||
})
|
})
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
function M:update_status()
|
local denominator = function(tbl)
|
||||||
if vim.v.hlsearch == 0 then return "" end
|
if tbl.total > tbl.maxcount then return "" end
|
||||||
|
return string.format("%d", tbl.total)
|
||||||
|
end
|
||||||
|
|
||||||
local count = vim.fn.searchcount {
|
local render = function(tbl)
|
||||||
|
local status = "?"
|
||||||
|
if not vim.tbl_isempty(tbl) and vim.v.hlsearch == 1 then
|
||||||
|
status = string.format("%d/%s", tbl.current, denominator(tbl))
|
||||||
|
end
|
||||||
|
return string.format(" %s", status)
|
||||||
|
end
|
||||||
|
|
||||||
|
function M:update_status()
|
||||||
|
return render(vim.fn.searchcount {
|
||||||
maxcount = self.options.maxcount,
|
maxcount = self.options.maxcount,
|
||||||
timeout = self.options.timeout,
|
timeout = self.options.timeout,
|
||||||
}
|
})
|
||||||
if next(count) == nil then return "" end
|
|
||||||
|
|
||||||
local denominator = count.total > count.maxcount and ""
|
|
||||||
or string.format("%d", count.total)
|
|
||||||
return string.format(" %d/%s", count.current, denominator)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
return M
|
return M
|
||||||
|
|
Loading…
Add table
Reference in a new issue