about summary refs log tree commit diff
path: root/fnl/nvrc/colors.fnl
blob: fba6aa30792f3e7ac3b85f27ca0d29f66dbb1f4f (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
(import-macros {: setv!} :nvrc.macro.set)

(local colors {:bg "#151515"
               :light_bg "#333333"
               :light_nt "#555555"
               :graphite "#888888"
               :fg "#e8e8d3"
               :red "#cf6a4c"
               :yellow "#fad07a"
               :green "#99ad6a"
               :skyblue "#8fbfdc"
               :accent "#ffb964"
               :selection "#f0a0c0"})


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

  (vim.api.nvim_create_user_command :SwitchPalette
                                  (fn [opts]
                                    ((. (require :nvrc.colors) :apply) (. opts.fargs 1)))
                                    {:nargs 1})

  (setv! jellybeans_overrides {:background {:ctermbg :NONE :256ctermbg :NONE :guibg :NONE}})

  (vim.cmd (.. "colorscheme " colorscheme))

  ; Statusline
  (highlight! :StatusLine {:fg (. colors :fg) :bg (. colors :light_bg)})
  (highlight! :StatusLineNC {:fg (. colors :graphite) :bg (. colors :bg) :underline true})
  (highlight! :StatusLinePad {:fg (. colors :skyblue) :bg (. colors :light_bg)})
  (highlight! :StatusLineAccent {:fg (. colors :accent) :bg (. colors :light_bg)})
  (highlight! :StatusLineAccentBold {:fg (. colors :accent) :bg (. colors :light_bg) :bold true})

  ; SignColumn
  (highlight! :SignColumn {:bg (. colors :bg)})

  ; Completions
  (highlight! :Pmenu {:fg (. colors :fg) :bg (. colors :light_bg)})
  (highlight! :PmenuSel {:fg (. colors :fg) :bg (. colors :light_nt)})
  (highlight! :PmenuThumb {:bg (. colors :fg)})

  ; LSP
  (highlight! :DiagnosticError {:fg (. colors :red)})
  (highlight! :DiagnosticWarn {:fg (. colors :yellow)})
  (highlight! :DiagnosticInfo {:fg (. colors :green)})
  (highlight! :DiagnosticHint {:fg (. colors :graphite)})
  ; https://github.com/stsewd/tree-sitter-comment/issues/22
  (highlight! "@lsp.type.comment" {})

  (highlight! :DiagnosticSignError {:fg (. colors :red) :bg (. colors :light_bg)})
  (highlight! :DiagnosticSignWarn {:fg (. colors :yellow) :bg (. colors :light_bg)})
  (highlight! :DiagnosticSignInfo {:fg (. colors :green) :bg (. colors :light_bg)})
  (highlight! :DiagnosticSignHint {:fg (. colors :graphite) :bg (. colors :light_bg)})

  ; Leap
  (highlight! :LeapMatch {:fg (. colors :selection) :underline true :bold true :nocombine true})
  (highlight! :LeapLabelPrimary {:fg :black :bg (. colors :selection) :bold true})
  (highlight! :LeapLabelSecondary {:fg :black :bg (. colors :accent) :bold true})

  ; Treesitter extensions
  (highlight! "@text.note" {:fg (. colors :skyblue) :bold true})
  (highlight! "@text.warning" {:fg (. colors :yellow) :bold true})
  (highlight! "@text.danger" {:fg (. colors :red) :bold true})
  (highlight! "@variable" {:link :Normal}))

colors