diff --git a/lua/shades_of_purple/shades_of_purple.lua b/lua/shades_of_purple/shades_of_purple.lua index bfe5821..214e635 100644 --- a/lua/shades_of_purple/shades_of_purple.lua +++ b/lua/shades_of_purple/shades_of_purple.lua @@ -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