about summary refs log tree commit diff
path: root/fnl/nvrc/colors.fnl
blob: 9ba874222ebc2cd07cafa6d391a3e153dccf4cf3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
(import-macros {: setv!} :nvrc.macro.set)

(local colors {:bg "#1d2021"
               :bar "#32302f"
               :fg "#d4be98"
               :white "#e4be98"
               :black "#1d2021"
               :bblack "#3c3836"
               :dgrey "#282828"
               :mgrey "#504945"
               :grey "#928374"
               :red "#ea6962"
               :orange "#e79a42"
               :yellow "#d8a657"
               :green "#a9b665"
               :skyblue "#89b482"
               :blue "#7daea3"
               :violet "#d3869b"})


(lambda colors.apply [colorscheme]
  (import-macros {: highlight! : link!} :nvrc.macro.color)

  ; FIXME: introduces unused variables when using other themes
  (setv! background :dark)
  (setv! gruvbox_material_background :hard)
  (setv! gruvbox_material_sign_column_background :none)
  (setv! gruvbox_material_menu_selection_background :aqua)
  (vim.cmd (.. "colorscheme " colorscheme))

  ; Statusline
  (highlight! :StatusLine {:fg (. colors :fg) :bg (. colors :bar)})
  (highlight! :StatusLineNC {:fg (. colors :grey) :bg (. colors :black) :underline true})
  (highlight! :StatusLinePad {:fg (. colors :skyblue) :bg (. colors :bar)})
  (highlight! :StatusLineAccent {:fg (. colors :green) :bg (. colors :bar)})
  (highlight! :StatusLineInsertAccent {:fg (. colors :red) :bg (. colors :bar)})
  (highlight! :StatusLineVisualAccent {:fg (. colors :yellow) :bg (. colors :bar)})
  (highlight! :StatusLineReplaceAccent {:fg (. colors :violet) :bg (. colors :bar)})
  (highlight! :StatusLineCmdLineAccent {:fg (. colors :green) :bg (. colors :bar)})
  (highlight! :StatusLineTerminalAccent {:fg (. colors :skyblue) :bg (. colors :bar)})
  (highlight! :StatusLineFile {:fg (. colors :orange) :bg (. colors :bar) :bold true})
  (highlight! :StatusLineFileData {:fg (. colors :violet) :bg (. colors :bar) :bold true})

  ; Buffer
  (highlight! :EndOfBuffer {:fg (. colors :bar)})
  (highlight! :FloatBorder {:fg (. colors :blue)})
  (highlight! :NormalFloat {:bg (. colors :bblack)})

  ; Pmenu
  (highlight! :Pmenu {:bg (. colors :bblack)})
  (highlight! :PmenuSbar {:bg (. colors :bblack)})
  (highlight! :PmenuSel {:fg (. colors :orange) :bg (. colors :dgrey)})
  (highlight! :PmenuThumb {:bg (. colors :skyblue)})
  (highlight! :CmpItemAbbr {:fg (. colors :fg)})
  (highlight! :CmpItemAbbrMatch {:fg (. colors :fg)})
  (highlight! :CmpItemKind {:fg (. colors :fg)})
  (highlight! :CmpItemMenu {:fg (. colors :fg)})

  ; LSP
  (highlight! :DiagnosticError {:fg (. colors :red)})
  (highlight! :DiagnosticWarn {:fg (. colors :yellow)})
  (highlight! :DiagnosticInfo {:fg (. colors :green)})
  (highlight! :DiagnosticHint {:fg (. colors :grey)})
  (highlight! :DiagnosticSignError {:fg (. colors :red) :bg (. colors :bar)})
  (highlight! :DiagnosticSignWarn {:fg (. colors :yellow) :bg (. colors :bar)})
  (highlight! :DiagnosticSignInfo {:fg (. colors :green) :bg (. colors :bar)})
  (highlight! :DiagnosticSignHint {:fg (. colors :grey) :bg (. colors :bar)})
  (highlight! :LspReferenceRead {:underline true})
  (highlight! :LspReferenceText {:underline true})
  (highlight! :LspReferenceWrite {:underline true})
  (highlight! :LspSemantic_variable {:bg :gray})
  (link! :LspSemantic_type :Include)
  (link! :LspSemantic_function :Identifier)
  (link! :LspSemantic_struct :Number)
  (link! :LspSemantic_keyword :Structure)

  ; Lir
  (highlight! :LirFloatNormal {:bg (. colors :black)})
  (highlight! :LirDir {:fg (. colors :skyblue)})
  (highlight! :LirSymLink {:fg (. colors :grey)})
  (highlight! :LirEmptyDirText {:fg (. colors :blue)})
  (highlight! :LirFloatCurdirWindowNormal {:bg (. colors :black)})
  (highlight! :LirFloatCurdirWindowDirName {:fg (. colors :skyblue)})

  ; Misc
  (highlight! :TabLine {:fg (. colors :fg) :bg (. colors :mgrey)})
  (highlight! :TabLineFill {:fg (. colors :fg) :bg (. colors :bar)})
  (highlight! :TabLineSel {:fg (. colors :fg) :bg (. colors :dgrey)})
  (highlight! :LineNr {:fg (. colors :grey)})
  (highlight! :NvimInternalError {:fg (. colors :red)})
  (highlight! :VertSplit {:fg (. colors :grey2)}))

colors