123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364 |
- local lush = require('lush')
- local hsl = lush.hsl
- local theme = lush(function()
- local c = {
- bg = hsl("#212121"),
- bg1 = hsl("#2a2a2a"),
- -- bg2 = hsl("#3a3a3a"),
- bg2 = hsl("#383d45"),
- white = hsl("#c8c9d1"),
- gray = hsl("#858585"),
- light_gray = hsl("#c8c9c1"),
- error_red = hsl("#F44747"),
- warning_orange = hsl("#ff8800"),
- info_yellow = hsl("#ffcc66"),
- hint_blue = hsl("#4fc1ff"),
- red = hsl("#b04b57"),
- blue = hsl("#5486c0"),
- gray_blue = hsl("#66899d"),
- -- yellow = hsl("#ffcb6b"),
- yellow = hsl("#eeba5a"),
- -- orange = hsl("#c98a75"),
- orange = hsl("#c6735a"),
- green = hsl("#87b379"),
- light_green = hsl("#b2d77c"),
- -- aqua = hsl("#46b1d0"),
- aqua = hsl("#65a7c5"),
- purple = hsl("#bf83c1"),
- pale_purple = hsl("#7199ee"),
- sign_add = hsl("#587C0C"),
- sign_change = hsl("#0C7D9D"),
- sign_delete = hsl("#94151B"),
- test = hsl("#ff00ff")
- }
- return {
- Normal {bg = c.bg, fg = c.white, gui = "NONE"}, -- used for the columns set with 'colorcolumn'
- SignColumn {Normal},
- ModeMsg {Normal},
- MsgArea {Normal},
- MsgSeparator {Normal},
- SpellBad {bg = "NONE", fg = c.white, gui = "underline", sp = c.red},
- SpellCap {bg = "NONE", fg = c.white, gui = "underline", sp = c.yellow},
- SpellLocal {bg = "NONE", fg = c.white, gui = "underline", sp = c.green},
- SpellRare {bg = "NONE", fg = c.white, gui = "underline", sp = c.blue},
- NormalNC {Normal},
- Pmenu {bg = c.bg2, fg = c.white, gui = "NONE"},
- PmenuSel {bg = c.gray_blue, fg = c.bg1.da(5), gui = "NONE"},
- WildMenu {PmenuSel}, -- Non Defaults
- CursorLineNr {bg = "NONE", fg = c.light_gray, gui = "bold"},
- Comment {bg = "NONE", fg = c.gray, gui = "italic"}, -- any comment
- Folded {bg = c.bg1, fg = c.gray, gui = "NONE"},
- FoldColumn {Normal, fg = c.gray, gui = "NONE"},
- LineNr {bg = "NONE", fg = c.gray, gui = "NONE"},
- FloatBorder {bg = c.bg1, fg = c.gray, gui = "NONE"},
- Whitespace {bg = "NONE", fg = c.gray.da(35), gui = "NONE"},
- VertSplit {bg = "NONE", fg = c.bg2, gui = "NONE"},
- CursorLine {bg = c.bg1, fg = "NONE", gui = "NONE"},
- CursorColumn {CursorLine},
- ColorColumn {CursorLine},
- NormalFloat {bg = c.bg2.da(30), fg = "NONE", gui = "NONE"},
- Visual {bg = c.bg2.da(25), fg = "NONE", gui = "NONE"},
- VisualNOS {Visual}, WarningMsg {bg = "NONE", fg = c.red, gui = "NONE"},
- DiffText {bg = "NONE", fg = "NONE", gui = "NONE"},
- DiffAdd {bg = c.sign_add, fg = "NONE", gui = "NONE"},
- DiffChange {bg = c.sign_change, fg = "NONE", gui = "NONE"},
- DiffDelete {bg = c.sign_delete, fg = "NONE", gui = "NONE"},
- QuickFixLine {CursorLine},
- PmenuSbar {bg = c.bg2.li(15), fg = "NONE", gui = "NONE"},
- PmenuThumb {bg = c.white, fg = "NONE", gui = "NONE"},
- MatchParen {CursorLine, fg = "NONE", gui = "NONE"},
- Cursor {fg = "NONE", bg = "NONE", gui = "reverse"},
- lCursor {Cursor},
- CursorIM {Cursor},
- TermCursor {Cursor}, TermCursorNC {Cursor},
- Conceal {bg = "NONE", fg = c.blue, gui = "NONE"},
- Directory {bg = "NONE", fg = c.blue, gui = "NONE"},
- SpecialKey {bg = "NONE", fg = c.blue, gui = "bold"},
- Title {bg = "NONE", fg = c.blue, gui = "bold"},
- ErrorMsg {bg = "NONE", fg = c.error_red, gui = "NONE"},
- Search {bg = c.gray_blue, fg = c.white},
- IncSearch {Search},
- Substitute {Search},
- MoreMsg {bg = "NONE", fg = c.aqua, gui = "NONE"},
- Question {MoreMsg},
- EndOfBuffer {bg = "NONE", fg = c.bg, gui = "NONE"},
- NonText {EndOfBuffer},
- String {fg = c.green},
- Character {fg = c.light_green},
- Constant {fg = c.orange},
- Number {fg = c.red},
- Boolean {fg = c.red},
- Float {fg = c.red},
- Identifier {fg = c.white},
- Function {fg = c.yellow},
- Operator {fg = c.gray_blue},
- Type {fg = c.purple},
- StorageClass {Type},
- Structure {Type},
- Typedef {Type},
- Keyword {fg = c.blue},
- Statement {Keyword },
- Conditional {Keyword},
- Repeat {Keyword},
- Label {Keyword},
- Exception {Keyword},
- Include {Keyword},
- PreProc {fg = c.aqua},
- Define {PreProc},
- Macro {PreProc},
- PreCondit {PreProc},
- Special {fg = c.orange},
- SpecialChar {Character},
- Tag {fg = c.pale_purple},
- Debug {fg = c.red},
- Delimiter {fg = c.white.da(25)},
- SpecialComment {fg = c.gray},
- Underlined {fg = "NONE", gui = "underline"},
- Bold {fg = "NONE", gui = "bold"},
- Italic {fg = "NONE", gui = "italic"},
- -- Todo
- -- ("Ignore", below, may be invisible...)
- Ignore {fg = c.white},
- Todo {bg = "NONE", fg = c.red, gui = "bold"},
- Error {fg = c.error_red},
- -- Treesitter
- TSComment {Comment}, -- comment blocks.
- luaTSConstructor {bg = "NONE", fg = c.white.da(25)}, -- override Lua curly braces
- TSAnnotation {bg = "NONE", fg = c.aqua}, -- For C++/Dart attributes, annotations that can be attached to the code to denote some kind of meta information.
- TSAttribute {bg = "NONE", fg = c.aqua}, -- (unstable) TODO: docs
- TSConstructor {Type}, -- For constructor calls and definitions: `{ }` in Lua, and Java constructors.
- TSType {Type}, -- types.
- TSTypeBuiltin {Type}, -- builtin types.
- TSConditional {Conditional}, -- keywords related to conditionnals.
- TSException {Exception}, -- exception related keywords.
- TSInclude {Include}, -- includes: `#include` in C, `use` or `extern crate` in Rust, or `require` in Lua.
- TSKeyword {Keyword}, -- keywords that don't fall in previous categories.
- TSKeywordFunction {Keyword}, -- keywords used to define a fuction.
- TSLabel {Label}, -- labels: `label:` in C and `:label:` in Lua.
- TSNamespace {bg = "NONE", fg = c.blue}, -- For identifiers referring to modules and namespaces.
- TSRepeat {Repeat}, -- keywords related to loops.
- TSConstant {Constant}, -- constants
- TSConstBuiltin {Constant}, -- constant that are built in the language: `nil` in Lua.
- TSFloat {Float}, -- floats.
- TSNumber {Number}, -- all numbers
- TSBoolean {Boolean}, -- booleans.
- TSCharacter {Character}, -- characters.
- TSError {bg = "NONE", fg = "NONE"}, -- For syntax/parser errors.
- TSFunction {Function}, -- function (calls and definitions).
- TSFuncBuiltin {Function}, -- builtin functions: `table.insert` in Lua.
- TSMethod {Function}, -- method calls and definitions.
- TSConstMacro {Macro}, -- constants that are defined by macros: `NULL` in C.
- TSFuncMacro {Macro}, -- macro defined fuctions (calls and definitions): each `macro_rules` in Rust.
- TSVariableBuiltin {bg = "NONE", fg = c.aqua}, -- Variable names that are defined by the languages, like `this` or `self`.
- TSProperty {fg = c.aqua},
- TSOperator {Operator}, -- any operator: `+`, but also `->` and `*` in C.
- TSVariable {bg = "NONE", fg = c.white}, -- Any variable name that does not have another highlight.
- TSField {bg = "NONE", fg = c.white}, -- For fields.
- TSParameter {TSField}, -- parameters of a function.
- TSParameterReference {TSParameter}, -- references to parameters of a function.
- TSSymbol {Identifier}, -- identifiers referring to symbols or atoms.
- TSText {fg = c.white}, -- strings considered text in a markup language.
- TSPunctDelimiter {Delimiter}, -- delimiters ie: `.`
- TSTagDelimiter {Delimiter}, -- Tag delimiter like `<` `>` `/`
- TSPunctBracket {Delimiter}, -- brackets and parens.
- TSPunctSpecial {Delimiter}, -- special punctutation that does not fall in the catagories before.
- TSString {String}, -- strings.
- TSStringRegex {TSString}, -- regexes.
- TSStringEscape {Character}, -- escape characters within a string.
- TSWarning {Todo}, -- Variable names that are defined by the languages, like `this` or `self`.
- TSTag {Tag}, -- Tags like html tag names.
- TSEmphasis {gui = "italic"}, -- text to be represented with emphasis.
- TSUnderline {gui = "underline"}, -- text to be represented with an underline.
- TSStrike {gui = "strikethrough"}, -- strikethrough text.
- TSTitle {Title}, -- Text that is part of a title.
- TSLiteral {String}, -- Literal text.
- TSURI {fg = c.aqua}, -- Any URI like a link or email.
- -- TSNone { }, -- TODO: docs
- -- These groups are for the native LSP client. Some other LSP clients may
- -- use these groups, or use their own. Consult your LSP client's
- -- documentation.
- LspDiagnosticsDefaultError {bg = "NONE", fg = c.error_red, gui = "NONE"},
- LspDiagnosticsDefaultWarning {bg = "NONE", fg = c.warning_orange, gui = "NONE"},
- LspDiagnosticsDefaultInformation {bg = "NONE", fg = c.info_yellow, gui = "NONE"},
- LspDiagnosticsDefaultHint {bg = "NONE", fg = c.hint_blue, gui = "NONE"},
- LspDiagnosticsVirtualTextError {LspDiagnosticsDefaultError},
- LspDiagnosticsVirtualTextWarning {LspDiagnosticsDefaultWarning},
- LspDiagnosticsVirtualTextInformation {LspDiagnosticsDefaultInformation},
- LspDiagnosticsVirtualTextHint {LspDiagnosticsDefaultHint},
-
- LspDiagnosticsFloatingError {fg = c.error_red, gui = "NONE"},
- LspDiagnosticsFloatingWarning {fg = c.warning_orange, gui = "NONE"},
- LspDiagnosticsFloatingInformation {fg = c.info_yellow, gui = "NONE"},
- LspDiagnosticsFloatingHint {fg = c.hint_blue, gui = "NONE"},
- LspDiagnosticsSignError {fg = c.error_red, gui = "NONE"},
- LspDiagnosticsSignWarning {fg = c.warning_orange, gui = "NONE"},
- LspDiagnosticsSignInformation {fg = c.info_yellow, gui = "NONE"},
- LspDiagnosticsSignHint {fg = c.hint_blue, gui = "NONE"}, -- Tree-Sitter
- LspDiagnosticsError {LspDiagnosticsSignError},
- LspDiagnosticsWarning {LspDiagnosticsSignWarning},
- LspDiagnosticsInformation {LspDiagnosticsSignInformation},
- LspDiagnosticsHint {LspDiagnosticsSignHint},
- -- LspReferenceText {bg = c.bg1, fg = "NONE", gui = "underline"},
- -- LspReferenceRead {bg = c.bg1, fg = "NONE", gui = "underline"},
- -- LspReferenceWrite {bg = c.bg1, fg = "NONE", gui = "underline"},
- LspDiagnosticsUnderlineError {fg = "NONE", gui = "underline", sp = c.red},
- LspDiagnosticsUnderlineWarning {fg = "NONE", gui = "underline", sp = c.yellow},
- LspDiagnosticsUnderlineInformation {fg = "NONE", gui = "underline", sp = c.blue},
- LspDiagnosticsUnderlineHint {fg = "NONE", gui = "underline", sp = c.green},
- -- gitsigns.nvim
- SignAdd {fg = c.sign_add},
- SignChange {fg = c.sign_change},
- SignDelete {fg = c.sign_delete}, -- Any URI like a link or email.
- GitSignsAdd {fg = c.sign_add},
- GitSignsChange { fg = c.sign_change},
- GitSignsDelete {fg = c.sign_delete},
- -- telescope.nvim
- TelescopeSelection {bg = "NONE", fg = c.aqua},
- TelescopeMatching {bg = "NONE", fg = c.red, gui = "bold"},
- TelescopeBorder {bg = c.bg1, fg = c.gray}, -- nvim-tree.lua
- -- Nvimtree
- NvimTreeFolderIcon {fg = c.blue},
- NvimTreeIndentMarker {fg = c.gray},
- NvimTreeNormal {fg = c.white.da(10), bg = c.bg1},
- NvimTreeFolderName {fg = c.blue},
- NvimTreeOpenedFolderName {fg = c.aqua.da(10), gui = "italic"},
- NvimTreeOpenedFile {NvimTreeOpenedFolderName},
- NvimTreeRootFolder {fg = c.blue.da(20)},
- NvimTreeExecFile {fg = c.green},
- NvimTreeImageFile {fg = c.purple},
- NvimTreeSpecialFile {fg = c.aqua},
- NvimTreeGitStaged {fg = c.sign_add},
- NvimTreeGitNew {fg = c.sign_add},
- NvimTreeGitDirty {fg = c.sign_add},
- NvimTreeGitRenamed {fg = c.sign_change},
- NvimTreeGitMerge {fg = c.sign_change},
- NvimTreeGitDelete {fg = c.sign_delete},
- NvimTreeVertSplit {fg = c.bg1, bg = c.bg1},
- -- BarBar
- TabLine {bg = c.bg1, fg = c.white, gui = "NONE"},
- TabLineFill {bg = c.bg1, fg = c.white, gui = "NONE"},
- TabLineSel {bg = c.blue, fg = c.bg1, gui = "NONE"},
- BufferCurrent {fg = c.fg, bg = c.bg},
- BufferCurrentIndex {fg = c.aqua, bg = c.bg},
- BufferCurrentMod {fg = c.info_yellow, bg = c.bg},
- BufferCurrentSign {fg = c.aqua, bg = c.bg},
- BufferCurrentTarget {fg = c.red, bg = c.bg, gui = "bold"},
- BufferVisible {fg = c.fg, bg = c.bg},
- BufferVisibleIndex {fg = c.fg, bg = c.bg},
- BufferVisibleMod {fg = c.info_yellow, bg = c.bg},
- BufferVisibleSign {fg = c.info_yellow, bg = c.bg},
- BufferVisibleTarget {fg = c.red, bg = c.bg, gui = "bold"},
- BufferInactive {fg = c.gray, bg = c.bg1},
- BufferInactiveIndex {fg = c.gray, bg = c.bg1},
- BufferInactiveMod {fg = c.info_yellow, bg = c.bg1},
- BufferInactiveSign {fg = c.gray, bg = c.bg1},
- BufferInactiveTarget {fg = c.red, bg = c.bg1},
- -- some fix for html related stuff
- htmlH1 {Title}, -- markdown stuff
- mkdLink {fg = c.aqua, gui = "underline"},
- mkdLineBreak {bg = "NONE", fg = "NONE", gui = "NONE"},
- mkdHeading {fg = c.white},
- mkdInlineURL {mkdLink},
- mkdUnderline {fg = c.gray},
- markdownUrl {mkdLink},
- markdownCode {fg = c.orange, bg = "NONE"},
- markdownLinkTextDelimiter {Delimiter},
- markdownLinkDelimiter {Delimiter},
- markdownIdDelimiter {Delimiter},
- markdownLinkText {fg = c.aqua},
- markdownItalic {fg = "NONE", gui = "italic"}, -- flutter-tools.nvim
- FlutterWidgetGuides {fg = c.gray.li(10)}, -- statusline
- StatusLine {bg = c.bg1, fg = c.white},
- StatusLineNC {bg = c.bg1, fg = c.gray},
- StatusLineMode {bg = c.gray, fg = c.bg, gui = "bold"},
- StatusLineDeco {bg = c.bg2, fg = c.yellow},
- StatusLineLCol {bg = c.bg2, fg = c.white},
- StatusLineLColAlt {bg = c.bg1, fg = c.white},
- StatusLineFT {bg = c.bg2, fg = c.white},
- StatusLineFTAlt {bg = c.bg2, fg = c.white},
- StatusLineGit {bg = c.gray, fg = c.bg},
- StatusLineGitAlt {bg = c.gray, fg = c.bg},
- StatusLineLSP {bg = c.bg1, fg = c.gray.li(25)},
- StatusLineFileName {bg = c.bg1, fg = c.white, gui = "bold"},
- -- lsp-trouble.nvim
- LspTroubleIndent {fg = c.gray.li(10)}, -- tabline stuff
- -- tabline diagnostic
- TabLineError {LspDiagnosticsSignError},
- TabLineWarning {LspDiagnosticsSignWarning},
- TabLineHint {LspDiagnosticsSignHint},
- TabLineInformation {LspDiagnosticsSignInformation}, -- which-key.nvim
- WhichKey {fg = c.purple}, -- nvim-compe
- WhichKeySeperator {fg = c.green}, -- nvim-compe
- WhichKeyGroup {fg = c.blue}, -- nvim-compe
- WhichKeyDesc {fg = c.aqua}, -- nvim-compe
- WhichKeyFloat {bg = c.bg1}, -- nvim-compe
- CompeDocumentation {Pmenu, fg = "NONE"}, -- diffview
- DiffviewNormal {NvimTreeNormal},
- DiffviewStatusAdded {SignAdd},
- DiffviewStatusModified {SignChange},
- DiffviewStatusRenamed {SignChange},
- DiffviewStatusDeleted {SignDelete},
- DiffviewFilePanelInsertion {SignAdd},
- DiffviewFilePanelDeletion {SignDelete},
- DiffviewVertSplit {fg = c.gray, bg = c.bg},
- DashboardHeader {fg = c.blue},
- DashboardCenter {fg = c.purple},
- DashboardFooter {fg = c.aqua},
- IndentBlanklineContextChar {fg = c.gray.da(20)},
- CodiVirtualText {fg = c.hint_blue}
- }
- end)
- -- return our parsed theme for extension or use else where.
- return theme
- -- vi:nowrap
|