You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

68 lines
1.6 KiB

local M = {}
function M.load_autocmd()
local group = vim.api.nvim_create_augroup('solarized', { clear = true })
vim.api.nvim_create_autocmd('ColorSchemePre', {
group = group,
callback = function()
vim.api.nvim_del_augroup_by_id(group)
end,
})
vim.api.nvim_create_autocmd('LspTokenUpdate', {
group = group,
callback = function(args)
local token = args.data.token
local buffer = args.buf
local text = vim.api.nvim_buf_get_text(
buffer,
token.line,
token.start_col,
token.line,
token.end_col,
{}
)[1]
local highlights = {
'TODO',
'WARN',
'TEST',
'PERF',
'NOTE',
'HACK',
'FIX',
}
local name = 'SolarizedToken'
for _, group_name in pairs(highlights) do
if
text ~= nil
and token.type == 'comment'
and text:match(group_name)
then
vim.lsp.semantic_tokens.highlight_token(
token,
buffer,
args.data.client_id,
name .. group_name
)
end
end
end,
})
end
function M.load_autocmd_highlights(c)
local set_hl = require('solarized.utils').set_hl
set_hl('SolarizedTokenTODO', { fg = c.info })
set_hl('SolarizedTokenWARN', { fg = c.warning })
set_hl('SolarizedTokenTEST', { fg = c.violet })
set_hl('SolarizedTokenPERF', { fg = c.magenta })
set_hl('SolarizedTokenNOTE', { fg = c.hint })
set_hl('SolarizedTokenHACK', { fg = c.cyan })
set_hl('SolarizedTokenFIX', { fg = c.error })
end
return M