dotfiles/config/nvim/lua/colors.lua
Eryn Wells 383fd5ceb9 [vim] Fix broken color scheme
I learned once again that true color schemes don't work in macOS's Terminal.app.
I also learned that the default color scheme in neovim is very plain and doesn't
provide a lot of variation for treesitter syntax elements. So, choose a different
built-in color scheme as the default.

I also learned about the ColorScheme autocmd event, which is fired after a color
scheme is applied. Convert the (janky) reloadColorscheme function to a set of
autocommands that trigger based on the color scheme name.

Along the way, add some explicit configuration for treesitter: enable highlighting,
indentation, and make sure some of my common languages have plugins installed.
Also link the "objcpp" filetype to both "objc" and "cpp" treesitter plugins.

Lastly, make some updates to the git gutter color configuration. Create some
autocommands that are applied after the plugin is loaded. For the gutter, use
color 233 from the 256 color palette, which is a very dark gray.
2024-09-19 13:45:12 -07:00

51 lines
1.5 KiB
Lua

-- Eryn Wells <eryn@erynwells.me>
-- Allow using GUI style colors (#RRGGBB hex codes) in color terminals if we
-- know it can do it. This is required for most modern color themes. Apple's
-- Terminal.app doesn't have True Color support though, so make sure it's
-- off for that.
vim.g.termguicolors = not vim.env.TERM_PROGRAM == "Apple_Terminal"
local colorscheme_group = vim.api.nvim_create_augroup("ColorSchemeOverrides", { clear = true })
vim.api.nvim_create_autocmd("ColorScheme", {
callback = function()
vim.cmd [[
hi! ColorColumn cterm=NONE ctermbg=233
hi! CursorColumn cterm=NONE ctermbg=233
hi! CursorLine cterm=NONE ctermbg=233
hi! CursorLineNr cterm=bold ctermfg=White ctermbg=233
hi! LineNr ctermfg=DarkGray ctermbg=233
]]
end,
group = colorscheme_group,
})
vim.api.nvim_create_autocmd("ColorScheme", {
pattern = "default",
callback = function()
vim.cmd [[ hi! NormalFloat ctermfg=8 ]]
end,
group = colorscheme_group,
})
vim.api.nvim_create_autocmd("ColorScheme", {
pattern = "dracula",
callback = function()
vim.cmd [[ highlight CursorLineNr guibg=#44475a ]]
end,
group = colorscheme_group,
})
vim.api.nvim_create_autocmd("ColorScheme", {
pattern = "witchhazel",
callback = function()
vim.cmd [[
hi! default link LineNr CursorLineNr
hi! default link CursorLineNr CursorLine
]]
end,
group = colorscheme_group,
})
vim.cmd [[ color zaibatsu ]]