neovim-config/lua/colors/highlights.lua

204 lines
4.2 KiB
Lua

local cmd = vim.cmd
local colors = require("colors").get()
local ui = require("core.utils").load_config().ui
local black = colors.black
local black2 = colors.black2
local blue = colors.blue
local darker_black = colors.darker_black
local folder_bg = colors.folder_bg
local green = colors.green
local grey = colors.grey
local grey_fg = colors.grey_fg
local light_grey = colors.light_grey
local line = colors.line
local nord_blue = colors.nord_blue
local one_bg = colors.one_bg
local one_bg2 = colors.one_bg2
local pmenu_bg = colors.pmenu_bg
local purple = colors.purple
local red = colors.red
local white = colors.white
local yellow = colors.yellow
local orange = colors.orange
-- Disable cursor line
cmd "hi clear CursorLine"
-- highlight groups & colors
local hl_cols = {
Comment = { fg = grey_fg },
-- line numbers
CursorLineNr = { fg = white },
LineNr = { fg = grey },
-- those ugly ~'s
EndOfBuffer = { fg = black },
-- floating windows
FloatBorder = { fg = blue },
NormalFloat = { bg = darker_black },
-- Pmenu i.e completion menu
Pmenu = { bg = one_bg },
PmenuSbar = { bg = one_bg2 },
PmenuSel = { bg = pmenu_bg, fg = black },
PmenuThumb = { bg = nord_blue },
-- nvim cmp
CmpItemAbbr = { fg = white },
CmpItemAbbrMatch = { fg = white },
CmpItemKind = { fg = white },
CmpItemMenu = { fg = white },
NvimInternalError = { fg = red },
WinSeparator = { fg = one_bg2 },
-- Dashboard i.e alpha.nvim
AlphaHeader = { fg = grey_fg },
AlphaButtons = { fg = light_grey },
-- Gitsigns.nvim
DiffAdd = {
fg = blue,
bg = "NONE",
},
DiffChange = {
fg = light_grey,
bg = "NONE",
},
DiffChangeDelete = {
fg = red,
bg = "NONE",
},
DiffModified = {
fg = orange,
bg = "NONE",
},
DiffDelete = {
fg = red,
bg = "NONE",
},
-- Indent blankline
IndentBlanklineChar = { fg = line },
IndentBlanklineSpaceChar = { fg = line },
-- Lsp Diagnostics
DiagnosticHint = { fg = purple },
DiagnosticError = { fg = red },
DiagnosticWarn = { fg = yellow },
DiagnosticInformation = { fg = green },
-- NvimTree
NvimTreeEmptyFolderName = { fg = folder_bg },
NvimTreeEndOfBuffer = { fg = darker_black },
NvimTreeFolderIcon = { fg = folder_bg },
NvimTreeFolderName = { fg = folder_bg },
NvimTreeGitDirty = { fg = red },
NvimTreeIndentMarker = { fg = one_bg2 },
NvimTreeNormal = { bg = darker_black },
NvimTreeNormalNC = { bg = darker_black },
NvimTreeOpenedFolderName = { fg = folder_bg },
NvimTreeWinSeparator = {
fg = darker_black,
bg = darker_black,
},
NvimTreeWindowPicker = {
fg = red,
bg = black2,
},
-- Telescope
TelescopeBorder = {
fg = darker_black,
bg = darker_black,
},
TelescopePromptBorder = {
fg = black2,
bg = black2,
},
TelescopePromptNormal = {
fg = white,
bg = black2,
},
TelescopePromptPrefix = {
fg = red,
bg = black2,
},
TelescopeNormal = { bg = darker_black },
TelescopePreviewTitle = {
fg = black,
bg = green,
},
TelescopePromptTitle = {
fg = black,
bg = red,
},
TelescopeResultsTitle = {
fg = darker_black,
bg = darker_black,
},
TelescopeSelection = { bg = black2 },
}
if ui.transparency then
local hl_groups = {
"NormalFloat",
"Normal",
"Folded",
"NvimTreeNormal",
"NvimTreeNormalNC",
"TelescopeNormal",
"TelescopePrompt",
"TelescopeResults",
"TelescopeBorder",
"TelescopePromptBorder",
"TelescopePromptNormal",
"TelescopePromptPrefix",
}
for index, _ in ipairs(hl_groups) do
hl_cols[hl_groups[index]] = {
bg = "NONE",
}
end
hl_cols.NvimTreeWinSeparator = {
fg = grey,
bg = "NONE",
}
hl_cols.TelescopeResultsTitle = {
fg = black,
bg = blue,
}
end
local utils = require "core.utils"
local user_highlights = utils.load_config().ui.hl_override
-- override user highlights if there are any
hl_cols = vim.tbl_deep_extend("force", hl_cols, user_highlights)
for hl, col in pairs(hl_cols) do
vim.api.nvim_set_hl(0, hl, col)
end