39 lines
847 B
Lua
39 lines
847 B
Lua
local colors = require('nonicons.colors')
|
|
|
|
local M = {}
|
|
|
|
---@param icon_name string
|
|
---@return string
|
|
local function to_hl_group(icon_name)
|
|
local parts = {}
|
|
for part in icon_name:gmatch('[^-]+') do
|
|
parts[#parts + 1] = part:sub(1, 1):upper() .. part:sub(2)
|
|
end
|
|
return 'Nonicons' .. table.concat(parts)
|
|
end
|
|
|
|
local function apply()
|
|
for name, data in pairs(colors) do
|
|
vim.api.nvim_set_hl(0, to_hl_group(name), { fg = data[1], ctermfg = data[2] })
|
|
end
|
|
end
|
|
|
|
function M.setup()
|
|
apply()
|
|
|
|
local group = vim.api.nvim_create_augroup('NoniconsHighlights', { clear = true })
|
|
vim.api.nvim_create_autocmd('ColorScheme', {
|
|
group = group,
|
|
callback = apply,
|
|
})
|
|
end
|
|
|
|
---@param icon_name string
|
|
---@return string? hl_group
|
|
function M.get(icon_name)
|
|
if colors[icon_name] then
|
|
return to_hl_group(icon_name)
|
|
end
|
|
end
|
|
|
|
return M
|