142 lines
5 KiB
Lua
142 lines
5 KiB
Lua
local lush = require("lush")
|
|
local hsl = lush.hsl
|
|
|
|
local colors = {
|
|
lightgreen = "#A5FF90",
|
|
orange_peel = "#ff9d00",
|
|
gold = "#fad000",
|
|
violet = "#FB94FF",
|
|
crayola = "#FF628C",
|
|
amethyst = "#b362ff",
|
|
white = "#FFFFFF",
|
|
sgbus_green = "#3AD900",
|
|
cyan = "#9EFFFF",
|
|
space_cadet = "#191830",
|
|
aquamarine = "#80FFBB",
|
|
maize = "#FFEE80",
|
|
|
|
none = "NONE",
|
|
}
|
|
|
|
local theme = lush(function(injected_functions)
|
|
local sym = injected_functions.sym
|
|
return {
|
|
|
|
-- Editor
|
|
ColorColumn({ fg = colors.none, bg = colors.gold }),
|
|
Normal({ fg = colors.fg, bg = colors.space_cadet }),
|
|
Comment({ fg = colors.amethyst, bg = colors.none, italic = true }),
|
|
Constant({ fg = colors.crayola, bg = colors.none }),
|
|
Number({ fg = colors.crayola, bg = colors.none }),
|
|
Include({ fg = colors.gold, bg = colors.none }),
|
|
Keyword({ fg = colors.orange_peel, bg = colors.none }),
|
|
Label({ fg = colors.orange_peel, bg = colors.none }),
|
|
Statement({ fg = colors.orange_peel, bg = colors.none }),
|
|
Operator({ fg = colors.orange_peel, bg = colors.none }),
|
|
Special({ fg = colors.orange_peel, bg = colors.none }),
|
|
PreProc({ fg = colors.cyan, bg = colors.none }),
|
|
Float({ link = "Number" }),
|
|
Function({ fg = colors.gold, bg = colors.none }),
|
|
Identifier({ fg = colors.orange_peel, bg = colors.none }),
|
|
Type({ fg = colors.gold, bg = colors.none }),
|
|
String({ fg = colors.lightgreen, bg = colors.none }),
|
|
sym("@variable")({ fg = colors.cyan }),
|
|
|
|
-- Plugins
|
|
DiagnosticUnnecessary({ fg = colors.none }),
|
|
-- TODO telescope fix preview
|
|
-- Language specific stuff..
|
|
|
|
-- Rust
|
|
sym("@lsp.typemod.selfKeyword.reference.rust")({ fg = colors.violet }),
|
|
sym("@lsp.typemod.variable.reference.rust")({ fg = colors.violet }),
|
|
sym("@lsp.type.selfTypeKeyword")({ fg = colors.violet }),
|
|
sym("@lsp.type.variable.rust")({ fg = colors.white }),
|
|
sym("@lsp.type.derive.rust")({ fg = colors.gold }),
|
|
rustSigil({ fg = colors.orange_peel }),
|
|
rustSelf({ fg = colors.violet }),
|
|
rustFoldBraces({ fg = colors.cyan }),
|
|
rustStorage({ fg = colors.orange_peel }),
|
|
|
|
-- Protobuf
|
|
protoStructure({ fg = colors.orange_peecrayolal }),
|
|
protoRepeat({ fg = colors.orange_peel }),
|
|
protoType({ fg = colors.gold }),
|
|
-- TODO message names shall be orage_peel
|
|
|
|
-- Typescript, tsx
|
|
typescriptImport({ fg = colors.orange_peel }),
|
|
typescriptIdentifierName({ fg = colors.cyan }),
|
|
typescriptIdentifier({ fg = colors.violet }),
|
|
--typescriptObjectLiteral({ fg = colors.crayola }),
|
|
typescriptVariableName({ fg = colors.orange_peel }),
|
|
typescriptVariable({ fg = colors.orange_peel }),
|
|
typescriptStatementKeyword({ fg = colors.orange_peel }),
|
|
typescriptPromiseMethod({ fg = colors.gold }),
|
|
-- typescriptFuncCallArg({ fg = colors.gold, bg = colros.orange_peel}),
|
|
typescriptBlock({ fg = colors.cyan }),
|
|
typescriptFuncArg({ fg = colors.gold }),
|
|
typescriptPredefinedType({ fg = colors.aquamarine }),
|
|
typescriptConstructorType({ fg = colors.orange_peel }),
|
|
typescriptTypeReference({ fg = colors.gold }),
|
|
sym("@lsp.type.interface.typescriptreact")({ fg = colors.cyan }),
|
|
sym("@lsp.type.parameter.typescriptreact")({ fg = colors.cyan }),
|
|
sym("@lsp.type.namespace.typescriptreact")({ fg = colors.cyan }),
|
|
sym("@lsp.type.member.typescript")({ fg = colors.gold }),
|
|
sym("@lsp.type.property.typescriptreact")({ fg = colors.cyan }),
|
|
sym("@lsp.type.property.typescript")({ fg = colors.cyan }),
|
|
typescriptTemplateSB({ fg = colors.maize }),
|
|
typescriptTemplate({ fg = colors.sgbus_green }),
|
|
typescriptOptionalMark({ fg = colors.orange_peel }),
|
|
typescriptObjectLabel({ fg = colors.orange_peel }),
|
|
typescriptObjectLiteral({ fg = colors.cyan }),
|
|
typescriptReturnAnnotation({ fg = colors.cyan }),
|
|
typescriptParamImpl({ fg = colors.lightgreen }),
|
|
typescriptDOMFormProp({ fg = colors.gold }),
|
|
tsxTagName({ fg = colors.cyan }),
|
|
|
|
-- TODO color variables inside HTML tags to cyan. Like onInputChange = {variable}
|
|
|
|
-- Html
|
|
-- TODO finish
|
|
htmlTagName({ fg = colors.cyan }),
|
|
|
|
-- Markdown
|
|
markdownH1({ fg = colors.gold }),
|
|
markdownH2({ fg = colors.gold }),
|
|
markdownH3({ fg = colors.gold }),
|
|
markdownH4({ fg = colors.gold }),
|
|
markdownH5({ fg = colors.gold }),
|
|
markdownH6({ fg = colors.gold }),
|
|
markdownItalic({ fg = colors.violet }),
|
|
markdownCodeDelimiter({ fg = colors.orange_peel }),
|
|
|
|
-- Toml
|
|
tomlKey({ fg = colors.gold }),
|
|
tomlTable({ fg = colors.orange_peel }),
|
|
|
|
-- Nix
|
|
nixAttribute({ fg = colors.gold }),
|
|
nixAttributeSet({ fg = colors.gold }),
|
|
|
|
-- SSA/ASS
|
|
ssaHeader({ fg = colors.gold }),
|
|
|
|
-- Javascript
|
|
-- TODO finish
|
|
sym("@lsp.type.property.javascript")({ fg = colors.gold }),
|
|
|
|
-- C#
|
|
-- TODO in function parameters they should be gold rather than orange
|
|
csStorage({ fg = colors.orange_peel }),
|
|
csClass({ fg = colors.orange_peel }),
|
|
csType({ fg = colors.gold }),
|
|
sym("@lsp.typemod.class.static.cs")({ fg = colors.white }),
|
|
sym("@lsp.type.property.cs")({ fg = colors.orange_peel }),
|
|
csAccess({ fg = colors.violet }), -- TODO doesn't apply due to @lsp.type.keyword.cs overwriting it.
|
|
--sym("@lsp.type.keyword.cs")({ fg = colors.gold }),
|
|
}
|
|
end)
|
|
|
|
return theme
|