diff --git a/README.md b/README.md index a67a61d..68be212 100644 --- a/README.md +++ b/README.md @@ -655,6 +655,20 @@ sections = { } ``` +#### searchcount component options + +```lua +sections = { + lualine_a = { + { + 'searchcount', + maxcount = 999, + timeout = 500, + } + } +} +``` + #### tabs component options ```lua diff --git a/lua/lualine/components/searchcount.lua b/lua/lualine/components/searchcount.lua index 839a3b8..dfc8386 100644 --- a/lua/lualine/components/searchcount.lua +++ b/lua/lualine/components/searchcount.lua @@ -1,11 +1,27 @@ -local function searchcount() +local M = require('lualine.component'):extend() + +local default_options = { + maxcount = 999, + timeout = 500, +} + +-- Initializer +function M:init(options) + -- Run super() + M.super.init(self, options) + -- Apply default options + self.options = vim.tbl_extend('keep', self.options or {}, default_options) +end + +-- Function that runs every time statusline is updated +function M:update_status() if vim.v.hlsearch == 0 then return '' end - local result = vim.fn.searchcount { maxcount = 999, timeout = 500 } + local result = vim.fn.searchcount { maxcount = self.options.maxcount, timeout = self.options.timeout } local denominator = math.min(result.total, result.maxcount) return string.format('[%d/%d]', result.current, denominator) end -return searchcount +return M