Add .config/nvim/colors/helix.lua

Update .config/nvim/init.lua
Update .config/nvim/lua/plugin/00_colorscheme.lua
Add .config/nvim/lua/plugin/19_comments.lua
This commit is contained in:
Lewis Wynne 2025-11-12 00:40:42 +00:00
parent 077d09392c
commit dc03e13eae
4 changed files with 244 additions and 7 deletions

View file

@ -0,0 +1,204 @@
-- stylua: ignore
local palette = {
none = "NONE",
bg = "#3b224c",
fg = "#a4a0e8",
white = "#ffffff",
lilac = "#dbbfef",
lavender = "#a4a0e8",
comet = "#5a5977",
bossanova = "#452859",
midnight = "#3b224c",
revolver = "#281733",
silver = "#cccccc",
sirocco = "#697C81",
mint = "#9ff28f",
almond = "#eccdba",
chamois = "#E8DCA0",
honey = "#efba5d",
apricot = "#f47868",
lightning = "#ffcd1c",
delta = "#6F44F0",
blue = "#61afef",
diff_plus = "#35bf86",
diff_minus = "#f22c86",
diff_delta = "#6f44f0",
selection = "#540099",
}
local function apply_highlights(highlights)
for name, value in pairs(highlights) do
vim.api.nvim_set_hl(0, name, value)
end
end
local function load(opts)
if vim.fn.exists("syntax_on") == 1 then
vim.cmd("hi clear")
vim.cmd.syntax("reset")
end
vim.o.background = "dark"
vim.o.termguicolors = true
vim.g.colors_name = "me"
local transparent = opts and opts.transparent
local normal_bg = transparent and palette.none or palette.bg
local float_bg = transparent and palette.none or palette.revolver
-- stylua: ignore
local highlights = {
Normal = { fg = palette.fg, bg = normal_bg },
NormalNC = { fg = palette.fg, bg = normal_bg },
NormalFloat = { fg = palette.fg, bg = float_bg },
Title = { fg = palette.white, bg = palette.none },
Cursor = { fg = palette.bg, bg = palette.white },
CursorIM = { link = "Cursor" },
lCursor = { link = "Cursor" },
ColorColumn = { fg = palette.none, bg = palette.bossanova },
CursorLineNr = { fg = palette.white, bg = palette.none },
Conceal = { fg = palette.sirocco, bg = palette.none },
CursorColumn = { fg = palette.none, bg = palette.bossanova },
CursorLine = { fg = palette.none, bg = palette.bossanova },
Directory = { fg = palette.blue, bg = palette.none },
DiffAdd = { fg = palette.revolver, bg = palette.mint },
DiffChange = { fg = palette.lightning, bg = palette.none },
DiffDelete = { fg = palette.bossanova, bg = palette.apricot },
DiffText = { fg = palette.revolver, bg = palette.lightning },
DiffAdded = { fg = palette.mint },
DiffRemoved = { fg = palette.apricot },
DiffChanged = { fg = palette.blue },
DiffOldFile = { fg = palette.lightning },
DiffNewFile = { fg = palette.mint },
DiffFile = { fg = palette.blue },
DiffLine = { fg = palette.bossanova },
DiffIndexLine = { fg = palette.diff_plus },
ErrorMsg = { fg = palette.apricot, bg = palette.none },
WinSeparator = { fg = palette.bossanova, bg = palette.none },
Folded = { fg = palette.sirocco, bg = palette.none },
FoldColumn = { fg = palette.none, bg = palette.none },
IncSearch = { fg = palette.lightning, bg = palette.sirocco },
CurSearch = { link = "IncSearch" },
LineNr = { fg = palette.sirocco, bg = palette.none },
NonText = { fg = palette.sirocco, bg = palette.none },
Pmenu = { fg = palette.white, bg = float_bg },
PmenuSel = { fg = palette.none, bg = palette.bossanova },
PmenuSbar = { fg = palette.none, bg = palette.revolver },
PmenuThumb = { fg = palette.none, bg = palette.white },
Question = { fg = palette.diff_delta, bg = palette.none },
QuickFixLine = { fg = palette.revolver, bg = palette.lightning },
Search = { fg = palette.revolver, bg = palette.lightning },
SignColumn = { fg = palette.none, bg = palette.none },
SpecialKey = { fg = palette.sirocco, bg = palette.none },
SpellBad = { undercurl = true },
SpellCap = { undercurl = true },
SpellLocal = { undercurl = true },
SpellRare = { undercurl = true },
StatusLine = { fg = palette.white, bg = palette.bossanova },
StatusLineNC = { fg = palette.sirocco, bg = palette.none },
StatusLineTerm = { fg = palette.white, bg = palette.bossanova },
StatusLineTermNC = { fg = palette.bossanova, bg = palette.none },
StatusInactive = { fg = palette.bossanova, bg = palette.bg },
StatusNormal = { fg = palette.bossanova, bg = palette.blue },
StatusInsert = { fg = palette.bossanova, bg = palette.mint },
StatusVisual = { fg = palette.bossanova, bg = palette.diff_delta },
StatusReplace = { fg = palette.bossanova, bg = palette.diff_minus },
StatusCommand = { fg = palette.bossanova, bg = palette.honey },
StatusTerminal = { link = "StatusInsert" },
WinBar = { fg = palette.lavender, bg = palette.bg },
WinBarNC = { fg = palette.sirocco, bg = palette.bg },
TabLine = { fg = palette.sirocco, bg = palette.none },
TabLineSel = { fg = palette.white, bg = palette.none },
TabLineFill = { fg = palette.none, bg = palette.revolver },
Terminal = { fg = palette.white, bg = palette.revolver },
Visual = { fg = palette.none, bg = palette.selection },
VisualNOS = { fg = palette.fg, bg = palette.none },
WarningMsg = { fg = palette.lightning, bg = palette.none },
WildMenu = { fg = palette.revolver, bg = palette.blue },
EndOfBuffer = { fg = palette.bg, bg = palette.none },
FloatBorder = { fg = palette.fg, bg = palette.bg },
MatchParen = { fg = palette.none, bg = palette.fg },
-- Syntax
Comment = { fg = palette.sirocco, bg = palette.none },
Constant = { fg = palette.white, bg = palette.none },
String = { fg = palette.silver, bg = palette.none },
Character = { fg = palette.honey, bg = palette.none },
Number = { fg = palette.chamois, bg = palette.none },
Boolean = { fg = palette.almond, bg = palette.none },
Float = { fg = palette.chamois, bg = palette.none },
Identifier = { fg = palette.lavender, bg = palette.none },
Function = { fg = palette.white, bg = palette.none },
Statement = { fg = palette.almond, bg = palette.none },
Conditional = { fg = palette.almond, bg = palette.none },
Repeat = { fg = palette.almond, bg = palette.none },
Label = { fg = palette.almond, bg = palette.none },
Operator = { fg = palette.lilac, bg = palette.none },
Keyword = { fg = palette.almond, bg = palette.none, bold = true },
Exception = { fg = palette.almond, bg = palette.none },
PreProc = { fg = palette.lilac, bg = palette.none },
Include = { fg = palette.almond, bg = palette.none },
Define = { fg = palette.almond, bg = palette.none },
Macro = { fg = palette.lilac, bg = palette.none },
PreCondit = { fg = palette.lilac, bg = palette.none },
Type = { fg = palette.white, bg = palette.none },
StorageClass = { fg = palette.white, bg = palette.none },
Structure = { fg = palette.white, bg = palette.none },
Typedef = { fg = palette.white, bg = palette.none },
Special = { fg = palette.honey, bg = palette.none },
SpecialChar = { fg = palette.honey, bg = palette.none },
Tag = { fg = palette.almond, bg = palette.none },
Delimiter = { fg = palette.lavender, bg = palette.none },
SpecialComment = { fg = palette.sirocco, bg = palette.none },
Debug = { fg = "#634450", bg = palette.none },
Error = { fg = palette.apricot, bg = palette.none },
Ignore = { fg = palette.sirocco, bg = palette.none },
Underlined = { fg = palette.white, bg = palette.none },
Todo = { fg = palette.sirocco, bg = palette.none },
-- LSP/Diagnostics
DiagnosticError = { fg = palette.apricot },
DiagnosticHint = { fg = palette.silver },
DiagnosticInfo = { fg = palette.delta },
DiagnosticWarn = { fg = palette.lightning },
DiagnosticInformation = { fg = palette.delta, bold = true },
DiagnosticTruncateLine = { fg = palette.fg, bold = true },
DiagnosticUnderlineError = { sp = palette.apricot, undercurl = true },
DiagnosticUnderlineHint = { sp = palette.apricot, undercurl = true },
DiagnosticUnderlineInfo = { sp = palette.apricot, undercurl = true },
DiagnosticUnderlineWarn = { sp = palette.apricot, undercurl = true },
LspCodeLens = { fg = palette.comet },
LspCodeLensSeparator = { fg = palette.comet },
LspDiagnosticsFloatingError = { fg = palette.apricot },
LspDiagnosticsFloatingHint = { fg = palette.silver },
LspDiagnosticsFloatingInfor = { fg = palette.delta },
LspDiagnosticsFloatingWarn = { fg = palette.lightning },
LspFloatWinBorder = { fg = palette.revolver },
LspFloatWinNormal = { fg = palette.lavender, bg = palette.revolver },
LspInlayHint = { link = "Comment" },
LspReferenceRead = { fg = palette.none, bg = palette.bg },
LspReferenceText = { fg = palette.none, bg = palette.bg },
LspReferenceWrite = { fg = palette.none, bg = palette.bg },
ProviderTruncateLine = { fg = palette.fg },
["@lsp.type.builtinType"] = { fg = palette.white, bg = palette.none },
["@lsp.type.keyword"] = { link = "Keyword" },
["@lsp.type.operator"] = { link = "Operator" },
["@lsp.type.parameter"] = { fg = palette.lavender, bg = palette.none },
["@lsp.type.property"] = { link = "@property" },
["@lsp.type.variable"] = { link = "@lsp.type.variable" },
["@lsp.typemod.enumMember.defaultLibrary"] = { fg = palette.white, bg = palette.none },
["@lsp.typemod.function.defaultLibrary"] = { fg = palette.white, bg = palette.none },
["@lsp.typemod.function.global"] = { fg = palette.white, bg = palette.none },
["@lsp.typemod.method.defaultLibrary"] = { fg = palette.white, bg = palette.none },
["@lsp.typemod.method.reference"] = { link = "Function" },
["@lsp.typemod.method.trait"] = { link = "Function" },
["@lsp.typemod.selfKeyword.defaultLibrary"] = { fg = palette.mint, bg = palette.none },
["@lsp.typemod.variable.defaultLibrary"] = { fg = palette.white, bg = palette.none },
["@lsp.typemod.variable.readonly"] = { link = "Constant" },
["@lsp.type.macro"] = { fg = palette.lilac, bg = palette.none },
}
apply_highlights(highlights)
end
load()
return load

View file

@ -36,3 +36,5 @@ require("config.10_opts")
require("config.20_keymaps") require("config.20_keymaps")
require("config.30_autocmds") require("config.30_autocmds")
require("config.40_statusline") require("config.40_statusline")
vim.cmd.colorscheme("helix")

View file

@ -1,11 +1,4 @@
return { return {
{
"oneslash/helix-nvim",
vsersion = "*",
config = function()
vim.cmd.colorscheme("helix")
end,
},
{ {
"catgoose/nvim-colorizer.lua", "catgoose/nvim-colorizer.lua",
event = "BufReadPre", event = "BufReadPre",

View file

@ -0,0 +1,38 @@
-- comment.lua
return {
{
"LudoPinelli/comment-box.nvim",
keys = {
{
"<leader>cd",
mode = { "n", "v" },
"<Cmd>CBd<CR>",
desc = "delete comment style",
},
{
"<leader>cc",
mode = { "n", "v" },
"<Cmd>CBcatalog<CR>",
desc = "view comment style catalog",
},
{
"<leader>cb",
mode = { "n", "v" },
"<Cmd>CBllbox2<CR>",
desc = "left-aligned box",
},
{
"<leader>ca",
mode = { "n", "v" },
"<Cmd>CBlabox2<CR>",
desc = "left-aligned box (alt)",
},
{
"<leader>cq",
mode = { "n", "v" },
"<Cmd>CBllbox11<CR>",
desc = "left-aligned quote",
},
},
},
}