More improvements

- Added tsx colors
- Some improvements on rust
- Diagnostics
This commit is contained in:
Barna Máté 2024-12-19 19:17:50 +01:00
parent 10e062d78b
commit 03e6ced5b9

View file

@ -1,55 +1,88 @@
local lush = require('lush')
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",
cyan = "#9EFFFF",
space_cadet = "#191830",
none = "NONE"
lightgreen = "#A5FF90",
orange_peel = "#ff9d00",
gold = "#fad000",
violet = "#FB94FF",
crayola = "#FF628C",
amethyst = "#b362ff",
white = "#FFFFFF",
cyan = "#9EFFFF",
space_cadet = "#191830",
aquamarine = "#80FFBB",
maize = "#FFEE80",
none = "NONE",
}
local theme = lush(function(injected_functions)
local sym = injected_functions.sym
return {
local sym = injected_functions.sym
return {
ColorColumn {fg = colors.none, bg = colors.gold },
-- 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.gold, 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.cyan, bg = colors.none }),
Type({ fg = colors.gold, bg = colors.none }),
String({ fg = colors.lightgreen, bg = colors.none }),
sym("@variable")({ fg = colors.cyan }),
Normal {fg = colors.fg, bg = colors.space_cadet },
Comment {fg = colors.amethyst, bg = colors.none, italic = true},
Constant {fg = colors.gold, bg = colors.none},
Number {fg = colors.crayola, bg = colors.none},
-- Plugins
DiagnosticUnnecessary({ fg = colors.none }),
-- Language specific stuff..
Include {fg = colors.gold, bg = colors.none},
Keyword {fg = colors.orange_peel, bg = colors.none},
Label {fg = colors.orange_peel, bg = colors.none},
Operator {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.cyan, bg = colors.none},
Type {fg = colors.gold, bg = colors.none},
String {fg = colors.lightgreen, bg = colors.none},
-- 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 }),
rustFoldBraces {fg = colors.cyan },
rustStorage { fg = colors.orange_peel },
-- Protobuf
protoStructure({ fg = colors.orange_peel }),
protoRepeat({ fg = colors.orange_peel }),
protoType({ fg = colors.gold }),
-- TODO message names shall be orage_peel
-- Language specific stuff..
sym"@lsp.typemod.selfKeyword.reference.rust" { fg = colors.violet },
sym"@lsp.typemod.variable.reference.rust" { fg = colors.violet },
-- sym"@lsp.typemod.property.public" { fg = colors.white },
sym"@lsp.type.selfTypeKeyword" { fg = colors.violet },
rustSigil {fg = colors.orange_peel },
rustSelf { fg = colors.violet },
-- Typescript, tsx
typescriptImport({ fg = colors.orange_peel }),
typescriptIdentifierName({ fg = colors.cyan }),
typescriptVariableName({ fg = colors.orange_peel }),
typescriptVariable({ fg = colors.orange_peel }),
typescriptStatementKeyword({ fg = colors.orange_peel }),
typescriptPromiseMethod({ fg = colors.gold }),
typescriptFuncCallArg({ fg = colors.gold }),
typescriptBlock({ fg = colors.gold }),
typescriptFuncArg({ fg = colors.gold }),
typescriptPredefinedType({ fg = colors.aquamarine }),
sym("@lsp.type.interface.typescriptreact")({ fg = colors.cyan }),
sym("@lsp.type.parameter.typescriptreact")({ fg = colors.cyan }),
sym("@lsp.type.namespace.typescriptreact")({ fg = colors.cyan }),
typescriptTemplateSB({ fg = colors.maize }),
tsxTagName({ fg = colors.cyan }),
-- TODO color variables inside HTML tags to cyan. Like onInputChange = {variable}
}
-- Html
htmlTagName({ fg = colors.cyan }),
}
end)
return theme