diff --git a/lua/hardline/common.lua b/lua/hardline/common.lua index f57b2b7..11c2e4e 100644 --- a/lua/hardline/common.lua +++ b/lua/hardline/common.lua @@ -35,4 +35,11 @@ function M.get_state(class) return M.is_active() and 'active' or 'inactive' end +function M.set_cache(augroup) + cmd(string.format('augroup %s', augroup)) + cmd('autocmd!') + cmd(string.format('autocmd CursorHold,BufWritePost * unlet! b:%s', augroup)) + cmd('augroup END') +end + return M diff --git a/lua/hardline/parts/whitespace.lua b/lua/hardline/parts/whitespace.lua index be44242..d8f5c43 100644 --- a/lua/hardline/parts/whitespace.lua +++ b/lua/hardline/parts/whitespace.lua @@ -1,5 +1,6 @@ local cmd, fn, vim = vim.cmd, vim.fn, vim local b, bo = vim.b, vim.bo +local common = require('hardline.common') local enabled = false local cache = '' @@ -49,10 +50,7 @@ end local function get_item() if not enabled then - cmd 'augroup hardline_whitespace' - cmd 'autocmd!' - cmd 'autocmd CursorHold,BufWritePost * unlet! b:hardline_whitespace' - cmd 'augroup END' + common.set_cache('hardline_whitespace') enabled = true end if bo.readonly or not bo.modifiable then return '' end diff --git a/lua/hardline/parts/wordcount.lua b/lua/hardline/parts/wordcount.lua index 6b4260e..89f7a11 100644 --- a/lua/hardline/parts/wordcount.lua +++ b/lua/hardline/parts/wordcount.lua @@ -33,10 +33,7 @@ end local function get_item() if not enabled then - cmd 'augroup hardline_wordcount' - cmd 'autocmd!' - cmd 'autocmd CursorHold,BufWritePost * unlet! b:hardline_wordcount' - cmd 'augroup END' + common.set_cache('hardline_wordcount') enabled = true end if not vim.tbl_contains(options.filetypes, bo.filetype) then return '' end