diff options
Diffstat (limited to 'lua')
-rw-r--r-- | lua/lv-themes/spacegray.lua | 364 |
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 |