I want to override highlighting for a language-specific keyword in Neovim.
I’ve figured I can do it via vim api (eg. vim.api.nvim_set_hl
). This approach does work with elements like Comment
or LineNr
, but doesn’t seem to work with rubyInstanceVariable
.
:checkhealth says Ruby parser is installed:
<code>Parser/Features H L F I J
- ruby ✓ ✓ ✓ ✓ ✓
</code>
<code>Parser/Features H L F I J
- ruby ✓ ✓ ✓ ✓ ✓
</code>
Parser/Features H L F I J
- ruby ✓ ✓ ✓ ✓ ✓
colors.lua
<code> function ColorMyPencils(color)
color = color or "default-color-scheme"
vim.api.nvim_create_autocmd("ColorScheme", {
pattern = "*",
callback = function()
-- This works
vim.api.nvim_set_hl(0, "Comment", { fg = "#818589" })
vim.api.nvim_set_hl(0, "LineNr", { fg = "#818589" })
-- This doesn't work
vim.api.nvim_set_hl(0, "rubyInstanceVariable", { fg = "#818589" })
end,
})
vim.cmd.colorscheme(color)
end
return {
{
require("zeropoop/my-color-scheme").setup({}),
ColorMyPencils("my-color-scheme")
}
}
</code>
<code> function ColorMyPencils(color)
color = color or "default-color-scheme"
vim.api.nvim_create_autocmd("ColorScheme", {
pattern = "*",
callback = function()
-- This works
vim.api.nvim_set_hl(0, "Comment", { fg = "#818589" })
vim.api.nvim_set_hl(0, "LineNr", { fg = "#818589" })
-- This doesn't work
vim.api.nvim_set_hl(0, "rubyInstanceVariable", { fg = "#818589" })
end,
})
vim.cmd.colorscheme(color)
end
return {
{
require("zeropoop/my-color-scheme").setup({}),
ColorMyPencils("my-color-scheme")
}
}
</code>
function ColorMyPencils(color)
color = color or "default-color-scheme"
vim.api.nvim_create_autocmd("ColorScheme", {
pattern = "*",
callback = function()
-- This works
vim.api.nvim_set_hl(0, "Comment", { fg = "#818589" })
vim.api.nvim_set_hl(0, "LineNr", { fg = "#818589" })
-- This doesn't work
vim.api.nvim_set_hl(0, "rubyInstanceVariable", { fg = "#818589" })
end,
})
vim.cmd.colorscheme(color)
end
return {
{
require("zeropoop/my-color-scheme").setup({}),
ColorMyPencils("my-color-scheme")
}
}
I’m just starting with Vim and Lua and will appreciate any advice.