summaryrefslogtreecommitdiff
path: root/lua
diff options
context:
space:
mode:
authorChris <[email protected]>2021-07-02 11:30:42 -0400
committerChris <[email protected]>2021-07-02 11:30:42 -0400
commit52020733da76a6ce04ca3b46f614975eab0ff1d3 (patch)
tree0212c92669dd62e16c6f3cd210fe1e8bb78b4c63 /lua
parente0b16543773a95e2b9996858b7e88af8ce919a45 (diff)
push builtin spacegray theme
Diffstat (limited to 'lua')
-rw-r--r--lua/lv-themes/spacegray.lua364
1 files changed, 364 insertions, 0 deletions
diff --git a/lua/lv-themes/spacegray.lua b/lua/lv-themes/spacegray.lua
new file mode 100644
index 00000000..1535fe53
--- /dev/null
+++ b/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