Full Code of shaunsingh/oxocarbon.nvim for AI

main a7ba74849a00 cached
11 files
94.7 KB
31.0k tokens
1 requests
Download .txt
Repository: shaunsingh/oxocarbon.nvim
Branch: main
Commit: a7ba74849a00
Files: 11
Total size: 94.7 KB

Directory structure:
gitextract_mdo3ao05/

├── LICENSE
├── Makefile
├── README.md
├── colors/
│   └── oxocarbon.lua
├── fnl/
│   ├── lualine/
│   │   └── themes/
│   │       └── oxocarbon.fnl
│   └── oxocarbon/
│       ├── colorutils.fnl
│       └── init.fnl
├── lua/
│   ├── lualine/
│   │   └── themes/
│   │       └── oxocarbon.lua
│   └── oxocarbon/
│       ├── colorutils.lua
│       └── init.lua
└── make.fnl

================================================
FILE CONTENTS
================================================

================================================
FILE: LICENSE
================================================
MIT License

Copyright (c) 2022 Riccardo Mazzarini

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.


================================================
FILE: Makefile
================================================
.PHONY: all lua 

all: lua

lua:
	nvim --headless +"Fnlfile make.fnl" +qa


================================================
FILE: README.md
================================================
# oxocarbon.nvim

**Note:** The old rust version can be found on the `rust` branch of this repository

**Oxocarbon is looking for ports!** If you're a user of another editor or tool, join our discord to learn more about porting oxocarbon to other applications. https://discord.gg/M528tDKXRG 

A dark and light Neovim theme written in fennel, inspired by [IBM Carbon](https://carbondesignsystem.com/guidelines/color/overview/#themes). This is the reference implementation of the oxocarbon theme. 

The color palette expands on Nyoom's unique aesthetic and represents a contemporary and ever-changing IBM. Balancing mankind and machine, the colors are harmonious with nature, yet chosen for their luminous quality in the digital world. The oxocarbon color palette is a subset of the broader IBM palette.

The colorscheme is centered around a vibrant set of blues, combined with an industrial set of grays. The full palette extends from the blue family to the edges of the blue spectrum—even the reds contain a hint of blue.

The resulting palette is a set of colors that portrays a singular IBM. Of the world and digital. Useful and judicious. Having multiple gray families gives each design the opportunity for nuance and meaningful moments of color. Each experience should be dominated by the grays and the core colors of black, white, and the blue family, allowing the other color families to have vibrancy and provide purpose.

![merged](https://user-images.githubusercontent.com/71196912/206819503-736cbede-fdf2-4be3-baaa-d640c8498abf.png)

<img width="1311" alt="image" src="https://user-images.githubusercontent.com/71196912/181996667-f1bf7ab0-eba2-4f80-b914-b5f48f51a03e.png">

## Features

- Support for popular plugins, such as Lsp, Treesitter, and Semantic Highlighting
- Fast and Featureful. Supports all the highlights you'll ever need without making a dent on startuptime
- Uses `Termguicolors` but its compatible with 16-color terminals as well

### Plugin support

The colorscheme explicitly adds highlights for the following plugins:

- Vim Diagnostics
- Vim LSP
- Nvim-Treesitter
- Telescope
- Nvim-Notify
- Nvim-Cmp
- NvimTree
- Neogit
- Gitsigns
- Hydra
- Flash

And many others should "just work!" If you have a plugin that needs explicit highlights, feel free to open an issue or PR and I would be happy to add them.  

## Install

The colorscheme requires the latest stable or nightly neovim (> `v0.7.0`)

### Packer.nvim

```lua
use {'nyoom-engineering/oxocarbon.nvim'}
```
### Lazy.nvim
```lua
return {
  "nyoom-engineering/oxocarbon.nvim"
  -- Add in any other configuration; 
  --   event = foo, 
  --   config = bar
  --   end,
}
```
### Usage

For neovim nightly users:

```lua
vim.opt.background = "dark" -- set this to dark or light
vim.cmd.colorscheme "oxocarbon"
```

For neovim stable users:

```lua
vim.opt.background = "dark" -- set this to dark or light
vim.cmd("colorscheme oxocarbon")
```

You can also add a transparent background by adding the following lines after `colorscheme`:
```lua
vim.api.nvim_set_hl(0, "Normal", { bg = "none" })
vim.api.nvim_set_hl(0, "NormalFloat", { bg = "none" })
vim.api.nvim_set_hl(0, "NormalNC", { bg = "none" })
```

For nyoom.nvim users:
Nyoom comes bundled with a version of oxocarbon. Enable the `ui.nyoom` module

## Development

You must install [hotpot](https://github.com/rktjmp/hotpot.nvim), since is what is used for compiling the fennel code.

### Workflow

* Fork the project
* Make changes in the files under `fnl/`
* Compile your changes by running `:Fnlfile make.fnl`
* Make a PR

## License

The project is licensed under the MIT license


================================================
FILE: colors/oxocarbon.lua
================================================
-- uncache module to ensure clean reapplication
package.loaded.oxocarbon = nil
require [[oxocarbon]]


================================================
FILE: fnl/lualine/themes/oxocarbon.fnl
================================================
(local oxocarbon (. (require (.. :oxocarbon)) :oxocarbon))

(local colors {:color0 oxocarbon.base02
               :color1 oxocarbon.base10
               :color2 oxocarbon.base08
               :color3 oxocarbon.base00
               :color6 oxocarbon.base04
               :color7 oxocarbon.base09
               :color8 oxocarbon.base14
               :color9 oxocarbon.base12
               :color10 oxocarbon.base13})

{:replace {:a {:fg (. colors :color0) :bg (. colors :color1)}
           :b {:fg (. colors :color2) :bg (. colors :color3)}}
 :inactive {:a {:fg (. colors :color0) :bg (. colors :color7)}
            :b {:fg (. colors :color6) :bg (. colors :color3)}
            :z {:fg (. colors :color0) :bg (. colors :color3)}}
 :normal {:a {:fg (. colors :color0) :bg (. colors :color7)}
          :b {:fg (. colors :color6) :bg (. colors :color3)}
          :c {:fg (. colors :color6) :bg (. colors :color3)}
          :z {:fg (. colors :color6) :bg (. colors :color3)}}
 :visual {:a {:fg (. colors :color0) :bg (. colors :color8)}
          :b {:fg (. colors :color6) :bg (. colors :color3)}
          :y {:fg (. colors :color6) :bg (. colors :color3)}
          :z {:fg (. colors :color9) :bg (. colors :color3)}}
 :insert {:a {:fg (. colors :color0) :bg (. colors :color9)}
          :b {:fg (. colors :color6) :bg (. colors :color3)}
          :z {:fg (. colors :color9) :bg (. colors :color3)}}
 :command {:a {:fg (. colors :color0) :bg (. colors :color10)}}}



================================================
FILE: fnl/oxocarbon/colorutils.fnl
================================================
;; reimplementation of a subset of hsluv in fennel, along with some utility 
;; functions for saturation, blending, and lighten/darken

;; constants
(local hex-chars :0123456789abcdef)
(local epsilon 0.0088564516)
(local kappa 903.2962962)
(local refY 1)
(local refU 0.19783000664283)
(local refV 0.46831999493879)
(local m
     [[3.2409699419045 (- 1.5373831775701) (- 0.498610760293)]
      [(- 0.96924363628087) 1.8759675015077 0.041555057407175]
      [0.055630079696993 (- 0.20397695888897) 1.0569715142429]])
(local minv
     [[0.41239079926595 0.35758433938387 0.18048078840183]
      [0.21263900587151 0.71516867876775 0.072192315360733]
      [0.019330818715591 0.11919477979462 0.95053215224966]])

;; math stuff
(fn get-bounds [l]
  (let [result {}]
    (var sub2 nil)
    (local sub1 (/ (^ (+ l 16) 3) 1560896))
    (if (> sub1 epsilon) (set sub2 sub1)
        (set sub2 (/ l kappa)))
    (for [i 1 3]
      (local m1 (. (. m i) 1))
      (local m2 (. (. m i) 2))
      (local m3 (. (. m i) 3))
      (for [t 0 1]
        (local top1
               (* (- (* 284517 m1) (* 94839 m3)) sub2))
        (local top2
               (- (* (* (+ (+ (* 838422 m3) (* 769860 m2))
                           (* 731718 m1))
                        l)
                     sub2)
                  (* (* 769860 t) l)))
        (local bottom
               (+ (* (- (* 632260 m3) (* 126452 m2)) sub2)
                  (* 126452 t)))
        (table.insert result
                      {:slope (/ top1 bottom)
                       :intercept (/ top2 bottom)})))
    result))

(fn length-of-ray-until-intersect [theta line]
  (/ line.intercept
     (- (math.sin theta) (* line.slope (math.cos theta)))))

(fn max-safe-chroma-for-lh [l h]
  (let [hrad (* (* (/ h 360) math.pi) 2)
        bounds (get-bounds l)]
    (var min 1.7976931348623e+308)
    (for [i 1 6]
      (local bound (. bounds i))
      (local distance 
             (length-of-ray-until-intersect hrad
                                            bound))
      (when (>= distance 0)
        (set min (math.min min distance))))
    min))


(fn y->l [Y]
  (if (<= Y epsilon) (* (/ Y refY) kappa)
      (- (* 116 (^ (/ Y refY) 0.33333333333333)) 16)))

(fn l->y [L]
  (if (<= L 8) (/ (* refY L) kappa)
      (* refY (^ (/ (+ L 16) 116) 3))))

(fn from_linear [c]
  (if (<= c 0.0031308) (* 12.92 c)
      (- (* 1.055 (^ c 0.41666666666667)) 0.055)))

(fn to_linear [c]
  (if (> c 0.04045) (^ (/ (+ c 0.055) 1.055) 2.4)
      (/ c 12.92)))

(fn dot_product [a b]
  (var sum 0)
  (for [i 1 3]
    (set sum (+ sum (* (. a i) (. b i)))))
  sum)

;; conversion functions
(fn luv->lch [tuple]
  (let [L (. tuple 1)
        U (. tuple 2)
        V (. tuple 3)
        C (math.sqrt (+ (* U U) (* V V)))]
    (var H nil)
    (if (< C 1e-08) (set H 0)
        (do
          (set H
               (/ (* (math.atan2 V U) 180)
                  3.1415926535898))
          (when (< H 0)
            (set H (+ 360 H)))))
    [L C H]))

(fn lch->luv [tuple]
  (let [L (. tuple 1)
        C (. tuple 2)
        Hrad (* (* (/ (. tuple 3) 360) 2) math.pi)]
    [L (* (math.cos Hrad) C) (* (math.sin Hrad) C)]))

(fn xyz->luv [tuple]
  (let [X (. tuple 1)
        Y (. tuple 2)
        divider (+ (+ X (* 15 Y)) (* 3 (. tuple 3)))]
    (var var-u (* 4 X))
    (var var-v (* 9 Y))
    (if (not= divider 0)
        (do
          (set var-u (/ var-u divider))
          (set var-v (/ var-v divider)))
        (do
          (set var-u 0)
          (set var-v 0)))
    (local L (y->l Y))
    (when (= L 0)
      (let [rtn [0 0 0]]
        (lua "return rtn")))
    [L
     (* (* 13 L) (- var-u refU))
     (* (* 13 L) (- var-v refV))]))

(fn luv->xyz [tuple]
  (let [L (. tuple 1)
        U (. tuple 2)
        V (. tuple 3)]
    (when (= L 0)
      (let [rtn [0 0 0]]
        (lua "return rtn")))
    (local var-u (+ (/ U (* 13 L)) refU))
    (local var-v (+ (/ V (* 13 L)) refV))
    (local Y (l->y L))
    (local X
           (- 0
              (/ (* (* 9 Y) var-u)
                 (- (* (- var-u 4) var-v) (* var-u var-v)))))
    [X
     Y
     (/ (- (- (* 9 Y) (* (* 15 var-v) Y)) (* var-v X))
        (* 3 var-v))]))

(fn xyz->rgb [tuple]
  [(from_linear (dot_product (. m 1) tuple))
   (from_linear (dot_product (. m 2) tuple))
   (from_linear (dot_product (. m 3) tuple))])

(fn rgb->xyz [tuple]
  (let [rgbl [(to_linear (. tuple 1))
              (to_linear (. tuple 2))
              (to_linear (. tuple 3))]]
    [(dot_product (. minv 1) rgbl)
     (dot_product (. minv 2) rgbl)
     (dot_product (. minv 3) rgbl)]))

(fn hex->rgb [hex]
  (var hex (string.lower hex))
  (local ret {})
  (for [i 0 2]
    (local char1
           (string.sub hex (+ (* i 2) 2) (+ (* i 2) 2)))
    (local char2
           (string.sub hex (+ (* i 2) 3) (+ (* i 2) 3)))
    (local digit1 (- (string.find hex-chars char1) 1))
    (local digit2 (- (string.find hex-chars char2) 1))
    (tset ret (+ i 1) (/ (+ (* digit1 16) digit2) 255)))
  ret)

(fn rgb->hex [tuple]
  (var h "#")
  (for [i 1 3]
    (local c (math.floor (+ (* (. tuple i) 255) 0.5)))
    (local digit2 (math.fmod c 16))
    (local x (/ (- c digit2) 16))
    (local digit1 (math.floor x))
    (set h
         (.. h
             (string.sub hex-chars (+ digit1 1)
                         (+ digit1 1))))
    (set h
         (.. h
             (string.sub hex-chars (+ digit2 1)
                         (+ digit2 1)))))
  h)

(fn lch->hsluv [tuple]
  (let [L (. tuple 1)
        C (. tuple 2)
        H (. tuple 3)
        max-chroma (max-safe-chroma-for-lh L H)]
    (when (> L 99.9999999)
      (let [rtn [H 0 100]]
        (lua "return rtn")))
    (when (< L 1e-08)
      (let [rtn [H 0 0]]
        (lua "return rtn")))
    [H (* (/ C max-chroma) 100) L]))

(fn hsluv->lch [tuple]
  (let [H (. tuple 1)
        S (. tuple 2)
        L (. tuple 3)]
    (when (> L 99.9999999)
      (let [rtn [100 0 H]]
        (lua "return rtn")))
    (when (< L 1e-08)
      (let [rtn [0 0 H]]
        (lua "return rtn")))
    [L
     (* (/ (max-safe-chroma-for-lh L H) 100) S)
     H]))

(fn rgb->lch [tuple]
  (luv->lch (xyz->luv (rgb->xyz tuple))))

(fn lch->rgb [tuple]
  (xyz->rgb (luv->xyz (lch->luv tuple))))

(fn rgb->hsluv [tuple]
  (lch->hsluv (rgb->lch tuple)))

(fn hsluv->rgb [tuple]
  (lch->rgb (hsluv->lch tuple)))

(fn hex->hsluv [s]
  (rgb->hsluv (hex->rgb s)))

(fn hsluv->hex [tuple]
  (rgb->hex (hsluv->rgb tuple)))

;; Transormation functions
(fn transform-h [c f]
  [(f (. c 1)) (. c 2)     (. c 3)])

(fn transform-s [c f]
  [(. c 1)     (f (. c 2)) (. c 3)])

(fn transform-l [c f]
  [(. c 1)     (. c 2)     (f (. c 3))])

(fn linear-tween [start stop]
  (fn [i] (+ start (* i (- stop start)))))

;; Blending
(fn radial-tween [x y]
  (let [start (math.rad x)
        stop (math.rad y)
        delta (math.atan2 (math.sin (- stop start)) (math.cos (- stop start)))]
    (fn [i] (% (+ 360 (math.deg (+ start (* delta i)))) 360))))

(fn blend-hsluv [start stop ratio]
  (let [ratio (or ratio 0.5)
        h (radial-tween (. start 1) (. stop 1))
        s (linear-tween (. start 2) (. stop 2))
        l (linear-tween (. start 3) (. stop 3))]
    [(h ratio) (s ratio) (l ratio)]))

;; General lighten/darken/whatever
(fn lighten [c n]
  (let [l (linear-tween (. c 3) 100)]
    [(. c 1) (. c 2) (l n)]))

(fn darken [c n]
  (let [l (linear-tween (. c 3) 0)]
    [(. c 1) (. c 2) (l n)]))

(fn saturate [c n]
  (let [s (linear-tween (. c 2) 100)]
    [(. c 1) (s n) (. c 3)]))

(fn desaturate [c n]
  (let [s (linear-tween (. c 2) 0)]
    [(. c 1) (s n) (. c 3)]))

(fn rotate [c n]
  [(% (+ n (. c 1)) 360) (. c 2) (. c 3)])

;; Of course we're dealing with hex codes
(fn blend-hex [c1 c2 r]
  (-> (blend-hsluv (hex->hsluv c1) (hex->hsluv c2) r)
      (hsluv->hex)))

(fn lighten-hex [c n]
  (-> (lighten (hex->hsluv c) n)
      (hsluv->hex)))

(fn darken-hex [c n]
  (-> (darken (hex->hsluv c) n)
      (hsluv->hex)))

(fn saturate-hex [c n]
  (-> (saturate (hex->hsluv c) n)
      (hsluv->hex)))

(fn desaturate-hex [c n]
  (-> (desaturate (hex->hsluv c) n)
      (hsluv->hex)))

(fn rotate-hex [c n]
  (-> (rotate (hex->hsluv c) n)
      (hsluv->hex)))

;; gradient generations
(fn gradient [c1 c2]
  (var ls [])
  (for [i 0.00 1.01 0.02]
    (set ls (vim.list_extend ls [i])))
  (vim.tbl_map #(blend-hex c1 c2 $1) ls))

(fn gradient-n [c1 c2 n]
  (var ls [])
  (let [step (/ 1 (+ n 1))]
    (for [i 1 n 1]
      (set ls (vim.list_extend ls [(* i step)]))))
  (vim.list_extend [c1] (vim.tbl_map #(blend-hex c1 c2 $1) ls) [c2]))


;; base16 colorscheme generation
(math.randomseed (os.time))
(fn random-color [red-range green-range blue-range]
  (let [rgb {:b (math.random (. blue-range 1) (. blue-range 2))
             :r (math.random (. red-range 1) (. red-range 2))
             :g (math.random (. green-range 1) (. green-range 2))}]
    (string.format "#%02x%02x%02x" rgb.r rgb.g rgb.b)))

(fn generate-pallete []
  (let [bghex (random-color [0 63] [0 63] [0 63])
        fghex (random-color [240 255] [240 255] [240 255])]

    (local palette [bghex
                    (blend-hex bghex fghex 0.085)
                    (blend-hex bghex fghex 0.18)
                    (blend-hex bghex fghex 0.3)
                    (blend-hex bghex fghex 0.7)
                    (blend-hex bghex fghex 0.82)
                    (blend-hex bghex fghex 0.95)
                    fghex])

    (local base16-names [:base00
                         :base01
                         :base02
                         :base03
                         :base04
                         :base05
                         :base06
                         :base07
                         :base08
                         :base09
                         :base0A
                         :base0B
                         :base0C
                         :base0D
                         :base0E
                         :base0F])

    (local base16-palette {})
    (each [i hex (ipairs palette)]
      (local name (. base16-names i))
      (tset base16-palette name hex))
    base16-palette))

{: blend-hex
 : lighten-hex
 : darken-hex
 : saturate-hex
 : desaturate-hex
 : rotate-hex
 : gradient
 : gradient-n
 : generate-pallete}


================================================
FILE: fnl/oxocarbon/init.fnl
================================================
;;                               O X O C A R B O N
;;        _..._         _..._         _..._         _..._         _..._
;;      .:::::::.     .::::. `.     .::::  `.     .::'   `.     .'     `.
;;     :::::::::::   :::::::.  :   ::::::    :   :::       :   :         :
;;     :::::::::::   ::::::::  :   ::::::    :   :::       :   :         :
;;     `:::::::::'   `::::::' .'   `:::::   .'   `::.     .'   `.       .'
;;       `':::''       `'::'-'       `'::.-'       `':..-'       `-...-'
;;
;;   Colorscheme name:    oxocarbon themeing system
;;   Description:         Neovim Colorschemes based on base16 in fennel made with (hs)luv <3
;;   Author:              https://github.com/shaunsingh

(local {: blend-hex} (require :oxocarbon.colorutils))

;; utilities

(macro let! [...]
  (fn let-with-scope! [[scope] name value]
    (let [name (tostring name)
          scope (tostring scope)]
      `(tset ,(match scope
                :b `vim.b
                :w `vim.w
                :t `vim.t
                :g `vim.g) ,name ,value)))

  (match [...]
    [[scope] name value] (let-with-scope! [scope] name value)
    [name value] (let-with-scope! [:g] name value)
    _ (error "expected let! to have at least two arguments: name value")))

(macro set! [option]
  (let [option (tostring option)]
    `(tset vim.o ,option true)))

(macro custom-set-face! [name attributes colors]
  (let [definition (collect [_ attr (ipairs attributes) &into colors]
                     (tostring attr)
                     true)]
    `(vim.api.nvim_set_hl 0 ,name ,definition)))

;; reset variables

(when vim.g.colors_name
  (vim.cmd.hi :clear))

;; set defaults

(let! colors_name :oxocarbon)
(set! termguicolors)

;; oxocarbon palette

(local base00 "#161616")
(local base06 "#ffffff")
(local base09 "#78a9ff")

(local oxocarbon (or (and (= vim.o.background :dark)
                          {: base00
                           :base01 (blend-hex base00 base06 0.085)
                           :base02 (blend-hex base00 base06 0.18)
                           :base03 (blend-hex base00 base06 0.3)
                           :base04 (blend-hex base00 base06 0.82)
                           :base05 (blend-hex base00 base06 0.95)
                           : base06
                           :base07 "#08bdba"
                           :base08 "#3ddbd9"
                           : base09
                           :base10 "#ee5396"
                           :base11 "#33b1ff"
                           :base12 "#ff7eb6"
                           :base13 "#42be65"
                           :base14 "#be95ff"
                           :base15 "#82cfff"
                           :blend "#131313"
                           :none :NONE})
                     {:base00 base06
                      :base01 (blend-hex base00 base06 0.95)
                      :base02 (blend-hex base00 base06 0.82)
                      :base03 base00
                      :base04 "#37474F"
                      :base05 "#90A4AE"
                      :base06 "#525252"
                      :base07 "#08bdba"
                      :base08 "#ff7eb6"
                      :base09 "#ee5396"
                      :base10 "#FF6F00"
                      :base11 "#0f62fe"
                      :base12 "#673AB7"
                      :base13 "#42be65"
                      :base14 "#be95ff"
                      :base15 "#FFAB91"
                      :blend "#FAFAFA"
                      :none :NONE}))

;; terminal

(let! terminal_color_0 oxocarbon.base01)
(let! terminal_color_1 oxocarbon.base11)
(let! terminal_color_2 oxocarbon.base14)
(let! terminal_color_3 oxocarbon.base13)
(let! terminal_color_4 oxocarbon.base09)
(let! terminal_color_5 oxocarbon.base15)
(let! terminal_color_6 oxocarbon.base08)
(let! terminal_color_7 oxocarbon.base05)
(let! terminal_color_8 oxocarbon.base03)
(let! terminal_color_9 oxocarbon.base11)
(let! terminal_color_10 oxocarbon.base14)
(let! terminal_color_11 oxocarbon.base13)
(let! terminal_color_12 oxocarbon.base09)
(let! terminal_color_13 oxocarbon.base15)
(let! terminal_color_14 oxocarbon.base07)
(let! terminal_color_15 oxocarbon.base06)

;; editor

(custom-set-face! :ColorColumn [] {:fg oxocarbon.none :bg oxocarbon.base01})
(custom-set-face! :Cursor [] {:fg oxocarbon.base00 :bg oxocarbon.base04})
(custom-set-face! :CursorLine [] {:fg oxocarbon.none :bg oxocarbon.base01})
(custom-set-face! :CursorColumn [] {:fg oxocarbon.none :bg oxocarbon.base01})
(custom-set-face! :CursorLineNr [] {:fg oxocarbon.base04 :bg oxocarbon.none})
(custom-set-face! :QuickFixLine [] {:fg oxocarbon.none :bg oxocarbon.base01})
(custom-set-face! :Error [] {:fg oxocarbon.base10 :bg oxocarbon.base01})
(custom-set-face! :LineNr [] {:fg oxocarbon.base03 :bg oxocarbon.base00})
(custom-set-face! :NonText [] {:fg oxocarbon.base02 :bg oxocarbon.none})
(custom-set-face! :Normal [] {:fg oxocarbon.base04 :bg oxocarbon.base00})
(custom-set-face! :Pmenu [] {:fg oxocarbon.base04 :bg oxocarbon.base01})
(custom-set-face! :PmenuSbar [] {:fg oxocarbon.base04 :bg oxocarbon.base01})
(custom-set-face! :PmenuSel [] {:fg oxocarbon.base08 :bg oxocarbon.base02})
(custom-set-face! :PmenuThumb [] {:fg oxocarbon.base08 :bg oxocarbon.base02})
(custom-set-face! :SpecialKey [] {:fg oxocarbon.base03 :bg oxocarbon.none})
(custom-set-face! :Visual [] {:fg oxocarbon.none :bg oxocarbon.base02})
(custom-set-face! :VisualNOS [] {:fg oxocarbon.none :bg oxocarbon.base02})
(custom-set-face! :TooLong [] {:fg oxocarbon.none :bg oxocarbon.base02})
(custom-set-face! :Debug [] {:fg oxocarbon.base13 :bg oxocarbon.none})
(custom-set-face! :Macro [] {:fg oxocarbon.base07 :bg oxocarbon.none})
(custom-set-face! :MatchParen [:underline]
                  {:fg oxocarbon.none :bg oxocarbon.base02})
(custom-set-face! :Bold [:bold] {:fg oxocarbon.none :bg oxocarbon.none})
(custom-set-face! :Italic [:italic] {:fg oxocarbon.none :bg oxocarbon.none})
(custom-set-face! :Underlined [:underline]
                  {:fg oxocarbon.none :bg oxocarbon.none})

;; diagnostics

(custom-set-face! :DiagnosticWarn [] {:fg oxocarbon.base14 :bg oxocarbon.none})
(custom-set-face! :DiagnosticError [] {:fg oxocarbon.base10 :bg oxocarbon.none})
(custom-set-face! :DiagnosticInfo [] {:fg oxocarbon.base09 :bg oxocarbon.none})
(custom-set-face! :DiagnosticHint [] {:fg oxocarbon.base04 :bg oxocarbon.none})
(custom-set-face! :DiagnosticUnderlineWarn [:undercurl]
                  {:fg oxocarbon.base14 :bg oxocarbon.none})
(custom-set-face! :DiagnosticUnderlineError [:undercurl]
                  {:fg oxocarbon.base10 :bg oxocarbon.none})
(custom-set-face! :DiagnosticUnderlineInfo [:undercurl]
                  {:fg oxocarbon.base04 :bg oxocarbon.none})
(custom-set-face! :DiagnosticUnderlineHint [:undercurl]
                  {:fg oxocarbon.base04 :bg oxocarbon.none})

;; health
(custom-set-face! :HealthError [] {:fg oxocarbon.base10 :bg oxocarbon.none})
(custom-set-face! :HealthWarning [] {:fg oxocarbon.base14 :bg oxocarbon.none})
(custom-set-face! :HealthSuccess [] {:fg oxocarbon.base13 :bg oxocarbon.none})

;; ledger

(custom-set-face! "@comment" [] {:link "Comment"})
(custom-set-face! "@text.literal.commodity" [] {:fg oxocarbon.base13 :bg oxocarbon.none})
(custom-set-face! "@number" [] {:fg oxocarbon.base09 :bg oxocarbon.none})
(custom-set-face! "@number.date" [] {:fg oxocarbon.base08 :bg oxocarbon.none})
(custom-set-face! "@number.date.effective" [] {:fg oxocarbon.base13 :bg oxocarbon.none})
(custom-set-face! "@number.interval" [] {:fg oxocarbon.base09 :bg oxocarbon.none})
(custom-set-face! "@number.status" [] {:fg oxocarbon.base12 :bg oxocarbon.none})
(custom-set-face! "@number.quantity" [] {:fg oxocarbon.base11 :bg oxocarbon.none})
(custom-set-face! "@number.quantity.negative" [] {:fg oxocarbon.base10 :bg oxocarbon.none})

;; lsp

(custom-set-face! :LspCodeLens [] {:fg oxocarbon.none :bg oxocarbon.base03})
(custom-set-face! :LspReferenceText [] {:fg oxocarbon.none :bg oxocarbon.base03})
(custom-set-face! :LspReferenceread [] {:fg oxocarbon.none :bg oxocarbon.base03})
(custom-set-face! :LspReferenceWrite [] {:fg oxocarbon.none :bg oxocarbon.base03})
(custom-set-face! :LspSignatureActiveParameter [] {:fg oxocarbon.base08 :bg oxocarbon.none})

;; lps-semantic-tokens
(custom-set-face! "@lsp.type.class" [] {:link "Structure"})
(custom-set-face! "@lsp.type.decorator" [] {:link "Decorator"})
(custom-set-face! "@lsp.type.decorator.markdown" [] {:link "Structure"})
(custom-set-face! "@lsp.type.function" [] {:link "@function"})
(custom-set-face! "@lsp.type.macro" [] {:link "Macro"})
(custom-set-face! "@lsp.type.method" [] {:link "@function"})
(custom-set-face! "@lsp.type.struct" [] {:link "Structure"})
(custom-set-face! "@lsp.type.type" [] {:link "Type"})
(custom-set-face! "@lsp.type.typeParameter" [] {:link "Typedef"})
(custom-set-face! "@lsp.type.selfParameter" [] {:link "@variable.builtin"})
(custom-set-face! "@lsp.type.builtinConstant" [] {:link "@constant.builtin"})
(custom-set-face! "@lsp.type.magicFunction" [] {:link "@function.builtin"})
(custom-set-face! "@lsp.type.boolean" [] {:link "@boolean"})
(custom-set-face! "@lsp.type.builtinType" [] {:link "@type.builtin"})
(custom-set-face! "@lsp.type.comment" [] {:link "@comment"})
(custom-set-face! "@lsp.type.enum" [] {:link "@type"})
(custom-set-face! "@lsp.type.enumMember" [] {:link "@constant"})
(custom-set-face! "@lsp.type.escapeSequence" [] {:link "@string.escape"})
(custom-set-face! "@lsp.type.formatSpecifier" [] {:link "@punctuation.special"})
;;(custom-set-face! "@lsp.type.interface" [] {})
(custom-set-face! "@lsp.type.keyword" [] {:link "@keyword"})
(custom-set-face! "@lsp.type.namespace" [] {:link "@namespace"})
(custom-set-face! "@lsp.type.number" [] {:link "@number"})
(custom-set-face! "@lsp.type.operator" [] {:link "@operator"})
(custom-set-face! "@lsp.type.parameter" [] {:link "@parameter"})
(custom-set-face! "@lsp.type.property" [] {:link "@property"})
(custom-set-face! "@lsp.type.selfKeyword" [] {:link "@variable.builtin"})
(custom-set-face! "@lsp.type.string.rust" [] {:link "@string"})
(custom-set-face! "@lsp.type.typeAlias" [] {:link "@type.definition"})
(custom-set-face! "@lsp.type.unresolvedReference" [] {:link "Error"})
(custom-set-face! "@lsp.type.variable" [] {:link "@variable"} )
(custom-set-face! "@lsp.mod.readonly" [] {:link "@constant"})
(custom-set-face! "@lsp.mod.typeHint" [] {:link "Type"})
(custom-set-face! "@lsp.mod.builtin" [] {:link "Special"})
(custom-set-face! "@lsp.typemod.class.defaultLibrary" [] {:link "@type.builtin"})
(custom-set-face! "@lsp.typemod.enum.defaultLibrary" [] {:link "@type.builtin"})
(custom-set-face! "@lsp.typemod.enumMember.defaultLibrary" [] {:link "@constant.builtin"})
(custom-set-face! "@lsp.typemod.function.defaultLibrary" [] {:link "@function.builtin"})
(custom-set-face! "@lsp.typemod.keyword.async" [] {:link "@keyword.coroutine"})
(custom-set-face! "@lsp.typemod.macro.defaultLibrary" [] {:link "@function.builtin"})
(custom-set-face! "@lsp.typemod.method.defaultLibrary" [] {:link "@function.builtin"})
(custom-set-face! "@lsp.typemod.operator.injected" [] {:link "@operator"})
(custom-set-face! "@lsp.typemod.string.injected" [] {:link "@string"})
(custom-set-face! "@lsp.typemod.operator.controlFlow" [] {:link "@exception"})
(custom-set-face! "@lsp.typemod.keyword.documentation" [] {:link "Special"})
(custom-set-face! "@lsp.typemod.variable.global" [] {:link "@constant"})
(custom-set-face! "@lsp.typemod.variable.static" [] {:link "@constant"})
(custom-set-face! "@lsp.typemod.variable.defaultLibrary" [] {:link "Special"})
(custom-set-face! "@lsp.typemod.function.builtin" [] {:link "@function.builtin"})
(custom-set-face! "@lsp.typemod.function.readonly" [] {:link "@method"})
;;(custom-set-face! "@lsp.typemod.type.defaultLibrary" [] {})
(custom-set-face! "@lsp.typemod.variable.defaultLibrary" [] {:link "@variable.builtin"})
(custom-set-face! "@lsp.typemod.variable.injected" [] {:link "@variable"})

;; gutter

(custom-set-face! :Folded [] {:fg oxocarbon.base02 :bg oxocarbon.base01})
(custom-set-face! :FoldColumn [] {:fg oxocarbon.base01 :bg oxocarbon.base00})
(custom-set-face! :SignColumn [] {:fg oxocarbon.base01 :bg oxocarbon.base00})

;; navigation

(custom-set-face! :Directory [] {:fg oxocarbon.base08 :bg oxocarbon.none})

;; prompts

(custom-set-face! :EndOfBuffer [] {:fg oxocarbon.base01 :bg oxocarbon.none})
(custom-set-face! :ErrorMsg [] {:fg oxocarbon.base10 :bg oxocarbon.none})
(custom-set-face! :ModeMsg [] {:fg oxocarbon.base04 :bg oxocarbon.none})
(custom-set-face! :MoreMsg [] {:fg oxocarbon.base08 :bg oxocarbon.none})
(custom-set-face! :Question [] {:fg oxocarbon.base04 :bg oxocarbon.none})
(custom-set-face! :Substitute [] {:fg oxocarbon.base01 :bg oxocarbon.base08})
(custom-set-face! :WarningMsg [] {:fg oxocarbon.base14 :bg oxocarbon.none})
(custom-set-face! :WildMenu [] {:fg oxocarbon.base08 :bg oxocarbon.base01})

;; vimhelp

(custom-set-face! :helpHyperTextJump []
                  {:fg oxocarbon.base08 :bg oxocarbon.none})

(custom-set-face! :helpSpecial [] {:fg oxocarbon.base09 :bg oxocarbon.none})
(custom-set-face! :helpHeadline [] {:fg oxocarbon.base10 :bg oxocarbon.none})
(custom-set-face! :helpHeader [] {:fg oxocarbon.base15 :bg oxocarbon.none})

;; diff

(custom-set-face! :DiffAdded [] {:fg oxocarbon.base07 :bg oxocarbon.none})
(custom-set-face! :DiffChanged [] {:fg oxocarbon.base09 :bg oxocarbon.none})
(custom-set-face! :DiffRemoved [] {:fg oxocarbon.base10 :bg oxocarbon.none})
(custom-set-face! :DiffAdd [] {:bg "#122f2f" :fg oxocarbon.none})
(custom-set-face! :DiffChange [] {:bg "#222a39" :fg oxocarbon.none})
(custom-set-face! :DiffText [] {:bg "#2f3f5c" :fg oxocarbon.none})
(custom-set-face! :DiffDelete [] {:bg "#361c28" :fg oxocarbon.none})

;; search

(custom-set-face! :IncSearch [] {:fg oxocarbon.base06 :bg oxocarbon.base10})
(custom-set-face! :Search [] {:fg oxocarbon.base01 :bg oxocarbon.base08})

;; tabs

(custom-set-face! :TabLine [] {:link "StatusLineNC"})
(custom-set-face! :TabLineFill [] {:link "TabLine"})
(custom-set-face! :TabLineSel [] {:link "StatusLine"})

;; window

(custom-set-face! :Title [] {:fg oxocarbon.base04 :bg oxocarbon.none})
;; VertSplit has been replaced by `WinSpeperator` in nvim 0.10
(custom-set-face! :VertSplit [] {:fg oxocarbon.base01 :bg oxocarbon.base00})
(custom-set-face! :WinSeparator [] {:fg oxocarbon.base01 :bg oxocarbon.base00})

;; regular syntax

(custom-set-face! :Boolean [] {:fg oxocarbon.base09 :bg oxocarbon.none})
(custom-set-face! :Character [] {:fg oxocarbon.base14 :bg oxocarbon.none})
(custom-set-face! :Comment [:italic]
                  {:fg oxocarbon.base03 :bg oxocarbon.none})
(custom-set-face! :Conceal [] {:fg oxocarbon.none :bg oxocarbon.none})
(custom-set-face! :Conditional [] {:fg oxocarbon.base09 :bg oxocarbon.none})
(custom-set-face! :Constant [] {:fg oxocarbon.base04 :bg oxocarbon.none})
(custom-set-face! :Decorator [] {:fg oxocarbon.base12 :bg oxocarbon.none})
(custom-set-face! :Define [] {:fg oxocarbon.base09 :bg oxocarbon.none})
(custom-set-face! :Delimeter [] {:fg oxocarbon.base06 :bg oxocarbon.none})
(custom-set-face! :Exception [] {:fg oxocarbon.base09 :bg oxocarbon.none})
(custom-set-face! :Float [] {:link "Number"})
(custom-set-face! :Function [] {:fg oxocarbon.base08 :bg oxocarbon.none})
(custom-set-face! :Identifier [] {:fg oxocarbon.base04 :bg oxocarbon.none})
(custom-set-face! :Include [] {:fg oxocarbon.base09 :bg oxocarbon.none})
(custom-set-face! :Keyword [] {:fg oxocarbon.base09 :bg oxocarbon.none})
(custom-set-face! :Label [] {:fg oxocarbon.base09 :bg oxocarbon.none})
(custom-set-face! :Number [] {:fg oxocarbon.base15 :bg oxocarbon.none})
(custom-set-face! :Operator [] {:fg oxocarbon.base09 :bg oxocarbon.none})
(custom-set-face! :PreProc [] {:fg oxocarbon.base09 :bg oxocarbon.none})
(custom-set-face! :Repeat [] {:fg oxocarbon.base09 :bg oxocarbon.none})
(custom-set-face! :Special [] {:fg oxocarbon.base04 :bg oxocarbon.none})
(custom-set-face! :SpecialChar [] {:fg oxocarbon.base04 :bg oxocarbon.none})
(custom-set-face! :SpecialComment [] {:fg oxocarbon.base08 :bg oxocarbon.none})
(custom-set-face! :Statement [] {:fg oxocarbon.base09 :bg oxocarbon.none})
(custom-set-face! :StorageClass [] {:fg oxocarbon.base09 :bg oxocarbon.none})
(custom-set-face! :String [] {:fg oxocarbon.base14 :bg oxocarbon.none})
(custom-set-face! :Structure [] {:fg oxocarbon.base09 :bg oxocarbon.none})
(custom-set-face! :Tag [] {:fg oxocarbon.base04 :bg oxocarbon.none})
(custom-set-face! :Todo [] {:fg oxocarbon.base13 :bg oxocarbon.none})
(custom-set-face! :Type [] {:fg oxocarbon.base09 :bg oxocarbon.none})
(custom-set-face! :Typedef [] {:fg oxocarbon.base09 :bg oxocarbon.none})

;; markdown

(custom-set-face! :markdownBlockquote []
                  {:fg oxocarbon.base08 :bg oxocarbon.none})
(custom-set-face! :markdownBold [] {:link "Bold"})
(custom-set-face! :markdownItalic [] {:link "Italic"})
(custom-set-face! :markdownBoldItalic [:bold :italic]
                  {:fg oxocarbon.none :bg oxocarbon.none})
(custom-set-face! :markdownRule [] {:link "Comment"})
(custom-set-face! :markdownH1 [] {:fg oxocarbon.base10 :bg oxocarbon.none})
(custom-set-face! :markdownH2 [] {:link "markdownH1"})
(custom-set-face! :markdownH3 [] {:link "markdownH1"})
(custom-set-face! :markdownH4 [] {:link "markdownH1"})
(custom-set-face! :markdownH5 [] {:link "markdownH1"})
(custom-set-face! :markdownH6 [] {:link "markdownH1"})
(custom-set-face! :markdownHeadingDelimiter [] {:link "markdownH1"})
(custom-set-face! :markdownHeadingRule [] {:link "markdownH1"})
(custom-set-face! :markdownUrl [:underline]
                  {:fg oxocarbon.base14 :bg oxocarbon.none})
(custom-set-face! :markdownCode [] {:link "String"})
(custom-set-face! :markdownCodeBlock [] {:link "markdownCode"})
(custom-set-face! :markdownCodeDelimiter [] {:link "markdownCode"})
(custom-set-face! :markdownUrl [] {:link "String"})
(custom-set-face! :markdownListMarker []
                  {:fg oxocarbon.base08 :bg oxocarbon.none})
(custom-set-face! :markdownOrderedListMarker []
                  {:fg oxocarbon.base08 :bg oxocarbon.none})

; markdown treesitter
(custom-set-face! "@markup" [] {:link "@none"})
(custom-set-face! "@markup.environment" [] {:link "Macro"})
(custom-set-face! "@markup.environment.name" [] {:link "Type"})
(custom-set-face! "@markup.emphasis" [] {:italic true})
(custom-set-face! "@markup.italic" [] {:italic true})
(custom-set-face! "@markup.strikethrough" [] {:strikethrough true})
(custom-set-face! "@markup.strong" [] {:bold true})
(custom-set-face! "@markup.underline" [] {:underline true})

(custom-set-face! "@markup.heading" [] {:link "Title"})
(custom-set-face! "@markup.heading.marker" [] {:link :markdownHeadingDelimiter})
(custom-set-face! "@markup.heading.1.markdown" [] {:link "markdownH1"})
(custom-set-face! "@markup.heading.2.markdown" [] {:link "markdownH1"})
(custom-set-face! "@markup.heading.3.markdown" [] {:link "markdownH1"})
(custom-set-face! "@markup.heading.4.markdown" [] {:link "markdownH1"})
(custom-set-face! "@markup.heading.5.markdown" [] {:link "markdownH1"})
(custom-set-face! "@markup.heading.6.markdown" [] {:link "markdownH1"})
(custom-set-face! "@markup.heading.7.markdown" [] {:link "markdownH1"})
(custom-set-face! "@markup.heading.8.markdown" [] {:link "markdownH1"})

(custom-set-face! "@markup.link" [] {:link "markdownUrl"})
(custom-set-face! "@markup.link.label" [] {:underline true})
(custom-set-face! "@markup.link.label.symbol" [] {:link "markdownItalic"})
(custom-set-face! "@markup.link.label.markdown_inline" [] {:link "markdownItalic"})
(custom-set-face! "@markup.link.title" [] {:link "Title"})
(custom-set-face! "@markup.link.url" [] {:link "markdownUrl"})
(custom-set-face! "@markup.link.destination" [] {:link "markdownUrl"})
(custom-set-face! "@markup.link.description" [] {:fg oxocarbon.blend :underline true :italic true})

(custom-set-face! "@markup.list" [] {:link "markdownListMarker"})
(custom-set-face! "@markup.list.bullet" [] {:link "markdownListMarker"})
(custom-set-face! "@markup.list.checked" [] {:link "markdownListMarker"})
(custom-set-face! "@markup.list.markdown" [] {:link "markdownListMarker"})
(custom-set-face! "@markup.list.ordered" [] {:link "markdownOrderedListMarker"})
(custom-set-face! "@markup.list.unchecked" [] {:link "markdownListMarker"})

(custom-set-face! "@markup.math" [] {:link "Special"})
(custom-set-face! "@markup.raw" [] {:link "String"})
(custom-set-face! "@markup.raw.markdown_inline" [] {:link "String"})
(custom-set-face! "@markup.quote" [] {:link "markdownBlockquote"})

(custom-set-face! "@markup.literal" [] {:link "markdownCode"})
(custom-set-face! "@markup.code.block" [] {:link "markdownCodeBlock"})
(custom-set-face! "@markup.rule" [] {:link "Comment"})

;; asciidoc

(custom-set-face! :asciidocAttributeEntry [] {:fg oxocarbon.base15 :bg oxocarbon.none})
(custom-set-face! :asciidocAttributeList [] {:link "asciidocAttributeEntry"})
(custom-set-face! :asciidocAttributeRef [] {:link "asciidocAttributeEntry"})
(custom-set-face! :asciidocHLabel [] {:link "markdownH1"})
(custom-set-face! :asciidocOneLineTitle [] {:link "markdownH1"})
(custom-set-face! :asciidocQuotedMonospaced [] {:link "markdownBlockquote"})
(custom-set-face! :asciidocURL [] {:link "markdownUrl"})

;; treesitter
;;; misc

(custom-set-face! "@comment" [] {:link "Comment"})
(custom-set-face! "@error" [] {:fg oxocarbon.base11 :bg oxocarbon.none})

;; @none
;; @preproc
;; @define

(custom-set-face! "@operator" [] {:link "Operator"})

;;; punctuation

(custom-set-face! "@punctuation.delimiter" [] {:fg oxocarbon.base08 :bg oxocarbon.none})
(custom-set-face! "@punctuation.bracket" [] {:fg oxocarbon.base08 :bg oxocarbon.none})
(custom-set-face! "@punctuation.special" [] {:fg oxocarbon.base08 :bg oxocarbon.none})

;;; literals

(custom-set-face! "@string" [] {:link "String"})
(custom-set-face! "@string.regex" [] {:fg oxocarbon.base07 :bg oxocarbon.none})
(custom-set-face! "@string.escape" [] {:fg oxocarbon.base15 :bg oxocarbon.none})

;; @string.special

(custom-set-face! "@character" [] {:link "Character"})

;; @character.special

(custom-set-face! "@boolean" [] {:link "Boolean"})
(custom-set-face! "@number" [] {:link "Number"})
(custom-set-face! "@float" [] {:link "Float"})

;;; functions

(custom-set-face! "@function" [:bold]
                  {:fg oxocarbon.base12 :bg oxocarbon.none})
(custom-set-face! "@function.builtin" [] {:fg oxocarbon.base12 :bg oxocarbon.none})

;; @function.call

(custom-set-face! "@function.macro" [] {:fg oxocarbon.base07 :bg oxocarbon.none})
(custom-set-face! "@method" [] {:fg oxocarbon.base07 :bg oxocarbon.none})

;; @method.call

(custom-set-face! "@constructor" [] {:fg oxocarbon.base09 :bg oxocarbon.none})
(custom-set-face! "@parameter" [] {:fg oxocarbon.base04 :bg oxocarbon.none})

;;; keywords

(custom-set-face! "@keyword" [] {:fg oxocarbon.base09 :bg oxocarbon.none})
(custom-set-face! "@keyword.function" [] {:fg oxocarbon.base08 :bg oxocarbon.none})
(custom-set-face! "@keyword.operator" [] {:fg oxocarbon.base08 :bg oxocarbon.none})

;; @keyword.return

(custom-set-face! "@conditional" [] {:fg oxocarbon.base09 :bg oxocarbon.none})
(custom-set-face! "@repeat" [] {:fg oxocarbon.base09 :bg oxocarbon.none})

;; @debug

(custom-set-face! "@label" [] {:fg oxocarbon.base15 :bg oxocarbon.none})
(custom-set-face! "@include" [] {:fg oxocarbon.base09 :bg oxocarbon.none})
(custom-set-face! "@exception" [] {:fg oxocarbon.base15 :bg oxocarbon.none})

;;; types

(custom-set-face! "@type" [] {:link "Type"})
(custom-set-face! "@type.builtin" [] {:link "Type"})

;; @type.defintion
;; @type.qualifier
;; @storageclass
;; @storageclass.lifetime

(custom-set-face! "@attribute" [] {:fg oxocarbon.base15 :bg oxocarbon.none})
(custom-set-face! "@field" [] {:fg oxocarbon.base04 :bg oxocarbon.none})
(custom-set-face! "@property" [] {:fg oxocarbon.base10 :bg oxocarbon.none})

;;; identifiers

(custom-set-face! "@variable" [] {:fg oxocarbon.base04 :bg oxocarbon.none})
(custom-set-face! "@variable.builtin" [] {:fg oxocarbon.base04 :bg oxocarbon.none})
(custom-set-face! "@constant" [] {:fg oxocarbon.base14 :bg oxocarbon.none})
(custom-set-face! "@constant.builtin" [] {:fg oxocarbon.base07 :bg oxocarbon.none})
(custom-set-face! "@constant.macro" [] {:fg oxocarbon.base07 :bg oxocarbon.none})
(custom-set-face! "@namespace" [] {:fg oxocarbon.base07 :bg oxocarbon.none})
(custom-set-face! "@symbol" [:bold]
                  {:fg oxocarbon.base15 :bg oxocarbon.none})

;;; text

(custom-set-face! "@text" [] {:fg oxocarbon.base04 :bg oxocarbon.none})
(custom-set-face! "@text.strong" [] {:fg oxocarbon.none :bg oxocarbon.none})
(custom-set-face! "@text.emphasis" [:bold]
                  {:fg oxocarbon.base10 :bg oxocarbon.none})
(custom-set-face! "@text.underline" [:underline]
                  {:fg oxocarbon.base10 :bg oxocarbon.none})
(custom-set-face! "@text.strike" [:strikethrough]
                  {:fg oxocarbon.base10 :bg oxocarbon.none})
(custom-set-face! "@text.title" [] {:fg oxocarbon.base10 :bg oxocarbon.none})
(custom-set-face! "@text.literal" [] {:fg oxocarbon.base04 :bg oxocarbon.none})
(custom-set-face! "@text.uri" [:underline]
                  {:fg oxocarbon.base14 :bg oxocarbon.none})

;; @text.math
;; @text.environment
;; @text.environment.name
;; @text.reference
;; @text.todo
;; @text.note
;; @text.warning
;; @text.danger
;; @text.diff.add
;; @text.diff.delete
;;; tags

(custom-set-face! "@tag" [] {:fg oxocarbon.base09 :bg oxocarbon.none})
(custom-set-face! "@tag.attribute" [] {:fg oxocarbon.base15 :bg oxocarbon.none})
(custom-set-face! "@tag.delimiter" [] {:fg oxocarbon.base15 :bg oxocarbon.none})
(custom-set-face! "@tag.builtin.tsx" [] {:link "@tag.tsx"})

;;; Conceal
;; @conceal
;;; Spell
;; @spell
;; @nospell
;;; non-standard
;; @variable.global
;;; locals
;; @definition
;; @definition.constant
;; @definition.function
;; @definition.method
;; @definition.var
;; @definition.parameter
;; @definition.macro
;; @definition.type
;; @definition.field
;; @definition.enum
;; @definition.namespace
;; @definition.import
;; @definition.associated
;; @scope

(custom-set-face! "@reference" [] {:fg oxocarbon.base04 :bg oxocarbon.none})

;; neovim

(custom-set-face! :NvimInternalError [] {:fg oxocarbon.base00 :bg oxocarbon.base08})
(custom-set-face! :NormalFloat [] {:fg oxocarbon.base05 :bg oxocarbon.blend})
(custom-set-face! :FloatBorder [] {:fg oxocarbon.blend :bg oxocarbon.blend})
(custom-set-face! :NormalNC [] {:fg oxocarbon.base04 :bg oxocarbon.base00})
(custom-set-face! :TermCursor [] {:fg oxocarbon.base00 :bg oxocarbon.base04})
(custom-set-face! :TermCursorNC [] {:fg oxocarbon.base00 :bg oxocarbon.base04})

;; statusline/winbar

(custom-set-face! :StatusLine [] {:fg oxocarbon.base04 :bg oxocarbon.base00})
(custom-set-face! :StatusLineNC [] {:fg oxocarbon.base04 :bg oxocarbon.base01})
(custom-set-face! :StatusReplace [] {:fg oxocarbon.base00 :bg oxocarbon.base08})
(custom-set-face! :StatusInsert [] {:fg oxocarbon.base00 :bg oxocarbon.base12})
(custom-set-face! :StatusVisual [] {:fg oxocarbon.base00 :bg oxocarbon.base14})
(custom-set-face! :StatusTerminal [] {:fg oxocarbon.base00 :bg oxocarbon.base11})
(custom-set-face! :StatusNormal [] {:fg oxocarbon.base00 :bg oxocarbon.base15})
(custom-set-face! :StatusCommand [] {:fg oxocarbon.base00 :bg oxocarbon.base13})
(custom-set-face! :StatusLineDiagnosticWarn [:bold]
                  {:fg oxocarbon.base14 :bg oxocarbon.base00})
(custom-set-face! :StatusLineDiagnosticError [:bold]
                  {:fg oxocarbon.base10 :bg oxocarbon.base00})

;; telescope

(custom-set-face! :TelescopeBorder [] {:fg oxocarbon.blend :bg oxocarbon.blend})
(custom-set-face! :TelescopePromptBorder [] {:fg oxocarbon.base02 :bg oxocarbon.base02})
(custom-set-face! :TelescopePromptNormal [] {:fg oxocarbon.base05 :bg oxocarbon.base02})
(custom-set-face! :TelescopePromptPrefix [] {:fg oxocarbon.base08 :bg oxocarbon.base02})
(custom-set-face! :TelescopeNormal [] {:fg oxocarbon.none :bg oxocarbon.blend})
(custom-set-face! :TelescopePreviewTitle [] {:fg oxocarbon.base02 :bg oxocarbon.base12})
(custom-set-face! :TelescopePromptTitle [] {:fg oxocarbon.base02 :bg oxocarbon.base11})
(custom-set-face! :TelescopeResultsTitle [] {:fg oxocarbon.blend :bg oxocarbon.blend})
(custom-set-face! :TelescopeSelection [] {:fg oxocarbon.none :bg oxocarbon.base02})
(custom-set-face! :TelescopePreviewLine [] {:fg oxocarbon.none :bg oxocarbon.base01})
(custom-set-face! :TelescopeMatching [:bold :italic] {:fg oxocarbon.base08 :bg oxocarbon.none})

;; notify

(custom-set-face! :NotifyERRORBorder [] {:fg oxocarbon.base08 :bg oxocarbon.none})
(custom-set-face! :NotifyWARNBorder [] {:fg oxocarbon.base14 :bg oxocarbon.none})
(custom-set-face! :NotifyINFOBorder [] {:fg oxocarbon.base05 :bg oxocarbon.none})
(custom-set-face! :NotifyDEBUGBorder [] {:fg oxocarbon.base13 :bg oxocarbon.none})
(custom-set-face! :NotifyTRACEBorder [] {:fg oxocarbon.base13 :bg oxocarbon.none})
(custom-set-face! :NotifyERRORIcon [] {:fg oxocarbon.base08 :bg oxocarbon.none})
(custom-set-face! :NotifyWARNIcon [] {:fg oxocarbon.base14 :bg oxocarbon.none})
(custom-set-face! :NotifyINFOIcon [] {:fg oxocarbon.base05 :bg oxocarbon.none})
(custom-set-face! :NotifyDEBUGIcon [] {:fg oxocarbon.base13 :bg oxocarbon.none})
(custom-set-face! :NotifyTRACEIcon [] {:fg oxocarbon.base13 :bg oxocarbon.none})
(custom-set-face! :NotifyERRORTitle [] {:fg oxocarbon.base08 :bg oxocarbon.none})
(custom-set-face! :NotifyWARNTitle [] {:fg oxocarbon.base14 :bg oxocarbon.none})
(custom-set-face! :NotifyINFOTitle [] {:fg oxocarbon.base05 :bg oxocarbon.none})
(custom-set-face! :NotifyDEBUGTitle [] {:fg oxocarbon.base13 :bg oxocarbon.none})
(custom-set-face! :NotifyTRACETitle [] {:fg oxocarbon.base13 :bg oxocarbon.none})

;; cmp

(custom-set-face! :CmpItemAbbr [] {:fg "#adadad" :bg oxocarbon.none})
(custom-set-face! :CmpItemAbbrMatch [:bold]
                  {:fg oxocarbon.base05 :bg oxocarbon.none})
(custom-set-face! :CmpItemAbbrMatchFuzzy [:bold]
                  {:fg oxocarbon.base04 :bg oxocarbon.none})
(custom-set-face! :CmpItemMenu [:italic]
                  {:fg oxocarbon.base04 :bg oxocarbon.none})
(custom-set-face! :CmpItemKindInterface [] {:fg oxocarbon.base01 :bg oxocarbon.base08})
(custom-set-face! :CmpItemKindColor [] {:fg oxocarbon.base01 :bg oxocarbon.base08})
(custom-set-face! :CmpItemKindTypeParameter [] {:fg oxocarbon.base01 :bg oxocarbon.base08})
(custom-set-face! :CmpItemKindText [] {:fg oxocarbon.base01 :bg oxocarbon.base09})
(custom-set-face! :CmpItemKindEnum [] {:fg oxocarbon.base01 :bg oxocarbon.base09})
(custom-set-face! :CmpItemKindKeyword [] {:fg oxocarbon.base01 :bg oxocarbon.base09})
(custom-set-face! :CmpItemKindConstant [] {:fg oxocarbon.base01 :bg oxocarbon.base10})
(custom-set-face! :CmpItemKindConstructor [] {:fg oxocarbon.base01 :bg oxocarbon.base10})
(custom-set-face! :CmpItemKindReference [] {:fg oxocarbon.base01 :bg oxocarbon.base10})
(custom-set-face! :CmpItemKindFunction [] {:fg oxocarbon.base01 :bg oxocarbon.base11})
(custom-set-face! :CmpItemKindStruct [] {:fg oxocarbon.base01 :bg oxocarbon.base11})
(custom-set-face! :CmpItemKindClass [] {:fg oxocarbon.base01 :bg oxocarbon.base11})
(custom-set-face! :CmpItemKindModule [] {:fg oxocarbon.base01 :bg oxocarbon.base11})
(custom-set-face! :CmpItemKindOperator [] {:fg oxocarbon.base01 :bg oxocarbon.base11})
(custom-set-face! :CmpItemKindField [] {:fg oxocarbon.base01 :bg oxocarbon.base12})
(custom-set-face! :CmpItemKindProperty [] {:fg oxocarbon.base01 :bg oxocarbon.base12})
(custom-set-face! :CmpItemKindEvent [] {:fg oxocarbon.base01 :bg oxocarbon.base12})
(custom-set-face! :CmpItemKindUnit [] {:fg oxocarbon.base01 :bg oxocarbon.base13})
(custom-set-face! :CmpItemKindSnippet [] {:fg oxocarbon.base01 :bg oxocarbon.base13})
(custom-set-face! :CmpItemKindFolder [] {:fg oxocarbon.base01 :bg oxocarbon.base13})
(custom-set-face! :CmpItemKindVariable [] {:fg oxocarbon.base01 :bg oxocarbon.base14})
(custom-set-face! :CmpItemKindFile [] {:fg oxocarbon.base01 :bg oxocarbon.base14})
(custom-set-face! :CmpItemKindMethod [] {:fg oxocarbon.base01 :bg oxocarbon.base15})
(custom-set-face! :CmpItemKindValue [] {:fg oxocarbon.base01 :bg oxocarbon.base15})
(custom-set-face! :CmpItemKindEnumMember [] {:fg oxocarbon.base01 :bg oxocarbon.base15})

;; nvimtree

(custom-set-face! :NvimTreeImageFile [] {:fg oxocarbon.base12 :bg oxocarbon.none})
(custom-set-face! :NvimTreeFolderIcon [] {:fg oxocarbon.base12 :bg oxocarbon.none})
(custom-set-face! :NvimTreeWinSeparator [] {:fg oxocarbon.base00 :bg oxocarbon.base00})
(custom-set-face! :NvimTreeFolderName [] {:fg oxocarbon.base09 :bg oxocarbon.none})
(custom-set-face! :NvimTreeIndentMarker [] {:fg oxocarbon.base02 :bg oxocarbon.none})
(custom-set-face! :NvimTreeEmptyFolderName [] {:fg oxocarbon.base15 :bg oxocarbon.none})
(custom-set-face! :NvimTreeOpenedFolderName [] {:fg oxocarbon.base15 :bg oxocarbon.none})
(custom-set-face! :NvimTreeNormal [] {:fg oxocarbon.base04 :bg oxocarbon.base00})

;; neogit

(custom-set-face! :NeogitBranch [] {:fg oxocarbon.base10 :bg oxocarbon.none})
(custom-set-face! :NeogitRemote [] {:fg oxocarbon.base09 :bg oxocarbon.none})
(custom-set-face! :NeogitHunkHeader [] {:fg oxocarbon.base04 :bg oxocarbon.base02})
(custom-set-face! :NeogitHunkHeaderHighlight [] {:fg oxocarbon.base04 :bg oxocarbon.base03})

;; gitsigns
(custom-set-face! :GitSignsCurrentLineBlame [] {:link "Comment" })

;; hydra

(custom-set-face! :HydraRed [] {:fg oxocarbon.base12 :bg oxocarbon.none})
(custom-set-face! :HydraBlue [] {:fg oxocarbon.base09 :bg oxocarbon.none})
(custom-set-face! :HydraAmaranth [] {:fg oxocarbon.base10 :bg oxocarbon.none})
(custom-set-face! :HydraTeal [] {:fg oxocarbon.base08 :bg oxocarbon.none})
(custom-set-face! :HydraHint [] {:fg oxocarbon.none :bg oxocarbon.blend})

;; alpha

(custom-set-face! :alpha1 [] {:fg oxocarbon.base03 :bg oxocarbon.none})
(custom-set-face! :alpha2 [] {:fg oxocarbon.base04 :bg oxocarbon.none})
(custom-set-face! :alpha3 [] {:fg oxocarbon.base03 :bg oxocarbon.none})

;; headlines.nvim

(custom-set-face! :CodeBlock [] {:fg oxocarbon.none :bg oxocarbon.base01})

;; nvim-bufferline

(custom-set-face! :BufferLineDiagnostic [:bold]
                  {:fg oxocarbon.base10 :bg oxocarbon.none})

(custom-set-face! :BufferLineDiagnosticVisible [:bold]
                  {:fg oxocarbon.base10 :bg oxocarbon.none})

;; preservim/vim-markdown

(custom-set-face! :htmlH1 [] {:link "markdownH1"})
(custom-set-face! :mkdRule [] {:link "markdownRule"})
(custom-set-face! :mkdListItem [] {:link "markdownListMarker"})
(custom-set-face! :mkdListItemCheckbox [] {:link "markdownListMarker"})

;; vimwiki/vimwiki

(custom-set-face! :VimwikiHeader1 [] {:link "markdownH1"})
(custom-set-face! :VimwikiHeader2 [] {:link "markdownH1"})
(custom-set-face! :VimwikiHeader3 [] {:link "markdownH1"})
(custom-set-face! :VimwikiHeader4 [] {:link "markdownH1"})
(custom-set-face! :VimwikiHeader5 [] {:link "markdownH1"})
(custom-set-face! :VimwikiHeader6 [] {:link "markdownH1"})
(custom-set-face! :VimwikiHeaderChar [] {:link "markdownH1"})
(custom-set-face! :VimwikiList [] {:link "markdownListMarker"})
(custom-set-face! :VimwikiLink [] {:link "markdownUrl"})
(custom-set-face! :VimwikiCode [] {:link "markdownCode"})

;; flash

(custom-set-face! :FlashLabel [:bold] {:fg oxocarbon.base05 :bg oxocarbon.base00})

{ : oxocarbon }


================================================
FILE: lua/lualine/themes/oxocarbon.lua
================================================
local oxocarbon = (require("oxocarbon")).oxocarbon
local colors = {color0 = oxocarbon.base02, color1 = oxocarbon.base10, color2 = oxocarbon.base08, color3 = oxocarbon.base00, color6 = oxocarbon.base04, color7 = oxocarbon.base09, color8 = oxocarbon.base14, color9 = oxocarbon.base12, color10 = oxocarbon.base13}
return {replace = {a = {fg = colors.color0, bg = colors.color1}, b = {fg = colors.color2, bg = colors.color3}}, inactive = {a = {fg = colors.color0, bg = colors.color7}, b = {fg = colors.color6, bg = colors.color3}, z = {fg = colors.color0, bg = colors.color3}}, normal = {a = {fg = colors.color0, bg = colors.color7}, b = {fg = colors.color6, bg = colors.color3}, c = {fg = colors.color6, bg = colors.color3}, z = {fg = colors.color6, bg = colors.color3}}, visual = {a = {fg = colors.color0, bg = colors.color8}, b = {fg = colors.color6, bg = colors.color3}, y = {fg = colors.color6, bg = colors.color3}, z = {fg = colors.color9, bg = colors.color3}}, insert = {a = {fg = colors.color0, bg = colors.color9}, b = {fg = colors.color6, bg = colors.color3}, z = {fg = colors.color9, bg = colors.color3}}, command = {a = {fg = colors.color0, bg = colors.color10}}}

================================================
FILE: lua/oxocarbon/colorutils.lua
================================================
local hex_chars = "0123456789abcdef"
local epsilon = 0.0088564516
local kappa = 903.2962962
local refY = 1
local refU = 0.19783000664283
local refV = 0.46831999493879
local m = {{3.2409699419045, ( - 1.5373831775701), ( - 0.498610760293)}, {( - 0.96924363628087), 1.8759675015077, 0.041555057407175}, {0.055630079696993, ( - 0.20397695888897), 1.0569715142429}}
local minv = {{0.41239079926595, 0.35758433938387, 0.18048078840183}, {0.21263900587151, 0.71516867876775, 0.072192315360733}, {0.019330818715591, 0.11919477979462, 0.95053215224966}}
local function get_bounds(l)
  local result = {}
  local sub2 = nil
  local sub1 = (((l + 16) ^ 3) / 1560896)
  if (sub1 > epsilon) then
    sub2 = sub1
  else
    sub2 = (l / kappa)
  end
  for i = 1, 3 do
    local m1 = m[i][1]
    local m2 = m[i][2]
    local m3 = m[i][3]
    for t = 0, 1 do
      local top1 = (((284517 * m1) - (94839 * m3)) * sub2)
      local top2 = ((((((838422 * m3) + (769860 * m2)) + (731718 * m1)) * l) * sub2) - ((769860 * t) * l))
      local bottom = ((((632260 * m3) - (126452 * m2)) * sub2) + (126452 * t))
      table.insert(result, {slope = (top1 / bottom), intercept = (top2 / bottom)})
    end
  end
  return result
end
local function length_of_ray_until_intersect(theta, line)
  return (line.intercept / (math.sin(theta) - (line.slope * math.cos(theta))))
end
local function max_safe_chroma_for_lh(l, h)
  local hrad = (((h / 360) * math.pi) * 2)
  local bounds = get_bounds(l)
  local min = 1.7976931348623e+308
  for i = 1, 6 do
    local bound = bounds[i]
    local distance = length_of_ray_until_intersect(hrad, bound)
    if (distance >= 0) then
      min = math.min(min, distance)
    else
    end
  end
  return min
end
local function y__3el(Y)
  if (Y <= epsilon) then
    return ((Y / refY) * kappa)
  else
    return ((116 * ((Y / refY) ^ 0.33333333333333)) - 16)
  end
end
local function l__3ey(L)
  if (L <= 8) then
    return ((refY * L) / kappa)
  else
    return (refY * (((L + 16) / 116) ^ 3))
  end
end
local function from_linear(c)
  if (c <= 0.0031308) then
    return (12.92 * c)
  else
    return ((1.055 * (c ^ 0.41666666666667)) - 0.055)
  end
end
local function to_linear(c)
  if (c > 0.04045) then
    return (((c + 0.055) / 1.055) ^ 2.4)
  else
    return (c / 12.92)
  end
end
local function dot_product(a, b)
  local sum = 0
  for i = 1, 3 do
    sum = (sum + (a[i] * b[i]))
  end
  return sum
end
local function luv__3elch(tuple)
  local L = tuple[1]
  local U = tuple[2]
  local V = tuple[3]
  local C = math.sqrt(((U * U) + (V * V)))
  local H = nil
  if (C < 1e-08) then
    H = 0
  else
    H = ((math.atan2(V, U) * 180) / 3.1415926535898)
    if (H < 0) then
      H = (360 + H)
    else
    end
  end
  return {L, C, H}
end
local function lch__3eluv(tuple)
  local L = tuple[1]
  local C = tuple[2]
  local Hrad = (((tuple[3] / 360) * 2) * math.pi)
  return {L, (math.cos(Hrad) * C), (math.sin(Hrad) * C)}
end
local function xyz__3eluv(tuple)
  local X = tuple[1]
  local Y = tuple[2]
  local divider = ((X + (15 * Y)) + (3 * tuple[3]))
  local var_u = (4 * X)
  local var_v = (9 * Y)
  if (divider ~= 0) then
    var_u = (var_u / divider)
    var_v = (var_v / divider)
  else
    var_u = 0
    var_v = 0
  end
  local L = y__3el(Y)
  if (L == 0) then
    local rtn = {0, 0, 0}
    return rtn
  else
  end
  return {L, ((13 * L) * (var_u - refU)), ((13 * L) * (var_v - refV))}
end
local function luv__3exyz(tuple)
  local L = tuple[1]
  local U = tuple[2]
  local V = tuple[3]
  if (L == 0) then
    local rtn = {0, 0, 0}
    return rtn
  else
  end
  local var_u = ((U / (13 * L)) + refU)
  local var_v = ((V / (13 * L)) + refV)
  local Y = l__3ey(L)
  local X = (0 - (((9 * Y) * var_u) / (((var_u - 4) * var_v) - (var_u * var_v))))
  return {X, Y, ((((9 * Y) - ((15 * var_v) * Y)) - (var_v * X)) / (3 * var_v))}
end
local function xyz__3ergb(tuple)
  return {from_linear(dot_product(m[1], tuple)), from_linear(dot_product(m[2], tuple)), from_linear(dot_product(m[3], tuple))}
end
local function rgb__3exyz(tuple)
  local rgbl = {to_linear(tuple[1]), to_linear(tuple[2]), to_linear(tuple[3])}
  return {dot_product(minv[1], rgbl), dot_product(minv[2], rgbl), dot_product(minv[3], rgbl)}
end
local function hex__3ergb(hex)
  local hex0 = string.lower(hex)
  local ret = {}
  for i = 0, 2 do
    local char1 = string.sub(hex0, ((i * 2) + 2), ((i * 2) + 2))
    local char2 = string.sub(hex0, ((i * 2) + 3), ((i * 2) + 3))
    local digit1 = (string.find(hex_chars, char1) - 1)
    local digit2 = (string.find(hex_chars, char2) - 1)
    do end (ret)[(i + 1)] = (((digit1 * 16) + digit2) / 255)
  end
  return ret
end
local function rgb__3ehex(tuple)
  local h = "#"
  for i = 1, 3 do
    local c = math.floor(((tuple[i] * 255) + 0.5))
    local digit2 = math.fmod(c, 16)
    local x = ((c - digit2) / 16)
    local digit1 = math.floor(x)
    h = (h .. string.sub(hex_chars, (digit1 + 1), (digit1 + 1)))
    h = (h .. string.sub(hex_chars, (digit2 + 1), (digit2 + 1)))
  end
  return h
end
local function lch__3ehsluv(tuple)
  local L = tuple[1]
  local C = tuple[2]
  local H = tuple[3]
  local max_chroma = max_safe_chroma_for_lh(L, H)
  if (L > 99.9999999) then
    local rtn = {H, 0, 100}
    return rtn
  else
  end
  if (L < 1e-08) then
    local rtn = {H, 0, 0}
    return rtn
  else
  end
  return {H, ((C / max_chroma) * 100), L}
end
local function hsluv__3elch(tuple)
  local H = tuple[1]
  local S = tuple[2]
  local L = tuple[3]
  if (L > 99.9999999) then
    local rtn = {100, 0, H}
    return rtn
  else
  end
  if (L < 1e-08) then
    local rtn = {0, 0, H}
    return rtn
  else
  end
  return {L, ((max_safe_chroma_for_lh(L, H) / 100) * S), H}
end
local function rgb__3elch(tuple)
  return luv__3elch(xyz__3eluv(rgb__3exyz(tuple)))
end
local function lch__3ergb(tuple)
  return xyz__3ergb(luv__3exyz(lch__3eluv(tuple)))
end
local function rgb__3ehsluv(tuple)
  return lch__3ehsluv(rgb__3elch(tuple))
end
local function hsluv__3ergb(tuple)
  return lch__3ergb(hsluv__3elch(tuple))
end
local function hex__3ehsluv(s)
  return rgb__3ehsluv(hex__3ergb(s))
end
local function hsluv__3ehex(tuple)
  return rgb__3ehex(hsluv__3ergb(tuple))
end
local function transform_h(c, f)
  return {f(c[1]), c[2], c[3]}
end
local function transform_s(c, f)
  return {c[1], f(c[2]), c[3]}
end
local function transform_l(c, f)
  return {c[1], c[2], f(c[3])}
end
local function linear_tween(start, stop)
  local function _16_(i)
    return (start + (i * (stop - start)))
  end
  return _16_
end
local function radial_tween(x, y)
  local start = math.rad(x)
  local stop = math.rad(y)
  local delta = math.atan2(math.sin((stop - start)), math.cos((stop - start)))
  local function _17_(i)
    return ((360 + math.deg((start + (delta * i)))) % 360)
  end
  return _17_
end
local function blend_hsluv(start, stop, ratio)
  local ratio0 = (ratio or 0.5)
  local h = radial_tween(start[1], stop[1])
  local s = linear_tween(start[2], stop[2])
  local l = linear_tween(start[3], stop[3])
  return {h(ratio0), s(ratio0), l(ratio0)}
end
local function lighten(c, n)
  local l = linear_tween(c[3], 100)
  return {c[1], c[2], l(n)}
end
local function darken(c, n)
  local l = linear_tween(c[3], 0)
  return {c[1], c[2], l(n)}
end
local function saturate(c, n)
  local s = linear_tween(c[2], 100)
  return {c[1], s(n), c[3]}
end
local function desaturate(c, n)
  local s = linear_tween(c[2], 0)
  return {c[1], s(n), c[3]}
end
local function rotate(c, n)
  return {((n + c[1]) % 360), c[2], c[3]}
end
local function blend_hex(c1, c2, r)
  return hsluv__3ehex(blend_hsluv(hex__3ehsluv(c1), hex__3ehsluv(c2), r))
end
local function lighten_hex(c, n)
  return hsluv__3ehex(lighten(hex__3ehsluv(c), n))
end
local function darken_hex(c, n)
  return hsluv__3ehex(darken(hex__3ehsluv(c), n))
end
local function saturate_hex(c, n)
  return hsluv__3ehex(saturate(hex__3ehsluv(c), n))
end
local function desaturate_hex(c, n)
  return hsluv__3ehex(desaturate(hex__3ehsluv(c), n))
end
local function rotate_hex(c, n)
  return hsluv__3ehex(rotate(hex__3ehsluv(c), n))
end
local function gradient(c1, c2)
  local ls = {}
  for i = 0, 1.01, 0.02 do
    ls = vim.list_extend(ls, {i})
  end
  local function _18_(_241)
    return blend_hex(c1, c2, _241)
  end
  return vim.tbl_map(_18_, ls)
end
local function gradient_n(c1, c2, n)
  local ls = {}
  do
    local step = (1 / (n + 1))
    for i = 1, n, 1 do
      ls = vim.list_extend(ls, {(i * step)})
    end
  end
  local function _19_(_241)
    return blend_hex(c1, c2, _241)
  end
  return vim.list_extend({c1}, vim.tbl_map(_19_, ls), {c2})
end
math.randomseed(os.time())
local function random_color(red_range, green_range, blue_range)
  local rgb = {b = math.random(blue_range[1], blue_range[2]), r = math.random(red_range[1], red_range[2]), g = math.random(green_range[1], green_range[2])}
  return string.format("#%02x%02x%02x", rgb.r, rgb.g, rgb.b)
end
local function generate_pallete()
  local bghex = random_color({0, 63}, {0, 63}, {0, 63})
  local fghex = random_color({240, 255}, {240, 255}, {240, 255})
  local palette = {bghex, blend_hex(bghex, fghex, 0.085), blend_hex(bghex, fghex, 0.18), blend_hex(bghex, fghex, 0.3), blend_hex(bghex, fghex, 0.7), blend_hex(bghex, fghex, 0.82), blend_hex(bghex, fghex, 0.95), fghex}
  local base16_names = {"base00", "base01", "base02", "base03", "base04", "base05", "base06", "base07", "base08", "base09", "base0A", "base0B", "base0C", "base0D", "base0E", "base0F"}
  local base16_palette = {}
  for i, hex in ipairs(palette) do
    local name = (base16_names)[i]
    base16_palette[name] = hex
  end
  return base16_palette
end
return {["blend-hex"] = blend_hex, ["lighten-hex"] = lighten_hex, ["darken-hex"] = darken_hex, ["saturate-hex"] = saturate_hex, ["desaturate-hex"] = desaturate_hex, ["rotate-hex"] = rotate_hex, gradient = gradient, ["gradient-n"] = gradient_n, ["generate-pallete"] = generate_pallete}

================================================
FILE: lua/oxocarbon/init.lua
================================================
local _local_1_ = require("oxocarbon.colorutils")
local blend_hex = _local_1_["blend-hex"]
if vim.g.colors_name then
  vim.cmd.hi("clear")
else
end
vim.g["colors_name"] = "oxocarbon"
vim.o["termguicolors"] = true
local base00 = "#161616"
local base06 = "#ffffff"
local base09 = "#78a9ff"
local oxocarbon = (((vim.o.background == "dark") and {base00 = base00, base01 = blend_hex(base00, base06, 0.085), base02 = blend_hex(base00, base06, 0.18), base03 = blend_hex(base00, base06, 0.3), base04 = blend_hex(base00, base06, 0.82), base05 = blend_hex(base00, base06, 0.95), base06 = base06, base07 = "#08bdba", base08 = "#3ddbd9", base09 = base09, base10 = "#ee5396", base11 = "#33b1ff", base12 = "#ff7eb6", base13 = "#42be65", base14 = "#be95ff", base15 = "#82cfff", blend = "#131313", none = "NONE"}) or {base00 = base06, base01 = blend_hex(base00, base06, 0.95), base02 = blend_hex(base00, base06, 0.82), base03 = base00, base04 = "#37474F", base05 = "#90A4AE", base06 = "#525252", base07 = "#08bdba", base08 = "#ff7eb6", base09 = "#ee5396", base10 = "#FF6F00", base11 = "#0f62fe", base12 = "#673AB7", base13 = "#42be65", base14 = "#be95ff", base15 = "#FFAB91", blend = "#FAFAFA", none = "NONE"})
vim.g["terminal_color_0"] = oxocarbon.base01
vim.g["terminal_color_1"] = oxocarbon.base11
vim.g["terminal_color_2"] = oxocarbon.base14
vim.g["terminal_color_3"] = oxocarbon.base13
vim.g["terminal_color_4"] = oxocarbon.base09
vim.g["terminal_color_5"] = oxocarbon.base15
vim.g["terminal_color_6"] = oxocarbon.base08
vim.g["terminal_color_7"] = oxocarbon.base05
vim.g["terminal_color_8"] = oxocarbon.base03
vim.g["terminal_color_9"] = oxocarbon.base11
vim.g["terminal_color_10"] = oxocarbon.base14
vim.g["terminal_color_11"] = oxocarbon.base13
vim.g["terminal_color_12"] = oxocarbon.base09
vim.g["terminal_color_13"] = oxocarbon.base15
vim.g["terminal_color_14"] = oxocarbon.base07
vim.g["terminal_color_15"] = oxocarbon.base06
vim.api.nvim_set_hl(0, "ColorColumn", {fg = oxocarbon.none, bg = oxocarbon.base01})
vim.api.nvim_set_hl(0, "Cursor", {fg = oxocarbon.base00, bg = oxocarbon.base04})
vim.api.nvim_set_hl(0, "CursorLine", {fg = oxocarbon.none, bg = oxocarbon.base01})
vim.api.nvim_set_hl(0, "CursorColumn", {fg = oxocarbon.none, bg = oxocarbon.base01})
vim.api.nvim_set_hl(0, "CursorLineNr", {fg = oxocarbon.base04, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "QuickFixLine", {fg = oxocarbon.none, bg = oxocarbon.base01})
vim.api.nvim_set_hl(0, "Error", {fg = oxocarbon.base10, bg = oxocarbon.base01})
vim.api.nvim_set_hl(0, "LineNr", {fg = oxocarbon.base03, bg = oxocarbon.base00})
vim.api.nvim_set_hl(0, "NonText", {fg = oxocarbon.base02, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "Normal", {fg = oxocarbon.base04, bg = oxocarbon.base00})
vim.api.nvim_set_hl(0, "Pmenu", {fg = oxocarbon.base04, bg = oxocarbon.base01})
vim.api.nvim_set_hl(0, "PmenuSbar", {fg = oxocarbon.base04, bg = oxocarbon.base01})
vim.api.nvim_set_hl(0, "PmenuSel", {fg = oxocarbon.base08, bg = oxocarbon.base02})
vim.api.nvim_set_hl(0, "PmenuThumb", {fg = oxocarbon.base08, bg = oxocarbon.base02})
vim.api.nvim_set_hl(0, "SpecialKey", {fg = oxocarbon.base03, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "Visual", {fg = oxocarbon.none, bg = oxocarbon.base02})
vim.api.nvim_set_hl(0, "VisualNOS", {fg = oxocarbon.none, bg = oxocarbon.base02})
vim.api.nvim_set_hl(0, "TooLong", {fg = oxocarbon.none, bg = oxocarbon.base02})
vim.api.nvim_set_hl(0, "Debug", {fg = oxocarbon.base13, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "Macro", {fg = oxocarbon.base07, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "MatchParen", {fg = oxocarbon.none, bg = oxocarbon.base02, underline = true})
vim.api.nvim_set_hl(0, "Bold", {fg = oxocarbon.none, bg = oxocarbon.none, bold = true})
vim.api.nvim_set_hl(0, "Italic", {fg = oxocarbon.none, bg = oxocarbon.none, italic = true})
vim.api.nvim_set_hl(0, "Underlined", {fg = oxocarbon.none, bg = oxocarbon.none, underline = true})
vim.api.nvim_set_hl(0, "DiagnosticWarn", {fg = oxocarbon.base14, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "DiagnosticError", {fg = oxocarbon.base10, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "DiagnosticInfo", {fg = oxocarbon.base09, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "DiagnosticHint", {fg = oxocarbon.base04, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "DiagnosticUnderlineWarn", {fg = oxocarbon.base14, bg = oxocarbon.none, undercurl = true})
vim.api.nvim_set_hl(0, "DiagnosticUnderlineError", {fg = oxocarbon.base10, bg = oxocarbon.none, undercurl = true})
vim.api.nvim_set_hl(0, "DiagnosticUnderlineInfo", {fg = oxocarbon.base04, bg = oxocarbon.none, undercurl = true})
vim.api.nvim_set_hl(0, "DiagnosticUnderlineHint", {fg = oxocarbon.base04, bg = oxocarbon.none, undercurl = true})
vim.api.nvim_set_hl(0, "HealthError", {fg = oxocarbon.base10, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "HealthWarning", {fg = oxocarbon.base14, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "HealthSuccess", {fg = oxocarbon.base13, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "@comment", {link = "Comment"})
vim.api.nvim_set_hl(0, "@text.literal.commodity", {fg = oxocarbon.base13, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "@number", {fg = oxocarbon.base09, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "@number.date", {fg = oxocarbon.base08, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "@number.date.effective", {fg = oxocarbon.base13, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "@number.interval", {fg = oxocarbon.base09, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "@number.status", {fg = oxocarbon.base12, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "@number.quantity", {fg = oxocarbon.base11, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "@number.quantity.negative", {fg = oxocarbon.base10, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "LspCodeLens", {fg = oxocarbon.none, bg = oxocarbon.base03})
vim.api.nvim_set_hl(0, "LspReferenceText", {fg = oxocarbon.none, bg = oxocarbon.base03})
vim.api.nvim_set_hl(0, "LspReferenceread", {fg = oxocarbon.none, bg = oxocarbon.base03})
vim.api.nvim_set_hl(0, "LspReferenceWrite", {fg = oxocarbon.none, bg = oxocarbon.base03})
vim.api.nvim_set_hl(0, "LspSignatureActiveParameter", {fg = oxocarbon.base08, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "@lsp.type.class", {link = "Structure"})
vim.api.nvim_set_hl(0, "@lsp.type.decorator", {link = "Decorator"})
vim.api.nvim_set_hl(0, "@lsp.type.decorator.markdown", {link = "Structure"})
vim.api.nvim_set_hl(0, "@lsp.type.function", {link = "@function"})
vim.api.nvim_set_hl(0, "@lsp.type.macro", {link = "Macro"})
vim.api.nvim_set_hl(0, "@lsp.type.method", {link = "@function"})
vim.api.nvim_set_hl(0, "@lsp.type.struct", {link = "Structure"})
vim.api.nvim_set_hl(0, "@lsp.type.type", {link = "Type"})
vim.api.nvim_set_hl(0, "@lsp.type.typeParameter", {link = "Typedef"})
vim.api.nvim_set_hl(0, "@lsp.type.selfParameter", {link = "@variable.builtin"})
vim.api.nvim_set_hl(0, "@lsp.type.builtinConstant", {link = "@constant.builtin"})
vim.api.nvim_set_hl(0, "@lsp.type.magicFunction", {link = "@function.builtin"})
vim.api.nvim_set_hl(0, "@lsp.type.boolean", {link = "@boolean"})
vim.api.nvim_set_hl(0, "@lsp.type.builtinType", {link = "@type.builtin"})
vim.api.nvim_set_hl(0, "@lsp.type.comment", {link = "@comment"})
vim.api.nvim_set_hl(0, "@lsp.type.enum", {link = "@type"})
vim.api.nvim_set_hl(0, "@lsp.type.enumMember", {link = "@constant"})
vim.api.nvim_set_hl(0, "@lsp.type.escapeSequence", {link = "@string.escape"})
vim.api.nvim_set_hl(0, "@lsp.type.formatSpecifier", {link = "@punctuation.special"})
vim.api.nvim_set_hl(0, "@lsp.type.keyword", {link = "@keyword"})
vim.api.nvim_set_hl(0, "@lsp.type.namespace", {link = "@namespace"})
vim.api.nvim_set_hl(0, "@lsp.type.number", {link = "@number"})
vim.api.nvim_set_hl(0, "@lsp.type.operator", {link = "@operator"})
vim.api.nvim_set_hl(0, "@lsp.type.parameter", {link = "@parameter"})
vim.api.nvim_set_hl(0, "@lsp.type.property", {link = "@property"})
vim.api.nvim_set_hl(0, "@lsp.type.selfKeyword", {link = "@variable.builtin"})
vim.api.nvim_set_hl(0, "@lsp.type.string.rust", {link = "@string"})
vim.api.nvim_set_hl(0, "@lsp.type.typeAlias", {link = "@type.definition"})
vim.api.nvim_set_hl(0, "@lsp.type.unresolvedReference", {link = "Error"})
vim.api.nvim_set_hl(0, "@lsp.type.variable", {link = "@variable"})
vim.api.nvim_set_hl(0, "@lsp.mod.readonly", {link = "@constant"})
vim.api.nvim_set_hl(0, "@lsp.mod.typeHint", {link = "Type"})
vim.api.nvim_set_hl(0, "@lsp.mod.builtin", {link = "Special"})
vim.api.nvim_set_hl(0, "@lsp.typemod.class.defaultLibrary", {link = "@type.builtin"})
vim.api.nvim_set_hl(0, "@lsp.typemod.enum.defaultLibrary", {link = "@type.builtin"})
vim.api.nvim_set_hl(0, "@lsp.typemod.enumMember.defaultLibrary", {link = "@constant.builtin"})
vim.api.nvim_set_hl(0, "@lsp.typemod.function.defaultLibrary", {link = "@function.builtin"})
vim.api.nvim_set_hl(0, "@lsp.typemod.keyword.async", {link = "@keyword.coroutine"})
vim.api.nvim_set_hl(0, "@lsp.typemod.macro.defaultLibrary", {link = "@function.builtin"})
vim.api.nvim_set_hl(0, "@lsp.typemod.method.defaultLibrary", {link = "@function.builtin"})
vim.api.nvim_set_hl(0, "@lsp.typemod.operator.injected", {link = "@operator"})
vim.api.nvim_set_hl(0, "@lsp.typemod.string.injected", {link = "@string"})
vim.api.nvim_set_hl(0, "@lsp.typemod.operator.controlFlow", {link = "@exception"})
vim.api.nvim_set_hl(0, "@lsp.typemod.keyword.documentation", {link = "Special"})
vim.api.nvim_set_hl(0, "@lsp.typemod.variable.global", {link = "@constant"})
vim.api.nvim_set_hl(0, "@lsp.typemod.variable.static", {link = "@constant"})
vim.api.nvim_set_hl(0, "@lsp.typemod.variable.defaultLibrary", {link = "Special"})
vim.api.nvim_set_hl(0, "@lsp.typemod.function.builtin", {link = "@function.builtin"})
vim.api.nvim_set_hl(0, "@lsp.typemod.function.readonly", {link = "@method"})
vim.api.nvim_set_hl(0, "@lsp.typemod.variable.defaultLibrary", {link = "@variable.builtin"})
vim.api.nvim_set_hl(0, "@lsp.typemod.variable.injected", {link = "@variable"})
vim.api.nvim_set_hl(0, "Folded", {fg = oxocarbon.base02, bg = oxocarbon.base01})
vim.api.nvim_set_hl(0, "FoldColumn", {fg = oxocarbon.base01, bg = oxocarbon.base00})
vim.api.nvim_set_hl(0, "SignColumn", {fg = oxocarbon.base01, bg = oxocarbon.base00})
vim.api.nvim_set_hl(0, "Directory", {fg = oxocarbon.base08, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "EndOfBuffer", {fg = oxocarbon.base01, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "ErrorMsg", {fg = oxocarbon.base10, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "ModeMsg", {fg = oxocarbon.base04, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "MoreMsg", {fg = oxocarbon.base08, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "Question", {fg = oxocarbon.base04, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "Substitute", {fg = oxocarbon.base01, bg = oxocarbon.base08})
vim.api.nvim_set_hl(0, "WarningMsg", {fg = oxocarbon.base14, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "WildMenu", {fg = oxocarbon.base08, bg = oxocarbon.base01})
vim.api.nvim_set_hl(0, "helpHyperTextJump", {fg = oxocarbon.base08, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "helpSpecial", {fg = oxocarbon.base09, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "helpHeadline", {fg = oxocarbon.base10, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "helpHeader", {fg = oxocarbon.base15, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "DiffAdded", {fg = oxocarbon.base07, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "DiffChanged", {fg = oxocarbon.base09, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "DiffRemoved", {fg = oxocarbon.base10, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "DiffAdd", {bg = "#122f2f", fg = oxocarbon.none})
vim.api.nvim_set_hl(0, "DiffChange", {bg = "#222a39", fg = oxocarbon.none})
vim.api.nvim_set_hl(0, "DiffText", {bg = "#2f3f5c", fg = oxocarbon.none})
vim.api.nvim_set_hl(0, "DiffDelete", {bg = "#361c28", fg = oxocarbon.none})
vim.api.nvim_set_hl(0, "IncSearch", {fg = oxocarbon.base06, bg = oxocarbon.base10})
vim.api.nvim_set_hl(0, "Search", {fg = oxocarbon.base01, bg = oxocarbon.base08})
vim.api.nvim_set_hl(0, "TabLine", {link = "StatusLineNC"})
vim.api.nvim_set_hl(0, "TabLineFill", {link = "TabLine"})
vim.api.nvim_set_hl(0, "TabLineSel", {link = "StatusLine"})
vim.api.nvim_set_hl(0, "Title", {fg = oxocarbon.base04, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "VertSplit", {fg = oxocarbon.base01, bg = oxocarbon.base00})
vim.api.nvim_set_hl(0, "WinSeparator", {fg = oxocarbon.base01, bg = oxocarbon.base00})
vim.api.nvim_set_hl(0, "Boolean", {fg = oxocarbon.base09, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "Character", {fg = oxocarbon.base14, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "Comment", {fg = oxocarbon.base03, bg = oxocarbon.none, italic = true})
vim.api.nvim_set_hl(0, "Conceal", {fg = oxocarbon.none, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "Conditional", {fg = oxocarbon.base09, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "Constant", {fg = oxocarbon.base04, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "Decorator", {fg = oxocarbon.base12, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "Define", {fg = oxocarbon.base09, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "Delimeter", {fg = oxocarbon.base06, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "Exception", {fg = oxocarbon.base09, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "Float", {link = "Number"})
vim.api.nvim_set_hl(0, "Function", {fg = oxocarbon.base08, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "Identifier", {fg = oxocarbon.base04, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "Include", {fg = oxocarbon.base09, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "Keyword", {fg = oxocarbon.base09, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "Label", {fg = oxocarbon.base09, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "Number", {fg = oxocarbon.base15, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "Operator", {fg = oxocarbon.base09, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "PreProc", {fg = oxocarbon.base09, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "Repeat", {fg = oxocarbon.base09, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "Special", {fg = oxocarbon.base04, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "SpecialChar", {fg = oxocarbon.base04, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "SpecialComment", {fg = oxocarbon.base08, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "Statement", {fg = oxocarbon.base09, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "StorageClass", {fg = oxocarbon.base09, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "String", {fg = oxocarbon.base14, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "Structure", {fg = oxocarbon.base09, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "Tag", {fg = oxocarbon.base04, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "Todo", {fg = oxocarbon.base13, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "Type", {fg = oxocarbon.base09, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "Typedef", {fg = oxocarbon.base09, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "markdownBlockquote", {fg = oxocarbon.base08, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "markdownBold", {link = "Bold"})
vim.api.nvim_set_hl(0, "markdownItalic", {link = "Italic"})
vim.api.nvim_set_hl(0, "markdownBoldItalic", {fg = oxocarbon.none, bg = oxocarbon.none, bold = true, italic = true})
vim.api.nvim_set_hl(0, "markdownRule", {link = "Comment"})
vim.api.nvim_set_hl(0, "markdownH1", {fg = oxocarbon.base10, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "markdownH2", {link = "markdownH1"})
vim.api.nvim_set_hl(0, "markdownH3", {link = "markdownH1"})
vim.api.nvim_set_hl(0, "markdownH4", {link = "markdownH1"})
vim.api.nvim_set_hl(0, "markdownH5", {link = "markdownH1"})
vim.api.nvim_set_hl(0, "markdownH6", {link = "markdownH1"})
vim.api.nvim_set_hl(0, "markdownHeadingDelimiter", {link = "markdownH1"})
vim.api.nvim_set_hl(0, "markdownHeadingRule", {link = "markdownH1"})
vim.api.nvim_set_hl(0, "markdownUrl", {fg = oxocarbon.base14, bg = oxocarbon.none, underline = true})
vim.api.nvim_set_hl(0, "markdownCode", {link = "String"})
vim.api.nvim_set_hl(0, "markdownCodeBlock", {link = "markdownCode"})
vim.api.nvim_set_hl(0, "markdownCodeDelimiter", {link = "markdownCode"})
vim.api.nvim_set_hl(0, "markdownUrl", {link = "String"})
vim.api.nvim_set_hl(0, "markdownListMarker", {fg = oxocarbon.base08, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "markdownOrderedListMarker", {fg = oxocarbon.base08, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "@markup", {link = "@none"})
vim.api.nvim_set_hl(0, "@markup.environment", {link = "Macro"})
vim.api.nvim_set_hl(0, "@markup.environment.name", {link = "Type"})
vim.api.nvim_set_hl(0, "@markup.emphasis", {italic = true})
vim.api.nvim_set_hl(0, "@markup.italic", {italic = true})
vim.api.nvim_set_hl(0, "@markup.strikethrough", {strikethrough = true})
vim.api.nvim_set_hl(0, "@markup.strong", {bold = true})
vim.api.nvim_set_hl(0, "@markup.underline", {underline = true})
vim.api.nvim_set_hl(0, "@markup.heading", {link = "Title"})
vim.api.nvim_set_hl(0, "@markup.heading.marker", {link = "markdownHeadingDelimiter"})
vim.api.nvim_set_hl(0, "@markup.heading.1.markdown", {link = "markdownH1"})
vim.api.nvim_set_hl(0, "@markup.heading.2.markdown", {link = "markdownH1"})
vim.api.nvim_set_hl(0, "@markup.heading.3.markdown", {link = "markdownH1"})
vim.api.nvim_set_hl(0, "@markup.heading.4.markdown", {link = "markdownH1"})
vim.api.nvim_set_hl(0, "@markup.heading.5.markdown", {link = "markdownH1"})
vim.api.nvim_set_hl(0, "@markup.heading.6.markdown", {link = "markdownH1"})
vim.api.nvim_set_hl(0, "@markup.heading.7.markdown", {link = "markdownH1"})
vim.api.nvim_set_hl(0, "@markup.heading.8.markdown", {link = "markdownH1"})
vim.api.nvim_set_hl(0, "@markup.link", {link = "markdownUrl"})
vim.api.nvim_set_hl(0, "@markup.link.label", {underline = true})
vim.api.nvim_set_hl(0, "@markup.link.label.symbol", {link = "markdownItalic"})
vim.api.nvim_set_hl(0, "@markup.link.label.markdown_inline", {link = "markdownItalic"})
vim.api.nvim_set_hl(0, "@markup.link.title", {link = "Title"})
vim.api.nvim_set_hl(0, "@markup.link.url", {link = "markdownUrl"})
vim.api.nvim_set_hl(0, "@markup.link.destination", {link = "markdownUrl"})
vim.api.nvim_set_hl(0, "@markup.link.description", {fg = oxocarbon.blend, underline = true, italic = true})
vim.api.nvim_set_hl(0, "@markup.list", {link = "markdownListMarker"})
vim.api.nvim_set_hl(0, "@markup.list.bullet", {link = "markdownListMarker"})
vim.api.nvim_set_hl(0, "@markup.list.checked", {link = "markdownListMarker"})
vim.api.nvim_set_hl(0, "@markup.list.markdown", {link = "markdownListMarker"})
vim.api.nvim_set_hl(0, "@markup.list.ordered", {link = "markdownOrderedListMarker"})
vim.api.nvim_set_hl(0, "@markup.list.unchecked", {link = "markdownListMarker"})
vim.api.nvim_set_hl(0, "@markup.math", {link = "Special"})
vim.api.nvim_set_hl(0, "@markup.raw", {link = "String"})
vim.api.nvim_set_hl(0, "@markup.raw.markdown_inline", {link = "String"})
vim.api.nvim_set_hl(0, "@markup.quote", {link = "markdownBlockquote"})
vim.api.nvim_set_hl(0, "@markup.literal", {link = "markdownCode"})
vim.api.nvim_set_hl(0, "@markup.code.block", {link = "markdownCodeBlock"})
vim.api.nvim_set_hl(0, "@markup.rule", {link = "Comment"})
vim.api.nvim_set_hl(0, "asciidocAttributeEntry", {fg = oxocarbon.base15, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "asciidocAttributeList", {link = "asciidocAttributeEntry"})
vim.api.nvim_set_hl(0, "asciidocAttributeRef", {link = "asciidocAttributeEntry"})
vim.api.nvim_set_hl(0, "asciidocHLabel", {link = "markdownH1"})
vim.api.nvim_set_hl(0, "asciidocOneLineTitle", {link = "markdownH1"})
vim.api.nvim_set_hl(0, "asciidocQuotedMonospaced", {link = "markdownBlockquote"})
vim.api.nvim_set_hl(0, "asciidocURL", {link = "markdownUrl"})
vim.api.nvim_set_hl(0, "@comment", {link = "Comment"})
vim.api.nvim_set_hl(0, "@error", {fg = oxocarbon.base11, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "@operator", {link = "Operator"})
vim.api.nvim_set_hl(0, "@punctuation.delimiter", {fg = oxocarbon.base08, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "@punctuation.bracket", {fg = oxocarbon.base08, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "@punctuation.special", {fg = oxocarbon.base08, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "@string", {link = "String"})
vim.api.nvim_set_hl(0, "@string.regex", {fg = oxocarbon.base07, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "@string.escape", {fg = oxocarbon.base15, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "@character", {link = "Character"})
vim.api.nvim_set_hl(0, "@boolean", {link = "Boolean"})
vim.api.nvim_set_hl(0, "@number", {link = "Number"})
vim.api.nvim_set_hl(0, "@float", {link = "Float"})
vim.api.nvim_set_hl(0, "@function", {fg = oxocarbon.base12, bg = oxocarbon.none, bold = true})
vim.api.nvim_set_hl(0, "@function.builtin", {fg = oxocarbon.base12, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "@function.macro", {fg = oxocarbon.base07, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "@method", {fg = oxocarbon.base07, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "@constructor", {fg = oxocarbon.base09, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "@parameter", {fg = oxocarbon.base04, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "@keyword", {fg = oxocarbon.base09, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "@keyword.function", {fg = oxocarbon.base08, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "@keyword.operator", {fg = oxocarbon.base08, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "@conditional", {fg = oxocarbon.base09, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "@repeat", {fg = oxocarbon.base09, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "@label", {fg = oxocarbon.base15, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "@include", {fg = oxocarbon.base09, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "@exception", {fg = oxocarbon.base15, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "@type", {link = "Type"})
vim.api.nvim_set_hl(0, "@type.builtin", {link = "Type"})
vim.api.nvim_set_hl(0, "@attribute", {fg = oxocarbon.base15, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "@field", {fg = oxocarbon.base04, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "@property", {fg = oxocarbon.base10, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "@variable", {fg = oxocarbon.base04, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "@variable.builtin", {fg = oxocarbon.base04, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "@constant", {fg = oxocarbon.base14, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "@constant.builtin", {fg = oxocarbon.base07, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "@constant.macro", {fg = oxocarbon.base07, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "@namespace", {fg = oxocarbon.base07, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "@symbol", {fg = oxocarbon.base15, bg = oxocarbon.none, bold = true})
vim.api.nvim_set_hl(0, "@text", {fg = oxocarbon.base04, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "@text.strong", {fg = oxocarbon.none, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "@text.emphasis", {fg = oxocarbon.base10, bg = oxocarbon.none, bold = true})
vim.api.nvim_set_hl(0, "@text.underline", {fg = oxocarbon.base10, bg = oxocarbon.none, underline = true})
vim.api.nvim_set_hl(0, "@text.strike", {fg = oxocarbon.base10, bg = oxocarbon.none, strikethrough = true})
vim.api.nvim_set_hl(0, "@text.title", {fg = oxocarbon.base10, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "@text.literal", {fg = oxocarbon.base04, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "@text.uri", {fg = oxocarbon.base14, bg = oxocarbon.none, underline = true})
vim.api.nvim_set_hl(0, "@tag", {fg = oxocarbon.base09, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "@tag.attribute", {fg = oxocarbon.base15, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "@tag.delimiter", {fg = oxocarbon.base15, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "@tag.builtin.tsx", {link = "@tag.tsx"})
vim.api.nvim_set_hl(0, "@reference", {fg = oxocarbon.base04, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "NvimInternalError", {fg = oxocarbon.base00, bg = oxocarbon.base08})
vim.api.nvim_set_hl(0, "NormalFloat", {fg = oxocarbon.base05, bg = oxocarbon.blend})
vim.api.nvim_set_hl(0, "FloatBorder", {fg = oxocarbon.blend, bg = oxocarbon.blend})
vim.api.nvim_set_hl(0, "NormalNC", {fg = oxocarbon.base04, bg = oxocarbon.base00})
vim.api.nvim_set_hl(0, "TermCursor", {fg = oxocarbon.base00, bg = oxocarbon.base04})
vim.api.nvim_set_hl(0, "TermCursorNC", {fg = oxocarbon.base00, bg = oxocarbon.base04})
vim.api.nvim_set_hl(0, "StatusLine", {fg = oxocarbon.base04, bg = oxocarbon.base00})
vim.api.nvim_set_hl(0, "StatusLineNC", {fg = oxocarbon.base04, bg = oxocarbon.base01})
vim.api.nvim_set_hl(0, "StatusReplace", {fg = oxocarbon.base00, bg = oxocarbon.base08})
vim.api.nvim_set_hl(0, "StatusInsert", {fg = oxocarbon.base00, bg = oxocarbon.base12})
vim.api.nvim_set_hl(0, "StatusVisual", {fg = oxocarbon.base00, bg = oxocarbon.base14})
vim.api.nvim_set_hl(0, "StatusTerminal", {fg = oxocarbon.base00, bg = oxocarbon.base11})
vim.api.nvim_set_hl(0, "StatusNormal", {fg = oxocarbon.base00, bg = oxocarbon.base15})
vim.api.nvim_set_hl(0, "StatusCommand", {fg = oxocarbon.base00, bg = oxocarbon.base13})
vim.api.nvim_set_hl(0, "StatusLineDiagnosticWarn", {fg = oxocarbon.base14, bg = oxocarbon.base00, bold = true})
vim.api.nvim_set_hl(0, "StatusLineDiagnosticError", {fg = oxocarbon.base10, bg = oxocarbon.base00, bold = true})
vim.api.nvim_set_hl(0, "TelescopeBorder", {fg = oxocarbon.blend, bg = oxocarbon.blend})
vim.api.nvim_set_hl(0, "TelescopePromptBorder", {fg = oxocarbon.base02, bg = oxocarbon.base02})
vim.api.nvim_set_hl(0, "TelescopePromptNormal", {fg = oxocarbon.base05, bg = oxocarbon.base02})
vim.api.nvim_set_hl(0, "TelescopePromptPrefix", {fg = oxocarbon.base08, bg = oxocarbon.base02})
vim.api.nvim_set_hl(0, "TelescopeNormal", {fg = oxocarbon.none, bg = oxocarbon.blend})
vim.api.nvim_set_hl(0, "TelescopePreviewTitle", {fg = oxocarbon.base02, bg = oxocarbon.base12})
vim.api.nvim_set_hl(0, "TelescopePromptTitle", {fg = oxocarbon.base02, bg = oxocarbon.base11})
vim.api.nvim_set_hl(0, "TelescopeResultsTitle", {fg = oxocarbon.blend, bg = oxocarbon.blend})
vim.api.nvim_set_hl(0, "TelescopeSelection", {fg = oxocarbon.none, bg = oxocarbon.base02})
vim.api.nvim_set_hl(0, "TelescopePreviewLine", {fg = oxocarbon.none, bg = oxocarbon.base01})
vim.api.nvim_set_hl(0, "TelescopeMatching", {fg = oxocarbon.base08, bg = oxocarbon.none, bold = true, italic = true})
vim.api.nvim_set_hl(0, "NotifyERRORBorder", {fg = oxocarbon.base08, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "NotifyWARNBorder", {fg = oxocarbon.base14, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "NotifyINFOBorder", {fg = oxocarbon.base05, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "NotifyDEBUGBorder", {fg = oxocarbon.base13, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "NotifyTRACEBorder", {fg = oxocarbon.base13, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "NotifyERRORIcon", {fg = oxocarbon.base08, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "NotifyWARNIcon", {fg = oxocarbon.base14, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "NotifyINFOIcon", {fg = oxocarbon.base05, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "NotifyDEBUGIcon", {fg = oxocarbon.base13, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "NotifyTRACEIcon", {fg = oxocarbon.base13, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "NotifyERRORTitle", {fg = oxocarbon.base08, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "NotifyWARNTitle", {fg = oxocarbon.base14, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "NotifyINFOTitle", {fg = oxocarbon.base05, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "NotifyDEBUGTitle", {fg = oxocarbon.base13, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "NotifyTRACETitle", {fg = oxocarbon.base13, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "CmpItemAbbr", {fg = "#adadad", bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "CmpItemAbbrMatch", {fg = oxocarbon.base05, bg = oxocarbon.none, bold = true})
vim.api.nvim_set_hl(0, "CmpItemAbbrMatchFuzzy", {fg = oxocarbon.base04, bg = oxocarbon.none, bold = true})
vim.api.nvim_set_hl(0, "CmpItemMenu", {fg = oxocarbon.base04, bg = oxocarbon.none, italic = true})
vim.api.nvim_set_hl(0, "CmpItemKindInterface", {fg = oxocarbon.base01, bg = oxocarbon.base08})
vim.api.nvim_set_hl(0, "CmpItemKindColor", {fg = oxocarbon.base01, bg = oxocarbon.base08})
vim.api.nvim_set_hl(0, "CmpItemKindTypeParameter", {fg = oxocarbon.base01, bg = oxocarbon.base08})
vim.api.nvim_set_hl(0, "CmpItemKindText", {fg = oxocarbon.base01, bg = oxocarbon.base09})
vim.api.nvim_set_hl(0, "CmpItemKindEnum", {fg = oxocarbon.base01, bg = oxocarbon.base09})
vim.api.nvim_set_hl(0, "CmpItemKindKeyword", {fg = oxocarbon.base01, bg = oxocarbon.base09})
vim.api.nvim_set_hl(0, "CmpItemKindConstant", {fg = oxocarbon.base01, bg = oxocarbon.base10})
vim.api.nvim_set_hl(0, "CmpItemKindConstructor", {fg = oxocarbon.base01, bg = oxocarbon.base10})
vim.api.nvim_set_hl(0, "CmpItemKindReference", {fg = oxocarbon.base01, bg = oxocarbon.base10})
vim.api.nvim_set_hl(0, "CmpItemKindFunction", {fg = oxocarbon.base01, bg = oxocarbon.base11})
vim.api.nvim_set_hl(0, "CmpItemKindStruct", {fg = oxocarbon.base01, bg = oxocarbon.base11})
vim.api.nvim_set_hl(0, "CmpItemKindClass", {fg = oxocarbon.base01, bg = oxocarbon.base11})
vim.api.nvim_set_hl(0, "CmpItemKindModule", {fg = oxocarbon.base01, bg = oxocarbon.base11})
vim.api.nvim_set_hl(0, "CmpItemKindOperator", {fg = oxocarbon.base01, bg = oxocarbon.base11})
vim.api.nvim_set_hl(0, "CmpItemKindField", {fg = oxocarbon.base01, bg = oxocarbon.base12})
vim.api.nvim_set_hl(0, "CmpItemKindProperty", {fg = oxocarbon.base01, bg = oxocarbon.base12})
vim.api.nvim_set_hl(0, "CmpItemKindEvent", {fg = oxocarbon.base01, bg = oxocarbon.base12})
vim.api.nvim_set_hl(0, "CmpItemKindUnit", {fg = oxocarbon.base01, bg = oxocarbon.base13})
vim.api.nvim_set_hl(0, "CmpItemKindSnippet", {fg = oxocarbon.base01, bg = oxocarbon.base13})
vim.api.nvim_set_hl(0, "CmpItemKindFolder", {fg = oxocarbon.base01, bg = oxocarbon.base13})
vim.api.nvim_set_hl(0, "CmpItemKindVariable", {fg = oxocarbon.base01, bg = oxocarbon.base14})
vim.api.nvim_set_hl(0, "CmpItemKindFile", {fg = oxocarbon.base01, bg = oxocarbon.base14})
vim.api.nvim_set_hl(0, "CmpItemKindMethod", {fg = oxocarbon.base01, bg = oxocarbon.base15})
vim.api.nvim_set_hl(0, "CmpItemKindValue", {fg = oxocarbon.base01, bg = oxocarbon.base15})
vim.api.nvim_set_hl(0, "CmpItemKindEnumMember", {fg = oxocarbon.base01, bg = oxocarbon.base15})
vim.api.nvim_set_hl(0, "NvimTreeImageFile", {fg = oxocarbon.base12, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "NvimTreeFolderIcon", {fg = oxocarbon.base12, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "NvimTreeWinSeparator", {fg = oxocarbon.base00, bg = oxocarbon.base00})
vim.api.nvim_set_hl(0, "NvimTreeFolderName", {fg = oxocarbon.base09, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "NvimTreeIndentMarker", {fg = oxocarbon.base02, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "NvimTreeEmptyFolderName", {fg = oxocarbon.base15, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "NvimTreeOpenedFolderName", {fg = oxocarbon.base15, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "NvimTreeNormal", {fg = oxocarbon.base04, bg = oxocarbon.base00})
vim.api.nvim_set_hl(0, "NeogitBranch", {fg = oxocarbon.base10, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "NeogitRemote", {fg = oxocarbon.base09, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "NeogitHunkHeader", {fg = oxocarbon.base04, bg = oxocarbon.base02})
vim.api.nvim_set_hl(0, "NeogitHunkHeaderHighlight", {fg = oxocarbon.base04, bg = oxocarbon.base03})
vim.api.nvim_set_hl(0, "GitSignsCurrentLineBlame", {link = "Comment"})
vim.api.nvim_set_hl(0, "HydraRed", {fg = oxocarbon.base12, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "HydraBlue", {fg = oxocarbon.base09, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "HydraAmaranth", {fg = oxocarbon.base10, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "HydraTeal", {fg = oxocarbon.base08, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "HydraHint", {fg = oxocarbon.none, bg = oxocarbon.blend})
vim.api.nvim_set_hl(0, "alpha1", {fg = oxocarbon.base03, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "alpha2", {fg = oxocarbon.base04, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "alpha3", {fg = oxocarbon.base03, bg = oxocarbon.none})
vim.api.nvim_set_hl(0, "CodeBlock", {fg = oxocarbon.none, bg = oxocarbon.base01})
vim.api.nvim_set_hl(0, "BufferLineDiagnostic", {fg = oxocarbon.base10, bg = oxocarbon.none, bold = true})
vim.api.nvim_set_hl(0, "BufferLineDiagnosticVisible", {fg = oxocarbon.base10, bg = oxocarbon.none, bold = true})
vim.api.nvim_set_hl(0, "htmlH1", {link = "markdownH1"})
vim.api.nvim_set_hl(0, "mkdRule", {link = "markdownRule"})
vim.api.nvim_set_hl(0, "mkdListItem", {link = "markdownListMarker"})
vim.api.nvim_set_hl(0, "mkdListItemCheckbox", {link = "markdownListMarker"})
vim.api.nvim_set_hl(0, "VimwikiHeader1", {link = "markdownH1"})
vim.api.nvim_set_hl(0, "VimwikiHeader2", {link = "markdownH1"})
vim.api.nvim_set_hl(0, "VimwikiHeader3", {link = "markdownH1"})
vim.api.nvim_set_hl(0, "VimwikiHeader4", {link = "markdownH1"})
vim.api.nvim_set_hl(0, "VimwikiHeader5", {link = "markdownH1"})
vim.api.nvim_set_hl(0, "VimwikiHeader6", {link = "markdownH1"})
vim.api.nvim_set_hl(0, "VimwikiHeaderChar", {link = "markdownH1"})
vim.api.nvim_set_hl(0, "VimwikiList", {link = "markdownListMarker"})
vim.api.nvim_set_hl(0, "VimwikiLink", {link = "markdownUrl"})
vim.api.nvim_set_hl(0, "VimwikiCode", {link = "markdownCode"})
vim.api.nvim_set_hl(0, "FlashLabel", {fg = oxocarbon.base05, bg = oxocarbon.base00, bold = true})
return {oxocarbon = oxocarbon}


================================================
FILE: make.fnl
================================================
(let [{: build} (require :hotpot.api.make)
      (oks errs) (build :./fnl {:force? true :atomic? true}
                        [[:**/*.fnl (fn [path] (string.gsub path :fnl :lua))]])]
  (values nil))
Download .txt
gitextract_mdo3ao05/

├── LICENSE
├── Makefile
├── README.md
├── colors/
│   └── oxocarbon.lua
├── fnl/
│   ├── lualine/
│   │   └── themes/
│   │       └── oxocarbon.fnl
│   └── oxocarbon/
│       ├── colorutils.fnl
│       └── init.fnl
├── lua/
│   ├── lualine/
│   │   └── themes/
│   │       └── oxocarbon.lua
│   └── oxocarbon/
│       ├── colorutils.lua
│       └── init.lua
└── make.fnl
Condensed preview — 11 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (101K chars).
[
  {
    "path": "LICENSE",
    "chars": 1075,
    "preview": "MIT License\n\nCopyright (c) 2022 Riccardo Mazzarini\n\nPermission is hereby granted, free of charge, to any person obtainin"
  },
  {
    "path": "Makefile",
    "chars": 74,
    "preview": ".PHONY: all lua \n\nall: lua\n\nlua:\n\tnvim --headless +\"Fnlfile make.fnl\" +qa\n"
  },
  {
    "path": "README.md",
    "chars": 3625,
    "preview": "# oxocarbon.nvim\n\n**Note:** The old rust version can be found on the `rust` branch of this repository\n\n**Oxocarbon is lo"
  },
  {
    "path": "colors/oxocarbon.lua",
    "chars": 101,
    "preview": "-- uncache module to ensure clean reapplication\npackage.loaded.oxocarbon = nil\nrequire [[oxocarbon]]\n"
  },
  {
    "path": "fnl/lualine/themes/oxocarbon.fnl",
    "chars": 1479,
    "preview": "(local oxocarbon (. (require (.. :oxocarbon)) :oxocarbon))\n\n(local colors {:color0 oxocarbon.base02\n               :colo"
  },
  {
    "path": "fnl/oxocarbon/colorutils.fnl",
    "chars": 10204,
    "preview": ";; reimplementation of a subset of hsluv in fennel, along with some utility \n;; functions for saturation, blending, and "
  },
  {
    "path": "fnl/oxocarbon/init.fnl",
    "chars": 35452,
    "preview": ";;                               O X O C A R B O N\n;;        _..._         _..._         _..._         _..._         _.."
  },
  {
    "path": "lua/lualine/themes/oxocarbon.lua",
    "chars": 1171,
    "preview": "local oxocarbon = (require(\"oxocarbon\")).oxocarbon\nlocal colors = {color0 = oxocarbon.base02, color1 = oxocarbon.base10,"
  },
  {
    "path": "lua/oxocarbon/colorutils.lua",
    "chars": 9897,
    "preview": "local hex_chars = \"0123456789abcdef\"\nlocal epsilon = 0.0088564516\nlocal kappa = 903.2962962\nlocal refY = 1\nlocal refU = "
  },
  {
    "path": "lua/oxocarbon/init.lua",
    "chars": 33651,
    "preview": "local _local_1_ = require(\"oxocarbon.colorutils\")\nlocal blend_hex = _local_1_[\"blend-hex\"]\nif vim.g.colors_name then\n  v"
  },
  {
    "path": "make.fnl",
    "chars": 200,
    "preview": "(let [{: build} (require :hotpot.api.make)\n      (oks errs) (build :./fnl {:force? true :atomic? true}\n                 "
  }
]

About this extraction

This page contains the full source code of the shaunsingh/oxocarbon.nvim GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 11 files (94.7 KB), approximately 31.0k tokens. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!