local lush = require('lush') local M = {} local base = require('lupancolors.lupan').options.dark.base M.colors = { base = base, bg = base.de(10).da(70), fg = base.de(75), red = base.hue(0), orange = base.hue(30), yellow = base.hue(60), yellow_green = base.hue(90), green = base.hue(120), aquamarine = base.hue(150), cyan = base.hue(180), blue = base.hue(210), lavender = base.hue(240), purple = base.hue(270), fuchsia = base.hue(300), hot_pink = base.hue(330), } ---@diagnostic disable: undefined-global M.theme = lush(function() local c = M.colors return { -- See: h highlight-groups Normal { bg = c.bg, fg = c.fg }, CursorLine { bg = Normal.bg.li(5) }, Visual { bg = Normal.bg.sa(20).li(10) }, Comment { fg = c.base.de(75).da(20) }, CursorColumn { CursorLine }, LineNr { Comment, gui = "italic" }, CursorLineNr { fg = c.blue, bg = CursorLine.bg, gui = "italic" }, Search { bg = c.yellow, fg = Normal.bg }, IncSearch { bg = c.yellow_green, fg = Normal.bg }, String { fg = c.blue }, PreProc { fg = c.lavender }, Statement { fg = c.orange }, Type { fg = c.yellow }, Identifier { fg = Normal.fg }, Function { fg = c.green }, Operator { fg = c.aquamarine }, Special { fg = c.purple }, Constant { fg = c.cyan }, NonText { fg = Normal.bg.li(10) }, DiffAdd { fg = c.green }, DiffDelete { fg = c.red }, diffRemoved { fg = c.red }, DiffChange { fg = c.blue }, diffChanged { fg = c.blue }, SignColumn { Normal }, diffAdded { DiffAdd }, MoreMsg { fg = c.green, gui = "bold" }, Question { fg = c.green, gui = "bold" }, TelescopeSelection { CursorLine }, WhiKeyFloat { bg = Normal.bg.li(10) }, DiagnosticError { fg = c.red }, DiagnosticWarn { fg = c.orange }, DiagnosticInfo { fg = c.cyan }, Pmenu { bg = Normal.bg.li(10) }, PmenuSel { bg = Normal.bg.li(20).sa(20) }, Error { bg = c.red.da(25), fg = Normal.bg }, ErrorMsg { Error }, MatParen { fg = c.hot_pink, gui = "bold" }, SpecialKey { fg = c.red }, Directory { fg = c.cyan }, Title { fg = c.fuchsia, gui = "bold" }, Conceal { bg = Normal.bg.li(20).de(50) }, SpellBad { fg = c.red, gui = "underline" }, SpellRare { fg = Type.fg, gui = "underline" }, SpellLocal { fg = DiagnosticInfo.fg, gui = "underline" }, SpellCap { fg = String.fg, gui = "underline" }, } end) return M -- vi:nowrap:number