wallust/templates/nvim.lua

87 lines
2.6 KiB
Lua
Raw Normal View History

2025-12-19 12:46:31 +01:00
-- Wallust Native Theme
-- Generated by Wallust
vim.cmd("hi clear")
if vim.fn.exists("syntax_on") then
vim.cmd("syntax reset")
end
vim.g.colors_name = "wallust"
local c = {
bg = "{{background}}",
fg = "{{foreground}}",
cursor = "{{cursor}}",
c0 = "{{color0}}",
c1 = "{{color1}}",
c2 = "{{color2}}",
c3 = "{{color3}}",
c4 = "{{color4}}",
c5 = "{{color5}}",
c6 = "{{color6}}",
c7 = "{{color7}}",
c8 = "{{color8}}",
c9 = "{{color9}}",
c10 = "{{color10}}",
c11 = "{{color11}}",
c12 = "{{color12}}",
c13 = "{{color13}}",
c14 = "{{color14}}",
c15 = "{{color15}}",
}
local hl = function(group, opts)
vim.api.nvim_set_hl(0, group, opts)
end
-- Base
hl("Normal", { fg = c.fg, bg = c.bg })
hl("Cursor", { fg = c.bg, bg = c.cursor })
hl("LineNr", { fg = c.c8 })
hl("CursorLine", { bg = c.c0 })
hl("StatusLine", { fg = c.fg, bg = c.c0 })
-- Syntax
hl("Comment", { fg = c.c8, italic = true })
hl("Constant", { fg = c.c3 })
hl("String", { fg = c.c2 })
hl("Identifier", { fg = c.c4 })
hl("Function", { fg = c.c4, bold = true })
hl("Statement", { fg = c.c5 })
hl("Keyword", { fg = c.c5 })
hl("Type", { fg = c.c6 })
hl("Special", { fg = c.c1 })
-- UI
hl("Pmenu", { fg = c.fg, bg = c.c0 })
hl("PmenuSel", { fg = c.c0, bg = c.c4 })
hl("WinSeparator", { fg = c.c8 })
-- BARBAR HIGHLIGHTS (Revised for Visibility)
-- 1. ACTIVE TAB (The one you are looking at)
-- Background = Main BG, Foreground = Main FG (Seamless look)
hl("BufferCurrent", { fg = c.fg, bg = c.bg, bold = true })
hl("BufferCurrentIndex", { fg = c.c4, bg = c.bg })
hl("BufferCurrentMod", { fg = c.c3, bg = c.bg })
hl("BufferCurrentSign", { fg = c.c4, bg = c.bg })
hl("BufferCurrentTarget", { fg = c.c1, bg = c.bg, bold = true })
-- 2. INACTIVE TAB (The ones waiting in the back)
-- Background = Color0 (Darker/Different), Foreground = Color8 (Dimmed text)
hl("BufferInactive", { fg = c.c8, bg = c.bg })
hl("BufferInactiveIndex", { fg = c.c8, bg = c.bg })
hl("BufferInactiveMod", { fg = c.c8, bg = c.bg })
hl("BufferInactiveSign", { fg = c.c8, bg = c.bg })
hl("BufferInactiveTarget", { fg = c.c8, bg = c.bg, bold = true })
-- 3. VISIBLE TAB (Open in another split)
-- Slightly brighter than inactive, so you know it's "alive"
hl("BufferVisible", { fg = c.fg, bg = c.c0 })
hl("BufferVisibleIndex", { fg = c.fg, bg = c.c0 })
hl("BufferVisibleMod", { fg = c.c3, bg = c.c0 })
hl("BufferVisibleSign", { fg = c.c4, bg = c.c0 })
hl("BufferVisibleTarget", { fg = c.c1, bg = c.c0, bold = true })
-- 4. THE EMPTY SPACE (The rest of the bar)
-- Make this match the Inactive background so tabs float on it
hl("BufferTabpageFill", { fg = c.c0, bg = c.bg })