summaryrefslogtreecommitdiff
path: root/dot-config/nvim/lua/wordcount.lua
blob: 1ff5579b73851d7bdcf0e413ff32ec00592b9208 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
-- Wordcount in markdown
--
-- Credits
-- https://github.com/nvim-lualine/lualine.nvim/issues/328#issuecomment-982672253
-- https://github.com/skwee357/nvim-prose

local M = {}

local config = {
	filetypes = { "markdown", "text", "typst" },
}

local function format_wc(n)
	return tostring(n) .. " words"
end

function M.wordcount()
	local wc = vim.fn.wordcount()
	return (wc.visual_words and format_wc(wc.visual_words)) or format_wc(wc.words)
end

function M.is_available()
	for _, ft in ipairs(config.filetypes) do
		if ft == vim.bo.filetype then
			return true
		end
	end

	return false
end

return M