156 lines
6.6 KiB
Lua
156 lines
6.6 KiB
Lua
|
|
local colors = {
|
||
|
|
bg = '#050505',
|
||
|
|
fg = '#c5c8c6',
|
||
|
|
|
||
|
|
normal = {
|
||
|
|
black = '#282a2e',
|
||
|
|
red = '#a54242',
|
||
|
|
green = '#8c9440',
|
||
|
|
yellow = '#de935f',
|
||
|
|
blue = '#5f819d',
|
||
|
|
magenta = '#85678f',
|
||
|
|
cyan = '#5e8d87',
|
||
|
|
white = '#707880',
|
||
|
|
},
|
||
|
|
bright = {
|
||
|
|
black = '#373b41',
|
||
|
|
red = '#cc6666',
|
||
|
|
green = '#b5bd68',
|
||
|
|
yellow = '#f0c674',
|
||
|
|
blue = '#81a2be',
|
||
|
|
magenta = '#b294bb',
|
||
|
|
cyan = '#8abeb7',
|
||
|
|
white = '#c5c8c6',
|
||
|
|
},
|
||
|
|
}
|
||
|
|
|
||
|
|
vim.cmd 'hi clear'
|
||
|
|
if vim.fn.exists 'syntax_on' then
|
||
|
|
vim.cmd 'syntax reset'
|
||
|
|
end
|
||
|
|
vim.o.termguicolors = true
|
||
|
|
vim.g.colors_name = 'custom'
|
||
|
|
|
||
|
|
-- Terminal colors
|
||
|
|
vim.g.terminal_color_0 = colors.normal.black
|
||
|
|
vim.g.terminal_color_1 = colors.normal.red
|
||
|
|
vim.g.terminal_color_2 = colors.normal.green
|
||
|
|
vim.g.terminal_color_3 = colors.normal.yellow
|
||
|
|
vim.g.terminal_color_4 = colors.normal.blue
|
||
|
|
vim.g.terminal_color_5 = colors.normal.magenta
|
||
|
|
vim.g.terminal_color_6 = colors.normal.cyan
|
||
|
|
vim.g.terminal_color_7 = colors.normal.white
|
||
|
|
vim.g.terminal_color_8 = colors.bright.black
|
||
|
|
vim.g.terminal_color_9 = colors.bright.red
|
||
|
|
vim.g.terminal_color_10 = colors.bright.green
|
||
|
|
vim.g.terminal_color_11 = colors.bright.yellow
|
||
|
|
vim.g.terminal_color_12 = colors.bright.blue
|
||
|
|
vim.g.terminal_color_13 = colors.bright.magenta
|
||
|
|
vim.g.terminal_color_14 = colors.bright.cyan
|
||
|
|
vim.g.terminal_color_15 = colors.bright.white
|
||
|
|
|
||
|
|
local set_hl = function(group, opts)
|
||
|
|
vim.api.nvim_set_hl(0, group, opts)
|
||
|
|
end
|
||
|
|
|
||
|
|
-- Syntax Highlights
|
||
|
|
set_hl('Normal', { fg = colors.fg, bg = colors.bg })
|
||
|
|
set_hl('NonText', { fg = colors.normal.black })
|
||
|
|
set_hl('Comment', { fg = colors.normal.white, italic = true })
|
||
|
|
set_hl('Constant', { fg = colors.normal.yellow })
|
||
|
|
set_hl('String', { fg = colors.normal.green })
|
||
|
|
set_hl('Character', { fg = colors.normal.green })
|
||
|
|
set_hl('Number', { fg = colors.normal.yellow })
|
||
|
|
set_hl('Boolean', { fg = colors.normal.yellow })
|
||
|
|
set_hl('Float', { fg = colors.normal.yellow })
|
||
|
|
set_hl('Identifier', { fg = colors.normal.red })
|
||
|
|
set_hl('Function', { fg = colors.normal.blue })
|
||
|
|
set_hl('Statement', { fg = colors.normal.magenta })
|
||
|
|
set_hl('Conditional', { fg = colors.normal.magenta })
|
||
|
|
set_hl('Repeat', { fg = colors.normal.magenta })
|
||
|
|
set_hl('Label', { fg = colors.normal.magenta })
|
||
|
|
set_hl('Operator', { fg = colors.fg })
|
||
|
|
set_hl('Keyword', { fg = colors.normal.magenta })
|
||
|
|
set_hl('Exception', { fg = colors.normal.magenta })
|
||
|
|
set_hl('PreProc', { fg = colors.normal.magenta })
|
||
|
|
set_hl('Include', { fg = colors.normal.magenta })
|
||
|
|
set_hl('Define', { fg = colors.normal.magenta })
|
||
|
|
set_hl('Macro', { fg = colors.normal.magenta })
|
||
|
|
set_hl('PreCondit', { fg = colors.normal.magenta })
|
||
|
|
set_hl('Type', { fg = colors.normal.yellow })
|
||
|
|
set_hl('StorageClass', { fg = colors.normal.yellow })
|
||
|
|
set_hl('Structure', { fg = colors.normal.yellow })
|
||
|
|
set_hl('Typedef', { fg = colors.normal.yellow })
|
||
|
|
set_hl('Special', { fg = colors.normal.red })
|
||
|
|
set_hl('SpecialChar', { fg = colors.normal.red })
|
||
|
|
set_hl('Tag', { fg = colors.normal.red })
|
||
|
|
set_hl('Delimiter', { fg = colors.fg })
|
||
|
|
set_hl('SpecialComment', { fg = colors.normal.white })
|
||
|
|
set_hl('Debug', { fg = colors.normal.red })
|
||
|
|
set_hl('Underlined', { fg = colors.normal.blue, underline = true })
|
||
|
|
set_hl('Ignore', { fg = colors.bg })
|
||
|
|
set_hl('Error', { fg = colors.normal.red, bold = true })
|
||
|
|
set_hl('Todo', { fg = colors.normal.yellow, bold = true })
|
||
|
|
|
||
|
|
-- UI Highlights
|
||
|
|
set_hl('ColorColumn', { bg = colors.normal.black })
|
||
|
|
set_hl('Cursor', { fg = colors.bg, bg = colors.fg })
|
||
|
|
set_hl('CursorLine', { bg = colors.normal.black })
|
||
|
|
set_hl('CursorLineNr', { fg = colors.normal.yellow, bold = true })
|
||
|
|
set_hl('Directory', { fg = colors.normal.blue })
|
||
|
|
set_hl('DiffAdd', { fg = colors.normal.green, bg = colors.normal.black })
|
||
|
|
set_hl('DiffChange', { fg = colors.normal.yellow, bg = colors.normal.black })
|
||
|
|
set_hl('DiffDelete', { fg = colors.normal.red, bg = colors.normal.black })
|
||
|
|
set_hl('DiffText', { fg = colors.normal.blue, bg = colors.normal.black })
|
||
|
|
set_hl('ErrorMsg', { fg = colors.normal.red })
|
||
|
|
set_hl('VertSplit', { fg = colors.bright.black })
|
||
|
|
set_hl('Folded', { fg = colors.normal.white, bg = colors.normal.black })
|
||
|
|
set_hl('FoldColumn', { fg = colors.normal.white, bg = colors.normal.black })
|
||
|
|
set_hl('SignColumn', { fg = colors.normal.white, bg = colors.bg })
|
||
|
|
set_hl('IncSearch', { fg = colors.bg, bg = colors.normal.yellow })
|
||
|
|
set_hl('LineNr', { fg = colors.bright.black })
|
||
|
|
set_hl('MatchParen', { bg = colors.bright.black, bold = true })
|
||
|
|
set_hl('Pmenu', { fg = colors.fg, bg = colors.normal.black })
|
||
|
|
set_hl('PmenuSel', { fg = colors.bg, bg = colors.normal.blue })
|
||
|
|
set_hl('PmenuSbar', { bg = colors.normal.black })
|
||
|
|
set_hl('PmenuThumb', { bg = colors.normal.white })
|
||
|
|
set_hl('Question', { fg = colors.normal.green })
|
||
|
|
set_hl('Search', { fg = colors.bg, bg = colors.normal.yellow })
|
||
|
|
set_hl('SpecialKey', { fg = colors.bright.black })
|
||
|
|
set_hl('SpellBad', { sp = colors.normal.red, underline = true })
|
||
|
|
set_hl('SpellCap', { sp = colors.normal.blue, underline = true })
|
||
|
|
set_hl('SpellLocal', { sp = colors.normal.magenta, underline = true })
|
||
|
|
set_hl('SpellRare', { sp = colors.normal.cyan, underline = true })
|
||
|
|
set_hl('StatusLine', { fg = colors.fg, bg = colors.normal.black })
|
||
|
|
set_hl('StatusLineNC', { fg = colors.normal.white, bg = colors.normal.black })
|
||
|
|
set_hl('TabLine', { fg = colors.normal.white, bg = colors.normal.black })
|
||
|
|
set_hl('TabLineFill', { fg = colors.normal.white, bg = colors.normal.black })
|
||
|
|
set_hl('TabLineSel', { fg = colors.normal.green, bg = colors.normal.black })
|
||
|
|
set_hl('Title', { fg = colors.normal.blue })
|
||
|
|
set_hl('Visual', { bg = colors.bright.black })
|
||
|
|
set_hl('VisualNOS', { bg = colors.bright.black })
|
||
|
|
set_hl('WarningMsg', { fg = colors.normal.red })
|
||
|
|
set_hl('WildMenu', { fg = colors.bg, bg = colors.normal.blue })
|
||
|
|
|
||
|
|
-- Diagnostic Highlights (likely needed for LSP)
|
||
|
|
set_hl('DiagnosticError', { fg = colors.normal.red })
|
||
|
|
set_hl('DiagnosticWarn', { fg = colors.normal.yellow })
|
||
|
|
set_hl('DiagnosticInfo', { fg = colors.normal.blue })
|
||
|
|
set_hl('DiagnosticHint', { fg = colors.normal.cyan })
|
||
|
|
set_hl('DiagnosticUnderlineError', { sp = colors.normal.red, underline = true })
|
||
|
|
set_hl('DiagnosticUnderlineWarn', { sp = colors.normal.yellow, underline = true })
|
||
|
|
set_hl('DiagnosticUnderlineInfo', { sp = colors.normal.blue, underline = true })
|
||
|
|
set_hl('DiagnosticUnderlineHint', { sp = colors.normal.cyan, underline = true })
|
||
|
|
|
||
|
|
-- GitSigns (if installed)
|
||
|
|
set_hl('GitSignsAdd', { fg = colors.normal.green })
|
||
|
|
set_hl('GitSignsChange', { fg = colors.normal.yellow })
|
||
|
|
set_hl('GitSignsDelete', { fg = colors.normal.red })
|
||
|
|
|
||
|
|
-- Telescope (if installed)
|
||
|
|
set_hl('TelescopeBorder', { fg = colors.bright.black })
|
||
|
|
set_hl('TelescopePromptBorder', { fg = colors.bright.black })
|
||
|
|
set_hl('TelescopeResultsBorder', { fg = colors.bright.black })
|
||
|
|
set_hl('TelescopePreviewBorder', { fg = colors.bright.black })
|
||
|
|
set_hl('TelescopeSelection', { bg = colors.normal.black, bold = true })
|