A dark and earthy colorscheme for Neovim. (mirror) github.com/ptdewey/darkearth-nvim
neovim neovim-colorscheme fennel
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

feat: lightearth color scheme

authored by

Patrick Dewey and committed by
Patrick Dewey
84485491 53c972e9

+594 -2
+6
.hotpot.lua
··· 7 7 return "colors/darkearth.lua" 8 8 end, 9 9 }, 10 + { 11 + "fnl/lightearth/init.fnl", 12 + function() 13 + return "colors/lightearth.lua" 14 + end, 15 + }, 10 16 }, 11 17 }
+1 -1
LICENSE
··· 1 1 MIT License 2 2 3 - Copyright (c) 2024 - 2025 Patrick Dewey 3 + Copyright (c) 2024 - 2026 Patrick Dewey 4 4 5 5 Permission is hereby granted, free of charge, to any person obtaining a copy 6 6 of this software and associated documentation files (the "Software"), to deal
+1
build.sh
··· 1 1 #!/usr/bin/env bash 2 2 3 3 fennel --compile fnl/darkearth/init.fnl &> colors/darkearth.lua 4 + fennel --compile fnl/lightearth/init.fnl &> colors/lightearth.lua
+1 -1
colors/darkearth.lua
··· 227 227 for group, attr in pairs(theme) do 228 228 vim.api.nvim_set_hl(0, group, attr) 229 229 end 230 - return nil 230 + return nil
+229
colors/lightearth.lua
··· 1 + local theme = {} 2 + theme["Normal"] = {bg = "#F0EBE1", fg = "#252F1E"} 3 + theme["Identifier"] = {link = "Normal"} 4 + theme["Variable"] = {link = "Identifier"} 5 + theme["@variable"] = {link = "Variable"} 6 + theme["@lsp.type.parameter"] = {link = "Identifier"} 7 + theme["@lsp.type.property"] = {link = "Identifier"} 8 + theme["@lsp.type.variable"] = {link = "Identifier"} 9 + theme["@namespace"] = {link = "Identifier"} 10 + theme["@parameter"] = {link = "Identifier"} 11 + theme["@text.reference"] = {link = "Identifier"} 12 + theme["DelimiterLight"] = {link = "Normal"} 13 + theme["@punctuation.bracket"] = {link = "DelimiterLight"} 14 + theme["Statement"] = {fg = "#5F865F"} 15 + theme["Keyword"] = {fg = "#5F865F"} 16 + theme["@keyword"] = {link = "Keyword"} 17 + theme["Conditional"] = {link = "Statement"} 18 + theme["Repeat"] = {link = "Statement"} 19 + theme["Label"] = {link = "Statement"} 20 + theme["Exception"] = {link = "Statement"} 21 + theme["PreProc"] = {link = "Statement"} 22 + theme["Include"] = {link = "Statement"} 23 + theme["Define"] = {link = "Statement"} 24 + theme["Macro"] = {link = "Statement"} 25 + theme["PreCondit"] = {link = "Statement"} 26 + theme["@preproc"] = {link = "Preproc"} 27 + theme["Function"] = {fg = "#77824A"} 28 + theme["@function"] = {link = "Function"} 29 + theme["@method"] = {link = "Function"} 30 + theme["@function.builtin"] = {link = "Function"} 31 + theme["@lsp.type.decorator"] = {link = "Function"} 32 + theme["@lsp.type.function"] = {link = "Function"} 33 + theme["@lsp.type.method"] = {link = "Function"} 34 + theme["Type"] = {fg = "#77824A"} 35 + theme["Structure"] = {link = "Type"} 36 + theme["StorageClass"] = {link = "Type"} 37 + theme["Typedef"] = {link = "Type"} 38 + theme["@type"] = {link = "Type"} 39 + theme["@lsp.type.type"] = {link = "Type"} 40 + theme["String"] = {fg = "#B3854D"} 41 + theme["@string"] = {link = "String"} 42 + theme["Number"] = {fg = "#B3664D"} 43 + theme["@number"] = {link = "Number"} 44 + theme["Float"] = {link = "Number"} 45 + theme["Boolean"] = {link = "Number"} 46 + theme["@boolean"] = {link = "Boolean"} 47 + theme["Field"] = {fg = "#BB7844"} 48 + theme["@field"] = {link = "Field"} 49 + theme["@property"] = {link = "Field"} 50 + theme["Constant"] = {fg = "#BB7844"} 51 + theme["Character"] = {link = "Constant"} 52 + theme["@lsp.type.enumMember"] = {link = "Constant"} 53 + theme["vimHiAttrib"] = {link = "Constant"} 54 + theme["Comment"] = {fg = "#A09890"} 55 + theme["@comment"] = {link = "Comment"} 56 + theme["@html.comment"] = {link = "Comment"} 57 + theme["@lsp.type.comment"] = {link = "Comment"} 58 + theme["@text.literal"] = {link = "Comment"} 59 + theme["CtrlPLinePre"] = {link = "Comment"} 60 + theme["LspCodeLens"] = {link = "Comment"} 61 + theme["Operator"] = {fg = "#669977"} 62 + theme["Delimiter"] = {fg = "#80744D"} 63 + theme["NvimParenthesis"] = {link = "Delimiter"} 64 + theme["@punctuation"] = {link = "Delimiter"} 65 + theme["Special"] = {fg = "#BB7844"} 66 + theme["Debug"] = {link = "Special"} 67 + theme["SpecialChar"] = {link = "Special"} 68 + theme["SpecialComment"] = {link = "Special"} 69 + theme["Tag"] = {link = "Special"} 70 + theme["@constant.builtin"] = {link = "Special"} 71 + theme["@constructor"] = {link = "Special"} 72 + theme["@punctuation.special"] = {link = "Special"} 73 + theme["NonText"] = {fg = "#C2BAA8"} 74 + theme["EndOfBuffer"] = {link = "NonText"} 75 + theme["Whitespace"] = {link = "NonText"} 76 + theme["Visual"] = {bg = "#DCD4C6"} 77 + theme["Cursor"] = {bg = "#252F1E", fg = "#F5F0E6"} 78 + theme["CursorColumn"] = {bg = "#F0EBE1"} 79 + theme["CursorLine"] = {link = "CursorColumn"} 80 + theme["LineNr"] = {fg = "#77824A"} 81 + theme["LineNrAbove"] = {fg = "#736659"} 82 + theme["LineNrBelow"] = {link = "LineNrAbove"} 83 + theme["CursorLineNr"] = {link = "LineNr"} 84 + theme["TermCursor"] = {reverse = true} 85 + theme["Search"] = {bg = "#5F865F", fg = "#F5F0E6"} 86 + theme["CurSearch"] = {link = "Search"} 87 + theme["QuickFixLine"] = {link = "Search"} 88 + theme["Substitute"] = {link = "Search"} 89 + theme["IncSearch"] = {bg = "#BB7844", fg = "#F5F0E6"} 90 + theme["Error"] = {bg = "#B3664D", fg = "#F5F0E6"} 91 + theme["ErrorMsg"] = {fg = "#B36B42"} 92 + theme["WarningMsg"] = {fg = "#B36B42"} 93 + theme["MoreMsg"] = {bold = true, fg = "#5F865F"} 94 + theme["ModeMsg"] = {bold = true, fg = "#77824A"} 95 + theme["Question"] = {fg = "#5F865F"} 96 + theme["Bold"] = {bold = true} 97 + theme["Italic"] = {italic = true} 98 + theme["Underlined"] = {fg = "#77824A", underline = true} 99 + theme["@text.underline"] = {link = "Underlined"} 100 + theme["@text.uri"] = {link = "Underlined"} 101 + theme["Title"] = {bold = true, fg = "#B36B42"} 102 + theme["@text.title"] = {link = "Title"} 103 + theme["ColorColumn"] = {bg = "#F0EBE1"} 104 + theme["MatchParen"] = {bg = "#D4CAB8", fg = "#252F1E"} 105 + theme["Folded"] = {fg = "#B36B42"} 106 + theme["Ignore"] = {fg = "#C8C0B6"} 107 + theme["Conceal"] = {link = "Ignore"} 108 + theme["SpecialKey"] = {link = "Normal"} 109 + theme["NvimSpacing"] = {link = "Normal"} 110 + theme["DiffText"] = {link = "Visual"} 111 + theme["DiffAdd"] = {bg = "#CCD8C4", fg = "#252F1E"} 112 + theme["@text.diff.add"] = {link = "DiffAdd"} 113 + theme["Added"] = {fg = "#5F865F"} 114 + theme["DiffAdded"] = {link = "Added"} 115 + theme["@diff.plus"] = {link = "Added"} 116 + theme["DiffChange"] = {bg = "#D8CEBA", fg = "#252F1E"} 117 + theme["@text.diff.change"] = {link = "DiffChange"} 118 + theme["Changed"] = {fg = "#675642"} 119 + theme["DiffChanged"] = {link = "Changed"} 120 + theme["@diff.delta"] = {link = "Changed"} 121 + theme["DiffDelete"] = {bg = "#D8C6BE", fg = "#252F1E"} 122 + theme["@text.diff.delete"] = {link = "DiffDelete"} 123 + theme["Removed"] = {fg = "#B36B42"} 124 + theme["DiffRemoved"] = {link = "Removed"} 125 + theme["@diff.minus"] = {link = "Removed"} 126 + theme["NormalFloat"] = {link = "Normal"} 127 + theme["FloatBorder"] = {fg = "#77824A"} 128 + theme["FloatTitle"] = {bold = true, fg = "#5F865F"} 129 + theme["Pmenu"] = {link = "Normal"} 130 + theme["PmenuExtra"] = {link = "Pmenu"} 131 + theme["PmenuKind"] = {link = "Pmenu"} 132 + theme["PmenuSbar"] = {fg = "#6B6461"} 133 + theme["PmenuThumb"] = {bg = "#252F1E", fg = "#252F1E"} 134 + theme["PmenuSel"] = {bg = "#77824A", fg = "#F5F0E6"} 135 + theme["PmenuExtraSel"] = {link = "PmenuSel"} 136 + theme["PmenuKindSel"] = {link = "PmenuSel"} 137 + theme["StatusLine"] = {bg = "#F0EBE1", bold = true, fg = "#252F1E"} 138 + theme["MsgSeparator"] = {link = "StatusLine"} 139 + theme["StatusLineNC"] = {bg = "#F0EBE1", bold = true, fg = "#736659"} 140 + theme["TabLine"] = {bg = "#E6E0D6", fg = "#6B6461"} 141 + theme["TabLineFill"] = {bg = "#F0EBE1", fg = "#B3854D"} 142 + theme["TabLineSel"] = {bg = "#77824A", bold = true, fg = "#E6E0D6"} 143 + theme["TabLineSelSep"] = {bg = "#F0EBE1", bold = true, fg = "#77824A"} 144 + theme["TabLineSep"] = {bg = "#F0EBE1", fg = "#E6E0D6"} 145 + theme["Directory"] = {link = "Type"} 146 + theme["netrwExe"] = {link = "Changed"} 147 + theme["netrwClassify"] = {link = "Comment"} 148 + theme["SpellBad"] = {fg = "#675642", sp = "#252F1E"} 149 + theme["SpellCap"] = {fg = "#5F865F", sp = "#252F1E"} 150 + theme["SpellLocal"] = {fg = "#BB7844", sp = "#252F1E"} 151 + theme["SpellRare"] = {fg = "#B36B42", sp = "#252F1E"} 152 + theme["helpSectionDelim"] = {link = "Comment"} 153 + theme["helpHyperTextEntry"] = {link = "Statement"} 154 + theme["helpExample"] = {link = "String"} 155 + theme["helpHeadline"] = {link = "Title"} 156 + theme["helpHyperTextJump"] = {link = "Underlined"} 157 + theme["helpURL"] = {link = "Underlined"} 158 + theme["DiagnosticDeprecated"] = {sp = "#675642", strikethrough = true} 159 + theme["DiagnosticError"] = {fg = "#B3664D"} 160 + theme["DiagnosticErrorFloating"] = {link = "DiagnosticError"} 161 + theme["DiagnosticSignError"] = {link = "DiagnosticError"} 162 + theme["DiagnosticVirtualTextError"] = {link = "DiagnosticError"} 163 + theme["DiagnosticUnderlineError"] = {underline = true} 164 + theme["DiagnosticWarn"] = {fg = "#BB7844"} 165 + theme["DiagnosticFloatingWarn"] = {link = "DiagnosticWarn"} 166 + theme["DiagnosticSignWarn"] = {link = "DiagnosticWarn"} 167 + theme["DiagnosticVirtualTextWarn"] = {link = "DiagnosticWarn"} 168 + theme["DiagnosticUnderlineWarn"] = {underline = true} 169 + theme["DiagnosticHint"] = {fg = "#A09890"} 170 + theme["DiagnosticFloatingHint"] = {link = "DiagnosticHint"} 171 + theme["DiagnosticSignHint"] = {link = "DiagnosticHint"} 172 + theme["DiagnosticVirtualTextHint"] = {link = "DiagnosticHint"} 173 + theme["DiagnosticUnderlineHint"] = {underline = true} 174 + theme["DiagnosticInfo"] = {fg = "#9A8030"} 175 + theme["DiagnosticFloatingInfo"] = {link = "DiagnosticInfo"} 176 + theme["DiagnosticSignInfo"] = {link = "DiagnosticInfo"} 177 + theme["DiagnosticVirtualTextInfo"] = {link = "DiagnosticInfo"} 178 + theme["DiagnosticUnderlineInfo"] = {underline = true} 179 + theme["DiagnosticOk"] = {fg = "#77824A"} 180 + theme["DiagnosticFloatingOk"] = {link = "DiagnosticOk"} 181 + theme["DiagnosticSignOk"] = {link = "DiagnosticOk"} 182 + theme["DiagnosticVirtualTextOk"] = {link = "DiagnosticOk"} 183 + theme["Todo"] = {bg = "#252F1E", fg = "#F0EBE1"} 184 + theme["@text.todo"] = {link = "Todo"} 185 + theme["htmlLink"] = {link = "Underlined"} 186 + theme["markdownBold"] = {link = "Bold"} 187 + theme["markdownItalic"] = {link = "Italic"} 188 + theme["@markup.heading"] = {link = "Special"} 189 + theme["@markup.raw.block.markdown"] = {link = "Special"} 190 + theme["@markup.list"] = {link = "Operator"} 191 + theme["@markup.link"] = {fg = "#77824A", underline = true} 192 + theme["@punctuation.special.markdown"] = {link = "Comment"} 193 + theme["@property.lua"] = {link = "Normal"} 194 + theme["LazyNormal"] = {link = "Normal"} 195 + theme["LazyButtonActive"] = {bg = "#77824A", fg = "#F5F0E6"} 196 + theme["LazyH1"] = {fg = "#77824A"} 197 + theme["LazyH2"] = {fg = "#77824A"} 198 + theme["LazySpecial"] = {fg = "#9A8030"} 199 + theme["MasonHeaderSecondary"] = {link = "LazyButtonActive"} 200 + theme["MasonHighlightBlock"] = {link = "LazyButtonActive"} 201 + theme["FzfLuaNormal"] = {link = "Normal"} 202 + theme["FzfLuaTitle"] = {link = "FloatTitle"} 203 + theme["FzfLuaBorder"] = {link = "FloatBorder"} 204 + theme["FzfLuaCursor"] = {link = "Cursor"} 205 + theme["FzfLuaCursorLine"] = {link = "CursorLine"} 206 + theme["FzfLuaCursorLineNr"] = {link = "CursorLineNr"} 207 + theme["FzfLuaSearch"] = {link = "IncSearch"} 208 + theme["FzfLuaScrollFloatEmpty"] = {link = "PmenuSbar"} 209 + theme["FzfLuaScrollFloatFull"] = {link = "PmenuThumb"} 210 + theme["MiniTablineCurrent"] = {link = "TabLineSel"} 211 + theme["MiniTablineHidden"] = {link = "Normal"} 212 + theme["MiniTablineVisible"] = {link = "MiniTablineHidden"} 213 + theme["MiniTablineModifiedCurrent"] = {bg = "#5F865F", bold = true, fg = "#F0EBE1"} 214 + theme["MiniTablineModifiedHidden"] = {link = "TabLineFill"} 215 + theme["MiniTablineModifiedVisible"] = {link = "MiniTablineModifiedHidden"} 216 + theme["MiniTablineTabpageSection"] = {link = "IncSearch"} 217 + theme["MiniJump2dSpot"] = {link = "TabLineSel"} 218 + theme["IblIndent"] = {fg = "#E2E6D8"} 219 + theme["GitSignsAdd"] = {link = "Added"} 220 + theme["GitSignsChange"] = {link = "Changed"} 221 + theme["GitSignsDelete"] = {link = "Removed"} 222 + vim.cmd("highlight clear") 223 + vim.cmd("set t_Co=256") 224 + vim.g.colors_name = "lightearth" 225 + vim.o.background = "light" 226 + for group, attr in pairs(theme) do 227 + vim.api.nvim_set_hl(0, group, attr) 228 + end 229 + return nil
+356
fnl/lightearth/init.fnl
··· 1 + (local theme {}) 2 + 3 + (macro defcolor [name hex] 4 + `(macro ,name [] ,hex)) 5 + 6 + (defcolor fg "#252F1E") 7 + (defcolor bg "#F0EBE1") 8 + (defcolor green "#77824A") 9 + (defcolor teal "#5F865F") 10 + (defcolor orange "#BB7844") 11 + (defcolor red "#B3664D") 12 + (defcolor op "#669977") 13 + (defcolor str "#B3854D") 14 + (defcolor cmt "#A09890") 15 + (defcolor delim "#80744D") 16 + (defcolor altBg "#F5F0E6") 17 + (defcolor darkOrange "#B36B42") 18 + 19 + (defcolor darkGreen "#E2E6D8") 20 + (defcolor darkGreenAlt "#B8BE96") 21 + (defcolor lightBrown "#D4CAB8") 22 + (defcolor diffChange "#675642") 23 + (defcolor nonText "#C2BAA8") 24 + (defcolor indent "#E2E6D8") 25 + (defcolor tablineBg "#E6E0D6") 26 + (defcolor altLineNr "#736659") 27 + (defcolor ignore "#C8C0B6") 28 + (defcolor scroll "#6B6461") 29 + (defcolor visual "#DCD4C6") 30 + 31 + (defcolor diagnosticOk "#77824A") 32 + (defcolor diagnosticHint "#A09890") 33 + (defcolor diagnosticInfo "#9A8030") 34 + (defcolor diagnosticWarn "#BB7844") 35 + (defcolor diagnosticError "#B3664D") 36 + 37 + ;; Light-theme specific diff background colors 38 + (defcolor diffAddBg "#CCD8C4") 39 + (defcolor diffChangeBg "#D8CEBA") 40 + (defcolor diffDeleteBg "#D8C6BE") 41 + 42 + (macro hl [name & attrs] 43 + (let [attr-table {}] 44 + (for [i 1 (length attrs) 2] 45 + (tset attr-table (. attrs i) (. attrs (+ i 1)))) 46 + `(tset theme ,(tostring name) ,attr-table))) 47 + 48 + (macro ln [name target] 49 + `(tset theme ,(tostring name) {:link ,(tostring target)})) 50 + 51 + ;; 52 + ;; Core groups 53 + ;; 54 + 55 + ;; Normal/Identifiers/Variables 56 + (hl Normal :fg (fg) :bg (bg)) 57 + (ln Identifier Normal) 58 + (ln Variable Identifier) 59 + (ln "@variable" Variable) 60 + (ln "@lsp.type.parameter" Identifier) 61 + (ln "@lsp.type.property" Identifier) 62 + (ln "@lsp.type.variable" Identifier) 63 + (ln "@namespace" Identifier) 64 + (ln "@parameter" Identifier) 65 + (ln "@text.reference" Identifier) 66 + (ln DelimiterLight Normal) 67 + (ln "@punctuation.bracket" DelimiterLight) 68 + 69 + ;; Statements/Keywords 70 + (hl Statement :fg (teal)) 71 + (hl Keyword :fg (teal)) 72 + (ln "@keyword" Keyword) 73 + (ln Conditional Statement) 74 + (ln Repeat Statement) 75 + (ln Label Statement) 76 + (ln Exception Statement) 77 + (ln PreProc Statement) 78 + (ln Include Statement) 79 + (ln Define Statement) 80 + (ln Macro Statement) 81 + (ln PreCondit Statement) 82 + (ln "@preproc" Preproc) 83 + 84 + ;; Functions 85 + (hl Function :fg (green)) 86 + (ln "@function" Function) 87 + (ln "@method" Function) 88 + (ln "@function.builtin" Function) 89 + (ln "@lsp.type.decorator" Function) 90 + (ln "@lsp.type.function" Function) 91 + (ln "@lsp.type.method" Function) 92 + 93 + ;; Types 94 + (hl Type :fg (green)) 95 + (ln Structure Type) 96 + (ln StorageClass Type) 97 + (ln Typedef Type) 98 + (ln "@type" Type) 99 + (ln "@lsp.type.type" Type) 100 + 101 + ;; String 102 + (hl String :fg (str)) 103 + (ln "@string" String) 104 + 105 + ;; Numbers 106 + (hl Number :fg (red)) 107 + (ln "@number" Number) 108 + (ln Float Number) 109 + (ln Boolean Number) 110 + (ln "@boolean" Boolean) 111 + 112 + ;; Fields 113 + (hl Field :fg (orange)) 114 + (ln "@field" Field) 115 + (ln "@property" Field) 116 + 117 + ;; Constants 118 + (hl Constant :fg (orange)) 119 + (ln Character Constant) 120 + (ln "@lsp.type.enumMember" Constant) 121 + (ln vimHiAttrib Constant) 122 + 123 + ;; Comments 124 + (hl Comment :fg (cmt)) 125 + (ln "@comment" Comment) 126 + (ln "@html.comment" Comment) 127 + (ln "@lsp.type.comment" Comment) 128 + (ln "@text.literal" Comment) 129 + (ln CtrlPLinePre Comment) 130 + (ln LspCodeLens Comment) 131 + 132 + ;; Operators 133 + (hl Operator :fg (op)) 134 + 135 + ;; Delimiters 136 + (hl Delimiter :fg (delim)) 137 + (ln NvimParenthesis Delimiter) 138 + (ln "@punctuation" Delimiter) 139 + 140 + ;; Special 141 + (hl Special :fg (orange)) 142 + (ln Debug Special) 143 + (ln SpecialChar Special) 144 + (ln SpecialComment Special) 145 + (ln Tag Special) 146 + (ln "@constant.builtin" Special) 147 + (ln "@constructor" Special) 148 + (ln "@punctuation.special" Special) 149 + 150 + ;; Nontext 151 + (hl NonText :fg (nonText)) 152 + (ln EndOfBuffer NonText) 153 + (ln Whitespace NonText) 154 + 155 + ;; Cursor/Line Numbering 156 + (hl Visual :bg (visual)) 157 + (hl Cursor :fg (altBg) :bg (fg)) 158 + (hl CursorColumn :bg (bg)) 159 + (ln CursorLine CursorColumn) 160 + (hl LineNr :fg (green)) 161 + (hl LineNrAbove :fg (altLineNr)) 162 + (ln LineNrBelow LineNrAbove) 163 + (ln CursorLineNr LineNr) 164 + (hl TermCursor :reverse true) 165 + 166 + ;; Searching 167 + (hl Search :fg (altBg) :bg (teal)) 168 + (ln CurSearch Search) 169 + (ln QuickFixLine Search) 170 + (ln Substitute Search) 171 + (hl IncSearch :fg (altBg) :bg (orange)) 172 + 173 + ;; Error messaging 174 + (hl Error :fg (altBg) :bg (red)) 175 + (hl ErrorMsg :fg (darkOrange)) 176 + (hl WarningMsg :fg (darkOrange)) 177 + (hl MoreMsg :fg (teal) :bold true) 178 + (hl ModeMsg :fg (green) :bold true) 179 + (hl Question :fg (teal)) 180 + 181 + ;; Text styling 182 + (hl Bold :bold true) 183 + (hl Italic :italic true) 184 + (hl Underlined :fg (green) :underline true) 185 + (ln "@text.underline" Underlined) 186 + (ln "@text.uri" Underlined) 187 + 188 + (hl Title :fg (darkOrange) :bold true) 189 + (ln "@text.title" Title) 190 + 191 + (hl ColorColumn :bg (bg)) 192 + (hl MatchParen :fg (fg) :bg (lightBrown)) 193 + 194 + (hl Folded :fg (darkOrange)) 195 + (hl Ignore :fg (ignore)) 196 + (ln Conceal Ignore) 197 + 198 + (ln SpecialKey Normal) 199 + (ln NvimSpacing Normal) 200 + 201 + ;; Diffs (pastel backgrounds for light theme) 202 + (ln DiffText Visual) 203 + (hl DiffAdd :fg (fg) :bg (diffAddBg)) 204 + (ln "@text.diff.add" DiffAdd) 205 + (hl Added :fg (teal)) 206 + (ln DiffAdded Added) 207 + (ln "@diff.plus" Added) 208 + (hl DiffChange :fg (fg) :bg (diffChangeBg)) 209 + (ln "@text.diff.change" DiffChange) 210 + (hl Changed :fg (diffChange)) 211 + (ln DiffChanged Changed) 212 + (ln "@diff.delta" Changed) 213 + (hl DiffDelete :fg (fg) :bg (diffDeleteBg)) 214 + (ln "@text.diff.delete" DiffDelete) 215 + (hl Removed :fg (darkOrange)) 216 + (ln DiffRemoved Removed) 217 + (ln "@diff.minus" Removed) 218 + 219 + ;; Floating window 220 + (ln NormalFloat Normal) 221 + (hl FloatBorder :fg (green)) 222 + (hl FloatTitle :fg (teal) :bold true) 223 + 224 + ;; Pmenu 225 + (ln Pmenu Normal) 226 + (ln PmenuExtra Pmenu) 227 + (ln PmenuKind Pmenu) 228 + (hl PmenuSbar :fg (scroll)) 229 + (hl PmenuThumb :fg (fg) :bg (fg)) 230 + (hl PmenuSel :fg (altBg) :bg (green)) 231 + (ln PmenuExtraSel PmenuSel) 232 + (ln PmenuKindSel PmenuSel) 233 + 234 + ;; Statusline 235 + (hl StatusLine :fg (fg) :bg (bg) :bold true) 236 + (ln MsgSeparator StatusLine) 237 + (hl StatusLineNC :fg (altLineNr) :bg (bg) :bold true) 238 + 239 + ;; Tabline 240 + (hl TabLine :fg (scroll) :bg (tablineBg)) 241 + (hl TabLineFill :fg (str) :bg (bg)) 242 + (hl TabLineSel :fg (tablineBg) :bg (green) :bold true) 243 + (hl TabLineSelSep :fg (green) :bg (bg) :bold true) 244 + (hl TabLineSep :fg (tablineBg) :bg (bg)) 245 + 246 + ;; File browsers 247 + (ln Directory Type) 248 + (ln netrwExe Changed) 249 + (ln netrwClassify Comment) 250 + 251 + ;; Spellcheck 252 + (hl SpellBad :fg (diffChange) :sp (fg)) 253 + (hl SpellCap :fg (teal) :sp (fg)) 254 + (hl SpellLocal :fg (orange) :sp (fg)) 255 + (hl SpellRare :fg (darkOrange) :sp (fg)) 256 + 257 + ;; Help files 258 + (ln helpSectionDelim Comment) 259 + (ln helpHyperTextEntry Statement) 260 + (ln helpExample String) 261 + (ln helpHeadline Title) 262 + (ln helpHyperTextJump Underlined) 263 + (ln helpURL Underlined) 264 + 265 + ;; Diagnostics 266 + (hl DiagnosticDeprecated :sp (diffChange) :strikethrough true) 267 + (hl DiagnosticError :fg (diagnosticError)) 268 + (ln DiagnosticErrorFloating DiagnosticError) 269 + (ln DiagnosticSignError DiagnosticError) 270 + (ln DiagnosticVirtualTextError DiagnosticError) 271 + (hl DiagnosticUnderlineError :underline true) 272 + (hl DiagnosticWarn :fg (diagnosticWarn)) 273 + (ln DiagnosticFloatingWarn DiagnosticWarn) 274 + (ln DiagnosticSignWarn DiagnosticWarn) 275 + (ln DiagnosticVirtualTextWarn DiagnosticWarn) 276 + (hl DiagnosticUnderlineWarn :underline true) 277 + (hl DiagnosticHint :fg (diagnosticHint)) 278 + (ln DiagnosticFloatingHint DiagnosticHint) 279 + (ln DiagnosticSignHint DiagnosticHint) 280 + (ln DiagnosticVirtualTextHint DiagnosticHint) 281 + (hl DiagnosticUnderlineHint :underline true) 282 + (hl DiagnosticInfo :fg (diagnosticInfo)) 283 + (ln DiagnosticFloatingInfo DiagnosticInfo) 284 + (ln DiagnosticSignInfo DiagnosticInfo) 285 + (ln DiagnosticVirtualTextInfo DiagnosticInfo) 286 + (hl DiagnosticUnderlineInfo :underline true) 287 + (hl DiagnosticOk :fg (diagnosticOk)) 288 + (ln DiagnosticFloatingOk DiagnosticOk) 289 + (ln DiagnosticSignOk DiagnosticOk) 290 + (ln DiagnosticVirtualTextOk DiagnosticOk) 291 + 292 + ;; Todo comments 293 + (hl Todo :fg (bg) :bg (fg)) 294 + (ln "@text.todo" Todo) 295 + 296 + ;; Language overrides 297 + (ln htmlLink Underlined) 298 + (ln markdownBold Bold) 299 + (ln markdownItalic Italic) 300 + (ln "@markup.heading" Special) 301 + (ln "@markup.raw.block.markdown" Special) 302 + (ln "@markup.list" Operator) 303 + (hl "@markup.link" :fg (green) :underline true) 304 + (ln "@punctuation.special.markdown" Comment) 305 + (ln "@property.lua" Normal) 306 + 307 + ;; 308 + ;; Plugin groups 309 + ;; 310 + 311 + ;; Lazy 312 + (ln LazyNormal Normal) 313 + (hl LazyButtonActive :fg (altBg) :bg (green)) 314 + (hl LazyH1 :fg (green)) 315 + (hl LazyH2 :fg (green)) 316 + (hl LazySpecial :fg (diagnosticInfo)) 317 + 318 + ;; Mason 319 + (ln MasonHeaderSecondary LazyButtonActive) 320 + (ln MasonHighlightBlock LazyButtonActive) 321 + 322 + ;; Fzf-Lua 323 + (ln FzfLuaNormal Normal) 324 + (ln FzfLuaTitle FloatTitle) 325 + (ln FzfLuaBorder FloatBorder) 326 + (ln FzfLuaCursor Cursor) 327 + (ln FzfLuaCursorLine CursorLine) 328 + (ln FzfLuaCursorLineNr CursorLineNr) 329 + (ln FzfLuaSearch IncSearch) 330 + (ln FzfLuaScrollFloatEmpty PmenuSbar) 331 + (ln FzfLuaScrollFloatFull PmenuThumb) 332 + 333 + ;; Mini.nvim 334 + (ln MiniTablineCurrent TabLineSel) 335 + (ln MiniTablineHidden Normal) 336 + (ln MiniTablineVisible MiniTablineHidden) 337 + (hl MiniTablineModifiedCurrent :fg (bg) :bg (teal) :bold true) 338 + (ln MiniTablineModifiedHidden TabLineFill) 339 + (ln MiniTablineModifiedVisible MiniTablineModifiedHidden) 340 + (ln MiniTablineTabpageSection IncSearch) 341 + (ln MiniJump2dSpot TabLineSel) 342 + 343 + ;; Indent Blankline 344 + (hl IblIndent :fg (darkGreen)) 345 + 346 + ;; GitSigns (used by Lualine) 347 + (ln GitSignsAdd Added) 348 + (ln GitSignsChange Changed) 349 + (ln GitSignsDelete Removed) 350 + 351 + ; Colorscheme setup 352 + (vim.cmd "highlight clear") 353 + (vim.cmd "set t_Co=256") 354 + (set vim.g.colors_name :lightearth) 355 + (set vim.o.background :light) 356 + (each [group attr (pairs theme)] (vim.api.nvim_set_hl 0 group attr))