mirror of
https://github.com/timmypidashev/darkbox.nvim.git
synced 2026-04-14 03:33:51 +00:00
115 lines
3.2 KiB
Lua
115 lines
3.2 KiB
Lua
local M = {}
|
|
|
|
-- Define the color palette
|
|
M.colors = {
|
|
bg = "#060606",
|
|
fg = "#ebdbb2",
|
|
black = "#060606",
|
|
red = "#fb4934",
|
|
green = "#b8bb26",
|
|
yellow = "#fabd2f",
|
|
blue = "#83a598",
|
|
purple = "#d3869b",
|
|
aqua = "#8ec07c",
|
|
orange = "#fe8019",
|
|
gray = "#928374",
|
|
bright_black = "#3c3836",
|
|
bright_red = "#fb4934",
|
|
bright_green = "#b8bb26",
|
|
bright_yellow = "#fabd2f",
|
|
bright_blue = "#83a598",
|
|
bright_purple = "#d3869b",
|
|
bright_aqua = "#8ec07c",
|
|
bright_gray = "#ebdbb2",
|
|
}
|
|
|
|
-- Define all the highlight groups
|
|
local function get_groups(colors)
|
|
return {
|
|
-- Base groups
|
|
Normal = { fg = colors.fg, bg = colors.bg },
|
|
NormalFloat = { fg = colors.fg, bg = colors.bg },
|
|
Comment = { fg = colors.gray, italic = true },
|
|
CursorLine = { bg = colors.black },
|
|
CursorLineNr = { fg = colors.bright_yellow },
|
|
LineNr = { fg = colors.gray },
|
|
Visual = { bg = colors.gray },
|
|
StatusLine = { fg = colors.fg, bg = colors.black },
|
|
StatusLineNC = { fg = colors.gray, bg = colors.black },
|
|
|
|
-- Syntax
|
|
String = { fg = colors.green },
|
|
Function = { fg = colors.blue },
|
|
Keyword = { fg = colors.purple },
|
|
Identifier = { fg = colors.orange },
|
|
Constant = { fg = colors.yellow },
|
|
Statement = { fg = colors.red },
|
|
Type = { fg = colors.aqua },
|
|
Special = { fg = colors.blue },
|
|
|
|
-- Diagnostic
|
|
DiagnosticError = { fg = colors.red },
|
|
DiagnosticWarn = { fg = colors.yellow },
|
|
DiagnosticInfo = { fg = colors.blue },
|
|
DiagnosticHint = { fg = colors.aqua },
|
|
|
|
-- LSP
|
|
LspReferenceText = { bg = colors.bright_black },
|
|
LspReferenceRead = { bg = colors.bright_black },
|
|
LspReferenceWrite = { bg = colors.bright_black },
|
|
|
|
-- Git
|
|
GitSignsAdd = { fg = colors.green },
|
|
GitSignsChange = { fg = colors.yellow },
|
|
GitSignsDelete = { fg = colors.red },
|
|
|
|
-- Treesitter
|
|
TSFunction = { fg = colors.blue },
|
|
TSKeyword = { fg = colors.purple },
|
|
TSString = { fg = colors.green },
|
|
TSVariable = { fg = colors.fg },
|
|
TSComment = { fg = colors.gray, italic = true },
|
|
}
|
|
end
|
|
|
|
-- Load the colorscheme
|
|
function M.load()
|
|
-- Clear existing highlights and set syntax
|
|
if vim.g.colors_name then
|
|
vim.cmd("hi clear")
|
|
end
|
|
if vim.fn.exists("syntax_on") then
|
|
vim.cmd("syntax reset")
|
|
end
|
|
|
|
-- Set colorscheme name
|
|
vim.o.termguicolors = true
|
|
vim.g.colors_name = "darkbox"
|
|
|
|
-- Apply highlight groups
|
|
local groups = get_groups(M.colors)
|
|
for group, settings in pairs(groups) do
|
|
vim.api.nvim_set_hl(0, group, settings)
|
|
end
|
|
|
|
-- Set terminal colors
|
|
vim.g.terminal_color_0 = M.colors.black
|
|
vim.g.terminal_color_1 = M.colors.red
|
|
vim.g.terminal_color_2 = M.colors.green
|
|
vim.g.terminal_color_3 = M.colors.yellow
|
|
vim.g.terminal_color_4 = M.colors.blue
|
|
vim.g.terminal_color_5 = M.colors.purple
|
|
vim.g.terminal_color_6 = M.colors.aqua
|
|
vim.g.terminal_color_7 = M.colors.gray
|
|
vim.g.terminal_color_8 = M.colors.bright_black
|
|
vim.g.terminal_color_9 = M.colors.bright_red
|
|
vim.g.terminal_color_10 = M.colors.bright_green
|
|
vim.g.terminal_color_11 = M.colors.bright_yellow
|
|
vim.g.terminal_color_12 = M.colors.bright_blue
|
|
vim.g.terminal_color_13 = M.colors.bright_purple
|
|
vim.g.terminal_color_14 = M.colors.bright_aqua
|
|
vim.g.terminal_color_15 = M.colors.bright_gray
|
|
end
|
|
|
|
return M
|