From dc03e13eae84fc222834377eba17f14137b4a2da Mon Sep 17 00:00:00 2001 From: lew Date: Wed, 12 Nov 2025 00:40:42 +0000 Subject: [PATCH] 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 --- private_dot_config/nvim/colors/helix.lua | 204 ++++++++++++++++++ private_dot_config/nvim/init.lua | 2 + .../nvim/lua/plugin/00_colorscheme.lua | 7 - .../nvim/lua/plugin/19_comments.lua | 38 ++++ 4 files changed, 244 insertions(+), 7 deletions(-) create mode 100644 private_dot_config/nvim/colors/helix.lua create mode 100644 private_dot_config/nvim/lua/plugin/19_comments.lua diff --git a/private_dot_config/nvim/colors/helix.lua b/private_dot_config/nvim/colors/helix.lua new file mode 100644 index 0000000..5667e2f --- /dev/null +++ b/private_dot_config/nvim/colors/helix.lua @@ -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 diff --git a/private_dot_config/nvim/init.lua b/private_dot_config/nvim/init.lua index 87816bf..6b11c24 100644 --- a/private_dot_config/nvim/init.lua +++ b/private_dot_config/nvim/init.lua @@ -36,3 +36,5 @@ require("config.10_opts") require("config.20_keymaps") require("config.30_autocmds") require("config.40_statusline") + +vim.cmd.colorscheme("helix") diff --git a/private_dot_config/nvim/lua/plugin/00_colorscheme.lua b/private_dot_config/nvim/lua/plugin/00_colorscheme.lua index e0229fd..0ed2bf4 100644 --- a/private_dot_config/nvim/lua/plugin/00_colorscheme.lua +++ b/private_dot_config/nvim/lua/plugin/00_colorscheme.lua @@ -1,11 +1,4 @@ return { - { - "oneslash/helix-nvim", - vsersion = "*", - config = function() - vim.cmd.colorscheme("helix") - end, - }, { "catgoose/nvim-colorizer.lua", event = "BufReadPre", diff --git a/private_dot_config/nvim/lua/plugin/19_comments.lua b/private_dot_config/nvim/lua/plugin/19_comments.lua new file mode 100644 index 0000000..9e4a3e5 --- /dev/null +++ b/private_dot_config/nvim/lua/plugin/19_comments.lua @@ -0,0 +1,38 @@ +-- comment.lua +return { + { + "LudoPinelli/comment-box.nvim", + keys = { + { + "cd", + mode = { "n", "v" }, + "CBd", + desc = "delete comment style", + }, + { + "cc", + mode = { "n", "v" }, + "CBcatalog", + desc = "view comment style catalog", + }, + { + "cb", + mode = { "n", "v" }, + "CBllbox2", + desc = "left-aligned box", + }, + { + "ca", + mode = { "n", "v" }, + "CBlabox2", + desc = "left-aligned box (alt)", + }, + { + "cq", + mode = { "n", "v" }, + "CBllbox11", + desc = "left-aligned quote", + }, + }, + }, +}