浏览代码

push builtin spacegray theme

Chris 4 年之前
父节点
当前提交
52020733da
共有 1 个文件被更改,包括 364 次插入0 次删除
  1. 364 0
      lua/lv-themes/spacegray.lua

+ 364 - 0
lua/lv-themes/spacegray.lua

@@ -0,0 +1,364 @@
+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("#f07178"),
+
+        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 = "underline"},
+        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 = "underline"},
+        LspDiagnosticsDefaultWarning {bg = "NONE", fg = c.warning_orange, gui = "underline"},
+        LspDiagnosticsDefaultInformation {bg = "NONE", fg = c.info_yellow, gui = "underline"},
+        LspDiagnosticsDefaultHint {bg = "NONE", fg = c.hint_blue, gui = "underline"},
+
+        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