aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEthan Morgan <ethan@gweithio.com>2026-02-14 16:40:16 +0000
committerEthan Morgan <ethan@gweithio.com>2026-02-14 16:40:16 +0000
commitb94eefa6b58f274bb61db4e792105c3959cf2022 (patch)
tree3d2896fb46ebc769e4fea8cf4f02ce3104e1f974
init dotfiles and stuffHEADmaster
-rw-r--r--README.md1
-rw-r--r--bore.vim/.DS_Storebin0 -> 6148 bytes
-rw-r--r--bore.vim/.editorconfig5
-rw-r--r--bore.vim/.gitignore1
-rw-r--r--bore.vim/LICENSE.txt21
-rw-r--r--bore.vim/README.md74
-rw-r--r--bore.vim/colors/bore.vim858
-rw-r--r--bore.vim/images/screenshot.pngbin0 -> 806414 bytes
-rw-r--r--fonts/IoskeleyMono-Bold.ttfbin0 -> 1321668 bytes
-rw-r--r--fonts/IoskeleyMono-BoldItalic.ttfbin0 -> 1398984 bytes
-rw-r--r--fonts/IoskeleyMono-ExtraBold.ttfbin0 -> 1318880 bytes
-rw-r--r--fonts/IoskeleyMono-ExtraBoldItalic.ttfbin0 -> 1395680 bytes
-rw-r--r--fonts/IoskeleyMono-Italic.ttfbin0 -> 1402352 bytes
-rw-r--r--fonts/IoskeleyMono-Light.ttfbin0 -> 1333880 bytes
-rw-r--r--fonts/IoskeleyMono-LightItalic.ttfbin0 -> 1407272 bytes
-rw-r--r--fonts/IoskeleyMono-Medium.ttfbin0 -> 1328296 bytes
-rw-r--r--fonts/IoskeleyMono-MediumItalic.ttfbin0 -> 1402280 bytes
-rw-r--r--fonts/IoskeleyMono-Regular.ttfbin0 -> 1330344 bytes
-rw-r--r--fonts/IoskeleyMono-SemiBold.ttfbin0 -> 1326820 bytes
-rw-r--r--fonts/IoskeleyMono-SemiBoldItalic.ttfbin0 -> 1397224 bytes
-rw-r--r--ghostty/config.txt77
-rw-r--r--meme.jpgbin0 -> 130726 bytes
-rw-r--r--nvim/.DS_Storebin0 -> 8196 bytes
-rw-r--r--nvim/.luarc.json10
-rw-r--r--nvim/after/plugin/autopairs.lua1
-rw-r--r--nvim/after/plugin/fidget.lua83
-rw-r--r--nvim/after/plugin/fugitive.lua1
-rw-r--r--nvim/after/plugin/lsp.lua277
-rw-r--r--nvim/after/plugin/noice.lua30
-rw-r--r--nvim/after/plugin/origami.lua22
-rw-r--r--nvim/after/plugin/telescope.lua14
-rw-r--r--nvim/after/plugin/tree.lua35
-rw-r--r--nvim/after/plugin/treesitter.lua61
-rw-r--r--nvim/after/plugin/undotree.lua1
-rw-r--r--nvim/colors/bore.vim873
-rw-r--r--nvim/colors/minimal-dark.vim110
-rw-r--r--nvim/colors/paige-dark.vim274
-rw-r--r--nvim/colors/paige-system.vim268
-rw-r--r--nvim/colors/paige.vim268
-rw-r--r--nvim/colors/peachpuff-legacy.vim59
-rw-r--r--nvim/ftdetect/astro.lua5
-rw-r--r--nvim/ftdetect/haxe.vim1
-rw-r--r--nvim/init.lua97
-rw-r--r--nvim/lazy-lock.json59
-rw-r--r--nvim/lua/sixfourtwelve/autocmds.lua56
-rw-r--r--nvim/lua/sixfourtwelve/filetype.lua5
-rw-r--r--nvim/lua/sixfourtwelve/init.lua4
-rw-r--r--nvim/lua/sixfourtwelve/knixstatusline.lua73
-rw-r--r--nvim/lua/sixfourtwelve/lazy.lua272
-rw-r--r--nvim/lua/sixfourtwelve/remap.lua22
-rw-r--r--nvim/lua/sixfourtwelve/set.lua30
-rw-r--r--nvim/syntax/haxe.vim427
-rw-r--r--nvim/syntax/jank.vim225
-rw-r--r--tmux/.DS_Storebin0 -> 6148 bytes
-rw-r--r--tmux/.tmux.conf49
-rw-r--r--tmux/bore.tmux52
-rw-r--r--tmux/theme.tmux34
57 files changed, 4835 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..b1a6159
--- /dev/null
+++ b/README.md
@@ -0,0 +1 @@
+![Meme ini bruv](meme.jpg)
diff --git a/bore.vim/.DS_Store b/bore.vim/.DS_Store
new file mode 100644
index 0000000..083af40
--- /dev/null
+++ b/bore.vim/.DS_Store
Binary files differ
diff --git a/bore.vim/.editorconfig b/bore.vim/.editorconfig
new file mode 100644
index 0000000..8e948bf
--- /dev/null
+++ b/bore.vim/.editorconfig
@@ -0,0 +1,5 @@
+root = true
+
+[*.vim]
+indent_size = 2
+indent_style = space \ No newline at end of file
diff --git a/bore.vim/.gitignore b/bore.vim/.gitignore
new file mode 100644
index 0000000..2c2aaa6
--- /dev/null
+++ b/bore.vim/.gitignore
@@ -0,0 +1 @@
+*.un \ No newline at end of file
diff --git a/bore.vim/LICENSE.txt b/bore.vim/LICENSE.txt
new file mode 100644
index 0000000..6db1557
--- /dev/null
+++ b/bore.vim/LICENSE.txt
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2022 Ethan Morgan
+
+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.
diff --git a/bore.vim/README.md b/bore.vim/README.md
new file mode 100644
index 0000000..e861d73
--- /dev/null
+++ b/bore.vim/README.md
@@ -0,0 +1,74 @@
+# Bore
+
+<p align="center">
+ <img src="./images/screenshot.png" alt="Screenshot">
+</p>
+
+<p align="center">
+ <em>Bore is a modern and minimal NeoVim dark theme with bright colors. The theme is based on the great theme <a href="https://github.com/AhmedAbdulrahman/aylin.vim">Aylin Theme</a>. See Credits for a detailed lineage.</em>
+</p>
+
+Note: This relies heavily on Treesitter and will not look exactly as presented without it. Sorry
+
+## Installation
+
+You can install `bore.vim` with whatever package manager you use. For example:
+
+- [Pathogen][vimpathogen]
+- [Vundle][vundle]
+- [NeoBundle][neobundle]
+- [VIM Plug][vimplug]
+
+For example:
+
+- Pathogen
+ - `git clone https://github.com/gweithio/vim-bore.git ~/.vim/bundle/vim-bore`
+- Vundle
+ - Add `Plugin 'gweithio/vim-bore'` to your .vimrc and run `:PluginInstall`
+- NeoBundle
+ - Add `NeoBundle 'gweithio/vim-bore'` to your .vimrc and run `:NeoBundleInstall`
+- vim-plug
+ - Add `Plug 'gweithio/vim-bore'` to your .vimrc and run `:PlugInstall`
+- Vim-8
+ - `git clone https://github.com/gweithio/vim-bore.git ~/.vim/pack/default/start/vim-bore`
+
+> > If you don't use a plugin manager just copy the content of vim/colors/ to ~/.vim/colors.
+
+## Usage
+
+In your Vim `(~/.vimrc)` or Neovim `(.config/nvim/init.vim)` configuration, place the following two lines:
+
+```vim
+set background=dark
+colorscheme bore
+```
+
+### True Colors
+
+To provide the best user experience possible, I recommend enabling true colors. To experience the blissfulness of your editor's true colors, place this in your `.vimrc` or `~/.config/nvim/init.vim` file:
+
+```vim
+if (has("nvim"))
+ "For Neovim 0.1.3 and 0.1.4 < https://github.com/neovim/neovim/pull/2198 >
+ let $NVIM_TUI_ENABLE_TRUE_COLOR=1
+endif
+
+"For Neovim > 0.1.5 and Vim > patch 7.4.1799 < https://github.com/vim/vim/commit/61be73bb0f965a895bfb064ea3e55476ac175162 >
+"Based on Vim patch 7.4.1770 (`guicolors` option) < https://github.com/vim/vim/commit/8a633e3427b47286869aa4b96f2bfc1fe65b25cd >
+" < https://github.com/neovim/neovim/wiki/Following-HEAD#20160511 >
+if (has("termguicolors"))
+ set termguicolors
+endif
+```
+
+## Contributing
+
+All forms of contribution are welcome: bug reports, bug fixes, pull requests and simple suggestions. Thanks!
+
+## Credits
+
+Credit goes to the [Aylin]. I ended up changing colors and their mappings.
+
+## License
+
+MIT License © 2022 Ethan Morgan. See [LICENSE.txt](./LICENSE.txt) for more information.
diff --git a/bore.vim/colors/bore.vim b/bore.vim/colors/bore.vim
new file mode 100644
index 0000000..9f33397
--- /dev/null
+++ b/bore.vim/colors/bore.vim
@@ -0,0 +1,858 @@
+" Vim Color File"
+" Name: bore.vim"
+" Author: Ethan Morgan (@sixfourtwelve)"
+" Maintainer: https://github.com/sixfourtwelve/bore.vim"
+" License: The MIT License (MIT)"
+
+" === Colors ==="
+" --------------------------"
+:let _white = '#ffffff'
+:let _l_white = '#cacadd'
+:let _d_white = '#c8c8db'
+:let _gray_light = '#74778c'
+:let _gray = '#606375'
+:let _gray_dark = '#535560'
+:let _semigray = '#42444b'
+:let _lightblack = '#313e52'
+:let _semiblack = '#262f3e'
+:let _black = '#0e0e0e'
+
+:let _aubergine = '#FD98B9'
+:let _marzipan = '#ecc48d'
+:let _d_turquoise = '#7fdbca'
+:let _l_sky = '#9fd4ff'
+:let _sky = '#6cbeff'
+:let _sap = '#ebff00'
+:let _purple = '#c792ea'
+:let _pink = '#f45c7f'
+:let _green = '#addb67'
+
+" Clear any other set colors"
+highlight clear
+
+if exists("syntax_on")
+ syntax reset
+endif
+
+set t_Co=256
+
+let g:colors_name="bore"
+
+" Not all terminals support italics properly. If yours does, opt-in."
+if !exists("g:bore_terminal_italics")
+ let g:bore_terminal_italics = 0
+endif
+
+" === Functions ==="
+" Returns a darkened color using given color and the percent to darken it by."
+" Example: color_helper#hex_color_darken('#FFFFFF', 0.10)"
+" Returns: '#E5E5E5'"
+
+function! s:hex_color_darken(color, percent)
+ let l:rgb = s:hex_color_to_rgb(a:color)
+ let l:rgb_darkened = []
+
+ for i in l:rgb
+ call add(l:rgb_darkened, float2nr(i * (1 - a:percent)))
+ endfor
+
+ return s:rgb_color_to_hex(l:rgb_darkened)
+endfunction
+
+
+function! s:hex_color_to_rgb(hex_color)
+ let l:rgb = []
+
+ let l:red = s:hex_to_dec(strpart(a:hex_color, 1, 2))
+ let l:green = s:hex_to_dec(strpart(a:hex_color, 3, 2))
+ let l:blue = s:hex_to_dec(strpart(a:hex_color, 5, 2))
+ let l:rgb = [l:red, l:green, l:blue]
+
+ return l:rgb
+endfunction
+
+function! s:hex_to_dec(arg)
+ return (a:arg =~? '^0x') ? a:arg + 0 : ('0x'.a:arg) + 0
+endfunction
+
+function! s:dec_to_hex(arg, padding)
+ return toupper(printf('%0' . a:padding . 'x', a:arg + 0))
+endfunction
+
+function! s:rgb_color_to_hex(rgb_color)
+ let l:hex_color = '#'
+ let l:hex_color .= s:dec_to_hex(a:rgb_color[0], 2) " red"
+ let l:hex_color .= s:dec_to_hex(a:rgb_color[1], 2) " green"
+ let l:hex_color .= s:dec_to_hex(a:rgb_color[2], 2) " blue"
+
+ return l:hex_color
+endfunction
+
+let colorgroup = {}
+let colorgroup['Normal'] = {"GUIFG": _l_white, "GUIBG": _black}
+let colorgroup['NormalNC'] = {"GUIFG": _l_white, "GUIBG": _black}
+let colorgroup['NormalSB'] = {"GUIFG": _d_white, "GUIBG": _semiblack}
+let colorgroup['NormalFloat'] = {"GUIFG": _l_white, "GUIBG": _black}
+let colorgroup['FloatBorder'] = {"GUIFG": _lightblack}
+let colorgroup['Darker'] = {"GUIFG": _gray, "GUIBG": _black}
+let colorgroup['ColorColumn'] = {"GUIFG": _black, "GUIBG": _aubergine}
+let colorgroup['Conceal'] = {"GUIFG": _sap, "GUI": "bold"}
+let colorgroup['Cursor'] = {"GUIFG": _black, "GUIBG": _aubergine}
+let colorgroup['iCursor'] = {"GUIFG": _black, "GUIBG": _marzipan}
+let colorgroup['CursorLine'] = {"GUIFG": "NONE", "GUIBG": _semiblack}
+let colorgroup['CursorLineNr'] = {"GUIFG": _gray_dark, "GUIBG": _black}
+let colorgroup['Directory'] = {"GUIFG": _marzipan, "GUIBG": _black}
+let colorgroup['ErrorMsg'] = {"GUIFG": _black, "GUIBG": _aubergine}
+let colorgroup['FoldColumn'] = { "GUIBG": _black}
+let colorgroup['Folded'] = {"GUIFG": _l_white, "GUIBG": _semiblack}
+let colorgroup['LineNr'] = {"GUIFG": _lightblack, "GUIBG": _black}
+if &background == "light"
+ let colorgroup['LineNr'] = {"GUIFG": _gray, "GUIBG": _black}
+endif
+let colorgroup['MatchParen'] = {"GUIFG": _black, "GUIBG": _l_white}
+let colorgroup['ModeMsg'] = {"GUIFG": _black, "GUIBG": _marzipan}
+let colorgroup['Whitespace'] = {"GUIFG": _semiblack, "CTERMFG":235}
+
+"Popup menu: normal item"
+let colorgroup['Pmenu'] = {"GUIFG": _l_white, "GUIBG": _semiblack}
+"Popup menu: selected item"
+let colorgroup['PmenuSel'] = {"GUIBG": _gray_dark}
+"Popup menu: scrollbar"
+let colorgroup['PmenuSbar'] = {"GUIBG": _black}
+"Thumb of the scrollbar."
+let colorgroup['PmenuThumb'] = {"GUIBG": _black}
+
+let colorgroup['Search'] = {"GUIBG": _gray_dark, "GUI": "underline"}
+let colorgroup['SignColumn'] = {"GUIBG": _black}
+let colorgroup['StatusLine'] = {"GUIFG": _gray, "GUIBG": _semiblack}
+let colorgroup['StatusLineNC'] = {"GUIFG": _gray_dark, "GUIBG": _semiblack}
+let colorgroup['Tabline'] = {"GUIFG": _gray, "GUIBG": _semiblack}
+let colorgroup['TablineFill'] = {"GUIBG": _black}
+let colorgroup['TabLineSel'] = {"GUIFG": _l_sky, "GUIBG": _black, "CTERM": "reverse", "GUI": "reverse"}
+let colorgroup['Title'] = {"GUIFG": _marzipan, "GUI": "bold"}
+let colorgroup['Todo'] = {"GUIFG": _black, "GUIBG": _sky, "GUI": "italic"}
+let colorgroup['VertSplit'] = {"GUIFG": _lightblack}
+let colorgroup['Visual'] = {"GUIBG": _gray_dark}
+let colorgroup['WarningMsg'] = {"GUIFG": _pink, "GUIBG": _black}
+
+" === Other highlighting groups ==="
+let colorgroup['Access'] = {"GUIFG": _marzipan, "GUI": "bold"}
+let colorgroup['Character'] = {"GUIFG": _sky}
+let colorgroup['Define'] = {"GUIFG": _gray_light}
+let colorgroup['Function'] = {"GUIFG": _d_turquoise}
+let colorgroup['Label'] = {"GUIFG": _d_turquoise}
+let colorgroup['Module'] = {"GUIFG": _aubergine, "GUI": "underline"}
+let colorgroup['NonText'] = {"GUIFG": _gray_dark}
+let colorgroup['String'] = {"GUIFG": _marzipan}
+let colorgroup['Structure'] = {"GUIFG": _white}
+let colorgroup['Object'] = {"GUIFG": _gray}
+let colorgroup['Xml'] = {"GUIFG": _purple}
+let colorgroup['Punctuation'] = {"GUIFG": _purple}
+let colorgroup['Attr'] = {"GUIFG": _d_turquoise}
+
+" === Syntax ==="
+let colorgroup['Comment'] = {"GUIFG": _gray_light, "CTERMFG":244, "CTERMBG":"NONE", "GUIBG": "NONE", "GUISP":"NONE", "CTERM":"NONE", "GUI":"NONE"}
+let colorgroup['Constant'] = {"GUIFG": _l_sky, "GUI": "bold"}
+let colorgroup['Identifier'] = {"GUIFG": _aubergine}
+let colorgroup['Operator'] = {"GUIFG": _gray_light}
+let colorgroup['Statement'] = {"GUIFG": _l_sky}
+let colorgroup['PreProc'] = {"GUIFG": _white}
+let colorgroup['Type'] = {"GUIFG": _white}
+let colorgroup['Special'] = {"GUIFG": _l_sky}
+let colorgroup['Underlined'] = {"GUIFG": _marzipan, "GUI": "underline"}
+let colorgroup['Error'] = {"GUIFG": _black, "GUIBG": _aubergine}
+let colorgroup['MarkdownH1'] = {"GUIFG": _sky, "GUI": "bold"}
+let colorgroup['MarkdownH2'] = {"GUIFG": _l_sky, "GUI": "bold"}
+let colorgroup['MarkdownLinkText'] = {"GUIFG": _l_sky, "GUI": "underline"}
+
+" === Own highlighting groups ==="
+let colorgroup['UnderlinedBold'] = {"GUIFG": _marzipan, "GUI": "underline,bold"}
+
+" === GitGutter highlighting groups ==="
+let colorgroup['GitGutterAdd'] = {"GUIFG": _green, "GUIBG": _black}
+let colorgroup['GitGutterChange'] = {"GUIFG": _sap, "GUIBG": _black}
+let colorgroup['GitGutterDelete'] = {"GUIFG": _pink, "GUIBG": _black}
+let colorgroup['GitGutterChangeDelete'] = {"GUIFG": _sap, "GUIBG": _black}
+
+" === Git highlighting groups ==="
+let colorgroup['DiffAdd'] = {"GUIFG": _green, "GUIBG": _black, "GUI":"NONE"}
+let colorgroup['DiffChange'] = {"GUIFG": _white, "GUIBG": _black, "GUI":"NONE"}
+let colorgroup['DiffDelete'] = {"GUIFG": _pink, "GUIBG": _black, "GUI":"NONE"}
+let colorgroup['DiffText'] = {"GUIFG": _pink, "GUIBG": _black, "GUI":"NONE"}
+
+" === NvimTree highlighting groups ==="
+let colorgroup['NvimTreeNormal'] = {"GUIFG": _d_white, "GUIBG": _black }
+let colorgroup['NvimTreeNormalNC'] = {"GUIFG": _d_white, "GUIBG": _black }
+let colorgroup['NvimTreeRootFolder'] = {"GUIFG": _gray_light, "GUIBG": _black, "GUI":"bold"}
+let colorgroup['NvimTreeFolderName'] = {"GUIFG": _gray_light, "GUIBG": _black }
+let colorgroup['NvimTreeOpenedFolderName'] = {"GUIFG": _d_white, "GUIBG": _black }
+let colorgroup['NvimTreeGitDirty'] = {"GUIFG": _marzipan, "GUIBG": _black }
+let colorgroup['NvimTreeGitNew'] = {"GUIFG": _green, "GUIBG": _black }
+let colorgroup['NvimTreeGitDeleted'] = {"GUIFG": _pink, "GUIBG": _black }
+let colorgroup['NvimTreeSpecialFile'] = {"GUIFG": _d_turquoise, "GUIBG": _black, "GUI":"underline"}
+let colorgroup['NvimTreeIndentMarker'] = {"GUIFG": _lightblack, "GUIBG": _black}
+let colorgroup['NvimTreeImageFile'] = {"GUIFG": _d_white, "GUIBG": _black }
+let colorgroup['NvimTreeSymlink'] = {"GUIFG": _d_white, "GUIBG": _black }
+let colorgroup['NvimTreeGitStaged'] = {"GUIFG": _d_white, "GUIBG": _black }
+let colorgroup['NvimTreeGitMerge'] = {"GUIFG": _d_white, "GUIBG": _black }
+let colorgroup['NvimTreeGitRenamed'] = {"GUIFG": _d_white, "GUIBG": _black }
+
+" === COMPLETION highlighting groups ==="
+let colorgroup['CmpDocumentation'] = {"GUIFG": _d_white, "GUIBG": _black, "GUI":"NONE" }
+let colorgroup['CmpDocumentationBorder'] = {"GUIFG": _d_white, "GUIBG": _d_white, "GUI":"NONE" }
+"uncompleted item that may be good for completion"
+let colorgroup['CmpItemAbbr'] = {"GUIFG": _d_white, "GUIBG": _black, "GUI":"NONE" }
+let colorgroup['CmpItemAbbrDeprecated'] = {"GUIFG": _d_white, "GUIBG": _black, "GUI":"NONE" }
+"matched item (what you typed until present)"
+let colorgroup['CmpItemAbbrMatch'] = {"GUIFG": _aubergine, "GUIBG": _black, "GUI":"NONE" }
+"fuzzy match for what you typed"
+let colorgroup['CmpItemAbbrMatchFuzzy'] = {"GUIFG": _black, "GUIBG": _black, "GUI":"NONE" }
+let colorgroup['CmpItemKind'] = {"GUIFG": _aubergine, "GUIBG": _black, "GUI":"NONE" }
+let colorgroup['CmpItemMenu'] = {"GUIFG": _d_white, "GUIBG": _black, "GUI":"NONE" }
+
+let colorgroup['LspDiagnosticsDefaultError'] = {"GUIFG": _pink, "GUIBG": _black }
+let colorgroup['LspDiagnosticsDefaultWarning'] = {"GUIFG": _marzipan, "GUIBG": _black }
+let colorgroup['LspDiagnosticsDefaultHint'] = {"GUIFG": _d_white, "GUIBG": _black }
+
+let colorgroup['LspFloatWinNormal'] = {"GUIFG": _d_white, "GUIBG": _black }
+let colorgroup['LspFloatWinBorder'] = {"GUIFG": _black, "GUIBG": _black }
+let colorgroup['LspFloatWinBorder'] = {"GUIFG": _black, "GUIBG": _black }
+let colorgroup['LspFloatWinBorder'] = {"GUIFG": _black, "GUIBG": _black }
+
+ let colorgroup['BufferLineIndicatorSelected'] = {"GUIFG": _l_sky}
+ let colorgroup['BufferLineFill'] = {"GUIBG": _pink}
+
+"used for highlighting the current line in terminal-debug"
+let colorgroup['debugPC'] = {"GUIBG": _black}
+"used for breakpoint colors in terminal-debug"
+let colorgroup['debugBreakpoint'] = {"GUIBG": _semiblack}
+
+"These groups are for the native LSP client. Some other LSP clients may"
+"use these groups, or use their own. Consult your LSP client's"
+"documentation."
+
+"used for highlighting 'text' references"
+let colorgroup['LspReferenceText'] = {"GUIBG": _gray_light }
+"used for highlighting 'read' references"
+let colorgroup['LspReferenceRead'] = {"GUIBG": _gray_light }
+"used for highlighting 'write' references"
+let colorgroup['LspReferenceWrite'] = {"GUIBG": _gray_light }
+
+let colorgroup['DiagnosticError'] = {"GUIFG": _pink, "GUIBG": _black}
+let colorgroup['DiagnosticWarn'] = {"GUIFG": _marzipan, "GUIBG": _black }
+let colorgroup['DiagnosticInfo'] = {"GUIFG": _sky, "GUIBG": _black }
+let colorgroup['DiagnosticHint'] = {"GUIFG": _d_turquoise, "GUIBG": _black }
+
+let colorgroup['DiagnosticVirtualTextError'] = {"GUIFG": _pink, "GUIBG": _black }
+let colorgroup['DiagnosticVirtualTextWarn'] = {"GUIFG": _marzipan, "GUIBG": _black }
+let colorgroup['DiagnosticVirtualTextInfo'] = {"GUIFG": _sky, "GUIBG": _black }
+let colorgroup['DiagnosticVirtualTextHint'] = {"GUIFG": _d_turquoise, "GUIBG": _black }
+
+let colorgroup['DiagnosticUnderlineError'] = {"style": "undercurl", "sp": _pink }
+let colorgroup['DiagnosticUnderlineWarn'] = {"style": "undercurl", "sp": _marzipan }
+let colorgroup['DiagnosticUnderlineInfo'] = {"style": "undercurl", "sp": _sky }
+let colorgroup['DiagnosticUnderlineHint'] = {"style": "undercurl", "sp": _d_turquoise }
+
+" === Highlighting Links ==="
+hi link Boolean Number
+hi link Class Constant
+hi link Delimiter Define
+hi link Debug Special
+hi link Conditional Define
+hi link Exception PreProc
+hi link Float Number
+hi link Include PreProc
+hi link Macro PreProc
+hi link Number Identifier
+hi link Operator Identifier
+hi link PreCondit PreProc
+hi link Repeat Statement
+hi link SpecialChar Special
+hi link SpecialComment Special
+hi link SpecialKey Define
+hi link StorageClass Identifier
+hi link Symbol PreProc
+hi link Tag Normal
+hi link Typedef Type
+
+" === Highlighting Plugins ==="
+
+" CtrlP "
+hi link CtrlPMatch Character
+
+" Git commit "
+hi link gitcommitBranch Constant
+hi link gitcommitSelectedFile Statement
+hi link gitcommitDiscardedFile Structure
+hi link gitcommitUntrackedFile Structure
+hi link gitcommitSummary String
+
+" GitGutter "
+hi link GitGutterAdd GitGutterAdd
+hi link GitGutterChange GitGutterChange
+hi link GitGutterDelete GitGutterDelete
+hi link GitGutterChangeDelete GitGutterChangeDelete
+
+" Signify "
+hi link SignifySignAdd GitGutterAdd
+hi link SignifySignChange GitGutterChange
+hi link SignifySignChangeDelete GitGutterChangeDelete
+hi link SignifySignDelete GitGutterDelete
+hi link SignifySignDeleteFirstLine SignifySignDelete
+
+" NERDtree "
+hi link NerdTreeCWD Character
+hi link NerdTreeHelpKey Character
+hi link NerdTreeHelpTitle Statement
+hi link NerdTreeOpenable NerdTreeCWD
+hi link NerdTreeClosable Statement
+hi link NerdTreeDir Normal
+hi link NerdTreeDirSlash NerdTreeDir
+
+" PlainTasks (.todo) "
+hi link ptCompleteTask Number
+hi link ptContext Type
+hi link ptSection Title
+hi link ptTask Normal
+
+" VimPlug "
+hi link plugName Character
+
+" Startify "
+hi link StartifyNumber Character
+hi link StartifyBracket StartifyNumber
+hi link StartifySection Title
+hi link StartifyPath Define
+hi link StartifySlash StartifyPath
+hi link StartifyFile Normal
+
+" === Highlighting Languages/Tools ==="
+
+" highlight clear ALEErrorSign "
+if exists('g:ale_enabled')
+ hi! link ALEError WarningMsg
+ hi! link ALEWarning WarningMsg
+ hi! link ALEInfo WarningMsg
+
+ hi! link ALEErrorSign WarningMsg
+ hi! link ALEWarningSign WarningMsg
+ hi! link ALEInfoSign WarningMsg
+ hi! link ALEVirtualTextWarning WarningMsg
+ hi! link ALEVirtualTextError WarningMsg
+endif
+
+" Apache "
+hi link apacheDeclaration PreProc
+
+" CoffeeScript "
+hi link coffeeExtendedOp Character
+hi link coffeeObject Statement
+hi link coffeeObjAssign Character
+hi link coffeeParen Character
+
+" CSS "
+hi link cssAttr Identifier
+hi link cssColor Normal
+hi link cssClassName String
+hi link cssProp Function
+hi link cssPseudoClass Character
+hi link cssPseudoClassId Character
+hi link cssSelectorOp Character
+hi link cssTagName Identifier
+hi link cssDefinition Identifier
+hi link cssNoise Punctuation
+hi link cssBraces Punctuation
+hi link cssIdentifier Punctuation
+hi link cssIncludeKeyword Punctuation
+hi link cssUnitDecorators String
+
+" GraphQL "
+hi link graphqlName Function
+hi link graphqlString Comment
+
+" HAML "
+hi link hamlTag Character
+
+" HTML "
+"hi link javaScript Normal"
+hi link htmlTag Label
+hi link htmlEndTag Label
+hi link htmlTagName Label
+hi link htmlScriptTag Label
+hi link htmlArg Attr
+hi link htmlTitle Normal
+hi link htmlH1 Normal
+hi link htmlH2 htmlH1
+hi link htmlH3 htmlH1
+hi link htmlH4 htmlH1
+hi link htmlH5 htmlH1
+hi link htmlH6 htmlH1
+
+" JavaScript "
+hi link javascriptFuncArg Character
+hi link javascriptFuncComma Punctuation
+hi link javascriptFuncDef Statement
+hi link javascriptFuncKeyword Statement
+hi link javascriptOpSymbols Type
+hi link javascriptParens Punctuation
+hi link javascriptEndcolons Character
+hi link jsArrowFuncArgs Normal
+hi link jsArrowFunction Identifier
+hi link jsBraces Punctuation
+hi link jsBrackets Punctuation
+hi link jsClassBraces Punctuation
+hi link jsClassDefinition Class
+hi link jsClassFuncName Function
+hi link jsClassKeyword Identifier
+hi link jsClassProperty Normal
+hi link jsClassBlock Identifier
+hi link jsDecorator Normal
+hi link jsDestructuringBraces Punctuation
+hi link jsExtendsKeyword jsClassKeyword
+hi link jsExport Identifier
+hi link jsImport Module
+hi link jsFrom Identifier
+hi link jsFuncBraces Punctuation
+hi link jsFunction Identifier
+hi link jsFuncCall Function
+hi link jsFuncParens Punctuation
+hi link jsFunctionKey Function
+hi link jsGlobalObjects Identifier
+hi link jsGlobalNodeObjects Identifier
+hi link jsIfElseBraces Punctuation
+hi link jsModuleBraces Normal
+hi link jsModuleKeyword Tag
+hi link jsNoise Delimiter
+hi link jsObjectBraces Punctuation
+hi link jsObjectKey Normal
+hi link jsObjectValue PreProc
+hi link jsObjectProp Function
+hi link jsObjectColon Punctuation
+hi link jsObjectShorthandProp Punctuation
+hi link jsParens Punctuation
+hi link jsReturn Identifier
+hi link jsSpreadOperator Identifier
+hi link jsThis Identifier
+
+" JSON "
+hi link jsonKeyword Attr
+hi link jsonKeywordMatch Punctuation
+hi link jsonQuote Attr
+hi link jsonNoise Punctuation
+hi link jsonString Punctuation
+hi link jsonBraces Normal
+hi link jsonBoolean WarningMsg
+
+hi link jsonNumError Comment
+hi link jsonCommentError Comment
+hi link jsonSemicolonError Comment
+hi link jsonTrailingCommaError Comment
+hi link jsonMissingCommaError Comment
+hi link jsonStringSQError Comment
+hi link jsonNoQuotesError Punctuation
+hi link jsonTripleQuotesError Punctuation
+
+" hi link texSpecialChar Special "
+" Markdown "
+hi link markdownHeadingDelimiter Identifier
+hi link markdownCode Identifier
+hi link markdownIndentCode Identifier
+hi link markdownLineBreak Statement
+hi link markdownH1 MarkdownH1
+hi link markdownH2 MarkdownH2
+hi link markdownLinkText markdownLinkText
+
+" MatchTagAlways "
+hi link MatchTag Identifier
+
+" PHP "
+hi link phpRegion Comment
+hi link phpConstant WarningMsg
+hi link phpCoreConstant WarningMsg
+hi link phpComment Comment
+hi link phpDocTags WarningMsg
+hi link phpDocCustomTags WarningMsg
+hi link phpException WarningMsg
+hi link phpBoolean WarningMsg
+hi link phpClass String
+hi link phpStaticClasses String
+hi link phpClassDelimiter WarningMsg
+hi link phpFunction Label "Custom functions"
+hi link phpFunctions Character "Built-in functions"
+hi link phpSuperglobals Normal "Global functions"
+hi link phpMagicConstants Normal "__CLASS__"
+hi link phpServerVars WarningMsg
+hi link phpMethods WarningMsg
+hi link phpMethodsVar Label
+hi link phpSplatOperator Label
+hi link phpStringDelimiter String "String Quotes"
+hi link phpStructure Label
+hi link phpStringSingle String
+hi link phpStringDouble Identifier
+hi link phpBacktick Identifier
+hi link phpNumber Identifier
+hi link phpFloat WarningMsg
+hi link phpBaselib Identifier
+hi link phpRepeat WarningMsg
+hi link phpStatement Identifier
+hi link phpKeyword Identifier "function"
+hi link phpSCKeyword Identifier
+hi link phpFCKeyword Identifier
+hi link phpYieldFromKeyword Identifier
+hi link phpDocNamespaceSeparator WarningMsg
+hi link phpClassNamespaceSeparator WarningMsg
+hi link phpUseNamespaceSeparator WarningMsg
+hi link phpType Identifier "public, privat, protected"
+hi link phpInclude Identifier
+hi link phpDefine WarningMsg
+hi link phpBackslashSequences WarningMsg
+hi link phpBackslashDoubleQuote WarningMsg
+hi link phpBackslashSingleQuote WarningMsg
+hi link phpParent Punctuation
+hi link phpBrackets Punctuation
+hi link phpIdentifierConst WarningMsg
+hi link phpParentError WarningMsg
+hi link phpOctalError WarningMsg
+hi link phpInterpSimpleError WarningMsg
+hi link phpInterpBogusDollarCurley WarningMsg
+hi link phpInterpDollarCurly1 WarningMsg
+hi link phpInterpDollarCurly2 WarningMsg
+hi link phpInterpSimpleBracketsInner WarningMsg
+hi link phpInterpSimpleCurly WarningMsg
+hi link phpInterpVarname WarningMsg
+hi link phpIntVar Punctuation
+hi link phpVarSelector PreProc "$ sign"
+hi link phpMemberSelector Identifier "->"
+hi link phpIdentifier PreProc
+hi link phpTodo Identifier
+hi link phpDocTodo Identifier
+hi link phpOperator Identifier "+, -, x, *"
+hi link phpRelation WarningMsg
+hi link phpIdentifierSimply WarningMsg
+
+"Pug"
+hi link pugHtmlConditionalComment WarningMsg
+
+" Python "
+hi link pythonMagic Identifier
+hi link pythonBuiltin Identifier
+hi link pythonStatement Identifier
+hi link pythonOperator Punctuation
+hi link pythonFunction Character
+hi link pythonString Label
+hi link pythonImport Identifier
+hi link pythonDef Punctuation
+hi link pythonAs Punctuation
+hi link pythonDocstring Punctuation
+hi link pythonSpecial Punctuation
+hi link pythonDecorator Punctuation
+hi link pythonExceptions Punctuation
+
+" Ruby "
+hi link rubyAccess Access
+hi link rubyBlockParameterList PreProc
+hi link rubyCallback Character
+hi link rubyClass Label
+hi link rubyClassName UnderlinedBold
+hi link rubyControl Statement
+hi link rubyConstant Constant
+hi link rubyEntity Character
+hi link rubyInclude Include
+hi link rubyInterpolation Identifier
+hi link rubyMacro Character
+hi link rubyModule Module
+hi link rubyStringDelimiter rubyString
+hi link rubySymbol Symbol
+hi link rubyRoute Type
+
+" SASS "
+hi link sassClassChar Type
+hi link sassClass Type
+hi link sassIdChar Type
+hi link sassId Type
+hi link sassProperty Type
+hi link scssProperty Identifier
+hi link scssMixin Identifier
+hi link scssVariable Attr
+hi link scssInclude Identifier
+hi link scssExtend Identifier
+hi link scssFunctionDefinition Identifier
+hi link scssReturn Identifier
+hi link scssEachKeyword Identifier
+hi link scssForKeyword Identifier
+hi link scssImport Identifier
+hi link scssSemicolon Punctuation
+hi link scssAtRoot Identifier
+hi link scssSelectorName String
+
+" Slim "
+hi link slimBegin Normal
+hi link slimClass Character
+hi link slimClassChar Character
+hi link slimId Character
+hi link slimIdChar Character
+hi link rubyKeyword PreProc
+hi link slimText Normal
+
+" TypeScript "
+hi link typescriptBOM Normal
+hi link typescriptBraces Punctuation
+hi link typescriptParens Punctuation
+hi link typescriptTypeReference String
+hi link typescriptAsyncFuncKeyword Identifier
+hi link typescriptAsyncFunc Identifier
+hi link typescriptArrowFunc Identifier
+hi link typescriptFuncKeyword Identifier
+hi link typescriptArrowFuncArg Identifier
+hi link typescriptFuncName Function
+hi link typescriptFuncArg Identifier
+hi link typescriptFuncComma Identifier
+hi link typescriptFuncTypeArrow String
+hi link typescriptTemplate Attr
+hi link typescriptTemplateSB Attr
+hi link typescriptObjectLabel Normal
+hi link typescriptDestructureLabel Attr
+hi link typescriptObjectAsyncKeyword Attr
+hi link typescriptInterfaceKeyword Identifier
+hi link typescriptInterfaceExtends Identifier
+hi link typescriptInterfaceName String
+hi link typescriptImport Identifier
+hi link typescriptImportType Normal
+hi link typescriptExport Identifier
+hi link typescriptExportType Normal
+"Types=> key:value"
+hi link typescriptMember Normal
+hi link typescriptPredefinedType Attr
+hi link typescriptStringMember Normal
+hi link typescriptString String
+hi link typescriptConditional Identifier
+hi link typescriptConditionalElse Identifier
+"default"
+hi link typescriptCase Identifier
+hi link typescriptDefault Identifier
+hi link typescriptMethodAccessor String
+hi link typescriptKeywordOp String
+"return"
+hi link typescriptStatementKeyword Identifier
+hi link typescriptNull Attr
+hi link typescriptBoolean Attr
+hi link typescriptConstructorType Attr
+hi link typescriptTypeQuery Attr
+hi link typescriptAccessibilityModifier Attr
+hi link typescriptOptionalMark Attr
+hi link typescriptReadonlyModifier Attr
+hi link typescriptTypeParameter Attr
+
+" VimL "
+hi link vimCmdSep Character
+
+" YAML "
+hi link yamlBlockMappingKey Punctuation
+hi link yamlDocumentStart Punctuation
+hi link yamlKeyValueDelimiter Punctuation
+hi link yamlPlainScalar Punctuation
+
+" XML "
+" hi link xmlAttrib Normal"
+hi link xmlTag Xml
+hi link xmlTagName Identifier
+hi link xmlEndTag Tag
+hi link xmlAttrib Attr
+
+" === Expand colorgroups === "
+
+let s:colors = {}
+" http://choorucode.com/2011/07/29/vim-chart-of-color-names/"
+
+let valid_cterm_colors =
+ \ [
+ \ 'Black', 'DarkBlue', 'DarkGreen', 'DarkCyan',
+ \ 'DarkRed', 'DarkMagenta', 'Brown', 'DarkYellow',
+ \ 'LightGray', 'LightGrey', 'Gray', 'Grey',
+ \ 'DarkGray', 'DarkGrey', 'Blue', 'LightBlue',
+ \ 'Green', 'LightGreen', 'Cyan', 'LightCyan',
+ \ 'Red', 'LightRed', 'Magenta', 'LightMagenta',
+ \ 'Yellow', 'LightYellow', 'White',
+ \ ]
+for key in keys(colorgroup)
+ let s:colors = colorgroup[key]
+ if has_key(s:colors, 'TERM')
+ let term = s:colors['TERM']
+ else
+ let term = 'NONE'
+ endif
+ if has_key(s:colors, 'GUI')
+ let gui = s:colors['GUI']
+ else
+ let gui='NONE'
+ endif
+ if has_key(s:colors, 'GUIFG')
+ let guifg = s:colors['GUIFG']
+ else
+ let guifg='NONE'
+ endif
+ if has_key(s:colors, 'GUIBG')
+ let guibg = s:colors['GUIBG']
+ else
+ let guibg='NONE'
+ endif
+ if g:bore_terminal_italics == 0
+ if has_key(s:colors, 'CTERM') && s:colors["CTERM"] == "italic"
+ unlet a:colors.CTERM
+ endif
+ if has_key(s:colors, "GUI") && s:colors["GUI"] == "italic"
+ unlet s:colors.GUI
+ endif
+ endif
+ if has_key(s:colors, 'CTERM')
+ let cterm = s:colors['CTERM']
+ else
+ let cterm=gui
+ endif
+ if has_key(s:colors, 'CTERMFG')
+ let ctermfg = s:colors['CTERMFG']
+ else
+ if index(valid_cterm_colors, guifg) != -1
+ let ctermfg=guifg
+ else
+ let ctermfg='Blue'
+ endif
+ endif
+ if has_key(s:colors, 'CTERMBG')
+ let ctermbg = s:colors['CTERMBG']
+ else
+ if index(valid_cterm_colors, guibg) != -1
+ let ctermbg=guibg
+ else
+ let ctermbg='NONE'
+ endif
+ endif
+ if has_key(s:colors, 'GUISP')
+ let guisp = s:colors['GUISP']
+ else
+ let guisp='NONE'
+ endif
+ if key =~ '^\k*$'
+ execute "hi ".key." term=".term." cterm=".cterm." gui=".gui." ctermfg=".ctermfg." guifg=".guifg." ctermbg=".ctermbg." guibg=".guibg." guisp=".guisp
+ endif
+endfor
+
+hi DiffAdd ctermbg=NONE ctermfg=15 cterm=NONE guibg=NONE guifg=#d0d0d0 gui=NONE
+hi DiffChange ctermbg=NONE ctermfg=15 cterm=NONE guibg=NONE guifg=#d0d0d0 gui=NONE
+hi DiffDelete ctermbg=NONE ctermfg=15 cterm=NONE guibg=NONE guifg=#d0d0d0 gui=NONE
+hi DiffText ctermbg=NONE ctermfg=15 cterm=NONE guibg=NONE guifg=#d0d0d0 gui=NONE
+hi IncSearch ctermbg=8 ctermfg=NONE cterm=NONE guibg=#272727 guifg=NONE gui=NONE
+hi Search ctermbg=NONE ctermfg=15 cterm=NONE guibg=NONE guifg=#d0d0d0 gui=NONE
+hi Directory ctermbg=NONE ctermfg=8 cterm=NONE guibg=NONE guifg=#808080 gui=NONE
+hi MatchParen ctermbg=NONE ctermfg=15 cterm=NONE guibg=NONE guifg=#d0d0d0 gui=NONE
+hi SpellBad ctermbg=NONE ctermfg=15 cterm=NONE guibg=NONE guifg=#d0d0d0 gui=NONE guisp=#b3646e
+hi SpellCap ctermbg=NONE ctermfg=15 cterm=NONE guibg=NONE guifg=#d0d0d0 gui=NONE guisp=#7fa7c9
+hi SpellLocal ctermbg=NONE ctermfg=15 cterm=NONE guibg=NONE guifg=#d0d0d0 gui=NONE guisp=#a2a6d4
+hi SpellRare ctermbg=NONE ctermfg=15 cterm=NONE guibg=NONE guifg=#d0d0d0 gui=NONE guisp=#91cecf
+hi ColorColumn ctermbg=NONE ctermfg=15 cterm=NONE guibg=NONE guifg=#d0d0d0 gui=NONE
+hi SignColumn ctermbg=NONE ctermfg=15 cterm=NONE guibg=NONE guifg=#d0d0d0 gui=NONE
+hi ErrorMsg ctermbg=NONE ctermfg=15 cterm=NONE guibg=NONE guifg=#d0d0d0 gui=NONE
+hi ModeMsg ctermbg=NONE ctermfg=15 cterm=NONE guibg=NONE guifg=#d0d0d0 gui=NONE
+hi MoreMsg ctermbg=NONE ctermfg=15 cterm=NONE guibg=NONE guifg=#d0d0d0 gui=NONE
+hi Question ctermbg=NONE ctermfg=15 cterm=NONE guibg=NONE guifg=#d0d0d0 gui=NONE
+hi Cursor ctermbg=NONE ctermfg=15 cterm=NONE guibg=NONE guifg=#d0d0d0 gui=NONE
+hi CursorColumn ctermbg=NONE ctermfg=15 cterm=NONE guibg=NONE guifg=#d0d0d0 gui=NONE
+hi QuickFixLine ctermbg=NONE ctermfg=15 cterm=NONE guibg=NONE guifg=#d0d0d0 gui=NONE
+hi Conceal ctermbg=NONE ctermfg=15 cterm=NONE guibg=NONE guifg=#d0d0d0 gui=NONE
+hi ToolbarLine ctermbg=NONE ctermfg=15 cterm=NONE guibg=NONE guifg=#d0d0d0 gui=NONE
+hi ToolbarButton ctermbg=NONE ctermfg=15 cterm=NONE guibg=NONE guifg=#d0d0d0 gui=NONE
+hi debugPC ctermbg=NONE ctermfg=15 cterm=NONE guibg=NONE guifg=#d0d0d0 gui=NONE
+hi debugBreakpoint ctermbg=NONE ctermfg=15 cterm=NONE guibg=NONE guifg=#d0d0d0 gui=NONE
+hi VimHiGroup ctermbg=NONE ctermfg=12 cterm=NONE guibg=NONE guifg=#7fa7c9 gui=NONE
+hi VimVar ctermbg=NONE ctermfg=15 cterm=NONE guibg=NONE guifg=#e0e0e0 gui=NONE
+hi VimAutoEvent ctermbg=NONE ctermfg=12 cterm=NONE guibg=NONE guifg=#7fa7c9 gui=NONE
+hi VimFunction ctermbg=NONE ctermfg=13 cterm=NONE guibg=NONE guifg=#a2a6d4 gui=NONE
+hi vimVar ctermbg=NONE ctermfg=13 cterm=NONE guibg=NONE guifg=#a2a6d4 gui=NONE
+hi vimMapMod ctermbg=NONE ctermfg=12 cterm=NONE guibg=NONE guifg=#7fa7c9 gui=NONE
+hi vimMapModKey ctermbg=NONE ctermfg=12 cterm=NONE guibg=NONE guifg=#7fa7c9 gui=NONE
+hi vimBracket ctermbg=NONE ctermfg=13 cterm=NONE guibg=NONE guifg=#a2a6d4 gui=NONE
+hi vimNotation ctermbg=NONE ctermfg=13 cterm=NONE guibg=NONE guifg=#a2a6d4 gui=NONE
+hi StatusText ctermbg=NONE ctermfg=15 cterm=NONE guibg=NONE guifg=#e0e0e0 gui=NONE
+hi StatusBackground ctermbg=NONE ctermfg=0 cterm=NONE guibg=NONE guifg=#0d0d0d gui=NONE
+hi StatusFileName ctermbg=NONE ctermfg=12 cterm=bold guibg=NONE guifg=#7fa7c9 gui=bold
+hi StatusFileType ctermbg=NONE ctermfg=10 cterm=bold guibg=NONE guifg=#a0bc8d gui=bold
+hi StatusFileModified ctermbg=NONE ctermfg=11 cterm=bold guibg=NONE guifg=#c9b16f gui=bold
+hi StatusFileReadonly ctermbg=NONE ctermfg=11 cterm=bold guibg=NONE guifg=#c9b16f gui=bold
+hi StatusFileLocation ctermbg=NONE ctermfg=13 cterm=bold guibg=NONE guifg=#a2a6d4 gui=bold
+hi StatusFileEncoding ctermbg=NONE ctermfg=14 cterm=bold guibg=NONE guifg=#91cecf gui=bold
+hi StatusWarning ctermbg=NONE ctermfg=11 cterm=bold guibg=NONE guifg=#c9b16f gui=bold
+hi StatusError ctermbg=NONE ctermfg=9 cterm=bold guibg=NONE guifg=#d0d0d0 gui=bold
+hi TabLineTitle ctermbg=NONE ctermfg=8 cterm=NONE guibg=NONE guifg=#808080 gui=NONE
+hi TabLineTitleActive ctermbg=NONE ctermfg=12 cterm=bold guibg=NONE guifg=#7fa7c9 gui=bold
+hi SignifySignAdd ctermbg=NONE ctermfg=10 cterm=NONE guibg=NONE guifg=#a0bc8d gui=NONE
+hi SignifySignDelete ctermbg=NONE ctermfg=9 cterm=NONE guibg=NONE guifg=#b3646e gui=NONE
+hi SignifySignChange ctermbg=NONE ctermfg=11 cterm=NONE guibg=NONE guifg=#c9b16f gui=NONE
+
+" hi CocExplorerGitPathChange ctermbg=NONE ctermfg=10 cterm=NONE guibg=NONE guifg=#a0bc8d gui=NONE
+" hi CocExplorerGitContentChange ctermbg=NONE ctermfg=11 cterm=NONE guibg=NONE guifg=#c9b16f gui=NONE
+
+" hi CocErrorSign ctermbg=NONE ctermfg=8 cterm=NONE guibg=#0a0a0a guifg=#d0d0d0 gui=NONE
+" hi CocInfoSign ctermbg=NONE ctermfg=8 cterm=NONE guibg=#0a0a0a guifg=#c9b16f gui=NONE
+" hi CocWarningSign ctermbg=NONE ctermfg=8 cterm=NONE guibg=#0a0a0a guifg=#c9b16f gui=NONE
+
+" hi CocErrorFloat ctermbg=NONE ctermfg=8 cterm=NONE guibg=#0a0a0a guifg=#b3646e gui=NONE
+" hi CocInfoFloat ctermbg=NONE ctermfg=8 cterm=NONE guibg=#0a0a0a guifg=#d0d0d0 gui=NONE
+" hi CocWarningFloat ctermbg=NONE ctermfg=8 cterm=NONE guibg=#0a0a0a guifg=#c9b16f gui=NONE
+
+hi Pmenu ctermbg=NONE ctermfg=8 cterm=NONE guibg=NONE guifg=#808080 gui=NONE
+hi PmenuSbar ctermbg=NONE ctermfg=15 cterm=NONE guibg=NONE guifg=#d0d0d0 gui=NONE
+hi PmenuSel ctermbg=8 ctermfg=15 cterm=NONE guibg=#202020 guifg=#d0d0d0 gui=NONE
+hi PmenuThumb ctermbg=NONE ctermfg=15 cterm=NONE guibg=NONE guifg=#d0d0d0 gui=NONE
+
+hi StatusLine ctermbg=NONE ctermfg=8 cterm=NONE guibg=NONE guifg=#808080 gui=NONE
+hi StatusLineNC ctermbg=NONE ctermfg=8 cterm=NONE guibg=NONE guifg=#505050 gui=NONE
+hi VertSplit ctermbg=NONE ctermfg=8 cterm=NONE guibg=NONE guifg=#272727 gui=NONE
+hi TabLine ctermbg=NONE ctermfg=15 cterm=NONE guibg=NONE guifg=#d0d0d0 gui=NONE
+hi TabLineFill ctermbg=NONE ctermfg=15 cterm=NONE guibg=NONE guifg=#d0d0d0 gui=NONE
+hi TabLineSel ctermbg=NONE ctermfg=15 cterm=NONE guibg=NONE guifg=#d0d0d0 gui=NONE
+
+" Treesitter specific highlighting
+hi @type guifg=#ffffff gui=NONE cterm=NONE
+hi @type.builtin guifg=#ffffff gui=NONE cterm=NONE
+hi @type.qualifier guifg=#ffffff gui=NONE cterm=NONE
+hi @type.definition guifg=#ffffff gui=NONE cterm=NONE
+
+hi link @parameter _pink
+hi link @parameter.builtin _pink
+hi link @variable.argument _pink
+hi link @lsp.type.parameter _pink
+
+hi @tag guifg=#6cbeff gui=NONE cterm=NONE
+hi @tag.builtin guifg=#FD98B9 gui=NONE cterm=NONE
+hi @tag.attribute guifg=#7fdbca gui=NONE cterm=NONE
+hi @module guifg=#6cbeff gui=NONE cterm=NONE
+
+hi @constant guifg=#7fdbca gui=NONE cterm=NONE
+hi link @variable.parameter NONE
+hi @variable.parameter guifg=#FD98B9 gui=NONE cterm=NONE
+hi @variable guifg=#FD98B9 gui=NONE cterm=NONE
+hi @function.call guifg=#7fdbca gui=NONE cterm=NONE
+hi @function.builtin guifg=#7fdbca gui=NONE cterm=NONE
+hi @function.method.call guifg=#7fdbca gui=NONE cterm=NONE
+hi @variable.member guifg=#7fdbca gui=NONE cterm=NONE
+hi link @variable.parameter Identifier
+hi link @variable.parameter _pink
+hi @keyword.modifier guifg=#75778C gui=NONE cterm=NONE
+hi @keyword.operator guifg=#75778C gui=NONE cterm=NONE
+hi @constructor guifg=#7fdbca gui=NONE cterm=NONE
+hi @property guifg=#7fdbca gui=NONE cterm=NONE
+hi @boolean guifg=#6cbeff gui=NONE cterm=NONE
+hi @punctuation.bracket guifg=#75778c gui=NONE cterm=NONE
+hi @punctuation.delimiter guifg=#75778c gui=NONE cterm=NONE
+hi @attribute guifg=#6cbeff gui=NONE cterm=NONE
+
+let colorgroup['@variable.parameter'] = {"GUIFG": _pink}
+let colorgroup['@parameter'] = {"GUIFG": _pink}
+let colorgroup['@lsp.type.parameter'] = {"GUIFG": _pink}
+let colorgroup['Structure'] = {"GUIFG": _white}
+let colorgroup['@type'] = {"GUIFG": _white}
+
+
+" Must appear at the end of the file to work around this oddity:
+" https://groups.google.com/forum/#!msg/vim_dev/afPqwAFNdrU/nqh6tOM87QUJ
+set background=dark
diff --git a/bore.vim/images/screenshot.png b/bore.vim/images/screenshot.png
new file mode 100644
index 0000000..dbe4b54
--- /dev/null
+++ b/bore.vim/images/screenshot.png
Binary files differ
diff --git a/fonts/IoskeleyMono-Bold.ttf b/fonts/IoskeleyMono-Bold.ttf
new file mode 100644
index 0000000..046a114
--- /dev/null
+++ b/fonts/IoskeleyMono-Bold.ttf
Binary files differ
diff --git a/fonts/IoskeleyMono-BoldItalic.ttf b/fonts/IoskeleyMono-BoldItalic.ttf
new file mode 100644
index 0000000..812cd0a
--- /dev/null
+++ b/fonts/IoskeleyMono-BoldItalic.ttf
Binary files differ
diff --git a/fonts/IoskeleyMono-ExtraBold.ttf b/fonts/IoskeleyMono-ExtraBold.ttf
new file mode 100644
index 0000000..a334734
--- /dev/null
+++ b/fonts/IoskeleyMono-ExtraBold.ttf
Binary files differ
diff --git a/fonts/IoskeleyMono-ExtraBoldItalic.ttf b/fonts/IoskeleyMono-ExtraBoldItalic.ttf
new file mode 100644
index 0000000..0acc758
--- /dev/null
+++ b/fonts/IoskeleyMono-ExtraBoldItalic.ttf
Binary files differ
diff --git a/fonts/IoskeleyMono-Italic.ttf b/fonts/IoskeleyMono-Italic.ttf
new file mode 100644
index 0000000..f5a377d
--- /dev/null
+++ b/fonts/IoskeleyMono-Italic.ttf
Binary files differ
diff --git a/fonts/IoskeleyMono-Light.ttf b/fonts/IoskeleyMono-Light.ttf
new file mode 100644
index 0000000..0eee122
--- /dev/null
+++ b/fonts/IoskeleyMono-Light.ttf
Binary files differ
diff --git a/fonts/IoskeleyMono-LightItalic.ttf b/fonts/IoskeleyMono-LightItalic.ttf
new file mode 100644
index 0000000..275d0d6
--- /dev/null
+++ b/fonts/IoskeleyMono-LightItalic.ttf
Binary files differ
diff --git a/fonts/IoskeleyMono-Medium.ttf b/fonts/IoskeleyMono-Medium.ttf
new file mode 100644
index 0000000..ee70f0d
--- /dev/null
+++ b/fonts/IoskeleyMono-Medium.ttf
Binary files differ
diff --git a/fonts/IoskeleyMono-MediumItalic.ttf b/fonts/IoskeleyMono-MediumItalic.ttf
new file mode 100644
index 0000000..777fe70
--- /dev/null
+++ b/fonts/IoskeleyMono-MediumItalic.ttf
Binary files differ
diff --git a/fonts/IoskeleyMono-Regular.ttf b/fonts/IoskeleyMono-Regular.ttf
new file mode 100644
index 0000000..d0cdd2a
--- /dev/null
+++ b/fonts/IoskeleyMono-Regular.ttf
Binary files differ
diff --git a/fonts/IoskeleyMono-SemiBold.ttf b/fonts/IoskeleyMono-SemiBold.ttf
new file mode 100644
index 0000000..7b1dbd4
--- /dev/null
+++ b/fonts/IoskeleyMono-SemiBold.ttf
Binary files differ
diff --git a/fonts/IoskeleyMono-SemiBoldItalic.ttf b/fonts/IoskeleyMono-SemiBoldItalic.ttf
new file mode 100644
index 0000000..7748779
--- /dev/null
+++ b/fonts/IoskeleyMono-SemiBoldItalic.ttf
Binary files differ
diff --git a/ghostty/config.txt b/ghostty/config.txt
new file mode 100644
index 0000000..472cbe0
--- /dev/null
+++ b/ghostty/config.txt
@@ -0,0 +1,77 @@
+
+palette = 0=#090E13
+palette = 1=#c4746e
+palette = 2=#8a9a7b
+palette = 3=#c4b28a
+palette = 4=#8ba4b0
+palette = 5=#a292a3
+palette = 6=#8ea4a2
+palette = 7=#a4a7a4
+palette = 8=#5C6066
+palette = 9=#e46876
+palette = 10=#87a987
+palette = 11=#e6c384
+palette = 12=#7fb4ca
+palette = 13=#938aa9
+palette = 14=#7aa89f
+palette = 15=#c5c9c7
+
+background = #090E13
+foreground = #c5c9c7
+cursor-color = #c5c9c7
+selection-background = #22262D
+selection-foreground = #c5c9c7
+
+
+font-family-italic = Ioskeley Mono
+font-family-bold-italic = Ioskeley Mono
+font-family-bold = Ioskeley Mono
+font-family = Ioskeley Mono
+#font-feature = -calt, -liga, -dlig
+
+# Font size
+
+font-size = 22
+font-thicken = true
+font-thicken-strength=255
+bold-is-bright = true
+
+# macos options
+
+#macos-option-as-alt = true
+macos-titlebar-style = tabs
+
+# Always show ghostty as the title
+
+title = Ogrimmar
+
+# Opacity of split windows
+
+unfocused-split-opacity = 0.97
+
+# Set the background-opacity to be fully opaque
+
+background-opacity = 1.0
+
+# Cursor style
+
+cursor-style-blink = true
+
+# Clipboard settings
+
+clipboard-read = allow
+clipboard-write = allow
+
+macos-titlebar-proxy-icon = hidden
+
+# Window settings
+
+#window-decoration = none
+macos-titlebar-style = hidden
+window-width = 90
+window-height = 30
+window-colorspace = display-p3
+window-padding-color = background
+window-padding-balance = true
+window-padding-x = 16
+window-padding-y = 16 \ No newline at end of file
diff --git a/meme.jpg b/meme.jpg
new file mode 100644
index 0000000..10146bd
--- /dev/null
+++ b/meme.jpg
Binary files differ
diff --git a/nvim/.DS_Store b/nvim/.DS_Store
new file mode 100644
index 0000000..3b62c48
--- /dev/null
+++ b/nvim/.DS_Store
Binary files differ
diff --git a/nvim/.luarc.json b/nvim/.luarc.json
new file mode 100644
index 0000000..4a2c971
--- /dev/null
+++ b/nvim/.luarc.json
@@ -0,0 +1,10 @@
+{
+ "diagnostics.globals": [
+ "vim",
+ "bufnr"
+ ],
+ "diagnostics.disable": [
+ "unused-local",
+ "undefined-global"
+ ]
+} \ No newline at end of file
diff --git a/nvim/after/plugin/autopairs.lua b/nvim/after/plugin/autopairs.lua
new file mode 100644
index 0000000..4de6add
--- /dev/null
+++ b/nvim/after/plugin/autopairs.lua
@@ -0,0 +1 @@
+require("nvim-autopairs").setup()
diff --git a/nvim/after/plugin/fidget.lua b/nvim/after/plugin/fidget.lua
new file mode 100644
index 0000000..107d424
--- /dev/null
+++ b/nvim/after/plugin/fidget.lua
@@ -0,0 +1,83 @@
+require("fidget").setup {
+ progress = {
+ poll_rate = 0, -- How and when to poll for progress messages
+ suppress_on_insert = true, -- Suppress new messages while in insert mode
+ ignore_done_already = true, -- Ignore new tasks that are already complete
+ ignore_empty_message = true, -- Ignore new tasks that don't contain a message
+ clear_on_detach = -- Clear notification group when LSP server detaches
+ function(client_id)
+ local client = vim.lsp.get_client_by_id(client_id)
+ return client and client.name or nil
+ end,
+ notification_group = -- How to get a progress message's notification group key
+ function(msg) return msg.lsp_client.name end,
+ ignore = {}, -- List of LSP servers to ignore
+
+ -- Options related to how LSP progress messages are displayed as notifications
+ display = {
+ render_limit = 3, -- How many LSP messages to show at once
+ done_ttl = 3, -- How long a message should persist after completion
+ done_icon = "✔", -- Icon shown when all LSP progress tasks are complete
+ done_style = "Constant", -- Highlight group for completed LSP tasks
+ progress_ttl = math.huge, -- How long a message should persist when in progress
+ progress_icon = -- Icon shown when LSP progress tasks are in progress
+ { pattern = "dots", period = 1 },
+ progress_style = -- Highlight group for in-progress LSP tasks
+ "WarningMsg",
+ group_style = "Title", -- Highlight group for group name (LSP server name)
+ icon_style = "Question", -- Highlight group for group icons
+ priority = 30, -- Ordering priority for LSP notification group
+ skip_history = true, -- Whether progress notifications should be omitted from history
+ format_message = -- How to format a progress message
+ require("fidget.progress.display").default_format_message,
+ format_annote = -- How to format a progress annotation
+ function(msg) return msg.title end,
+ format_group_name = -- How to format a progress notification group's name
+ function(group) return tostring(group) end,
+ overrides = { -- Override options from the default notification config
+ rust_analyzer = { name = "rust-analyzer" },
+ },
+ },
+
+ -- Options related to Neovim's built-in LSP client
+ lsp = {
+ progress_ringbuf_size = 0, -- Configure the nvim's LSP progress ring buffer size
+ log_handler = false, -- Log `$/progress` handler invocations (for debugging)
+ },
+ },
+
+ -- Options related to notification subsystem
+ notification = {
+ window = {
+ normal_hl = "Comment", -- Base highlight group in the notification window
+ winblend = 0, -- Background color opacity in the notification window
+ border = "none", -- Border around the notification window
+ zindex = 45, -- Stacking priority of the notification window
+ max_width = 0, -- Maximum width of the notification window
+ max_height = 0, -- Maximum height of the notification window
+ x_padding = 1, -- Padding from right edge of window boundary
+ y_padding = 0, -- Padding from bottom edge of window boundary
+ align = "bottom", -- How to align the notification window
+ relative = "editor", -- What the notification window position is relative to
+ },
+ },
+
+ -- Options related to integrating with other plugins
+ integration = {
+ ["nvim-tree"] = {
+ enable = true, -- Integrate with nvim-tree/nvim-tree.lua (if installed)
+ },
+ ["xcodebuild-nvim"] = {
+ enable = true, -- Integrate with wojciech-kulik/xcodebuild.nvim (if installed)
+ },
+ },
+
+ -- Options related to logging
+ logger = {
+ level = vim.log.levels.WARN, -- Minimum logging level
+ max_size = 10000, -- Maximum log file size, in KB
+ float_precision = 0.01, -- Limit the number of decimals displayed for floats
+ path = -- Where Fidget writes its logs to
+ string.format("%s/fidget.nvim.log", vim.fn.stdpath("cache")),
+ },
+}
diff --git a/nvim/after/plugin/fugitive.lua b/nvim/after/plugin/fugitive.lua
new file mode 100644
index 0000000..80c9070
--- /dev/null
+++ b/nvim/after/plugin/fugitive.lua
@@ -0,0 +1 @@
+vim.keymap.set("n", "<leader>gs", vim.cmd.Git)
diff --git a/nvim/after/plugin/lsp.lua b/nvim/after/plugin/lsp.lua
new file mode 100644
index 0000000..6487a8e
--- /dev/null
+++ b/nvim/after/plugin/lsp.lua
@@ -0,0 +1,277 @@
+local lspkind = require('lspkind')
+local lspconfig = require("lspconfig")
+local cmp = require('cmp')
+local capabilities = require("cmp_nvim_lsp").default_capabilities()
+
+require("mason").setup({
+ registries = {
+ "github:mason-org/mason-registry",
+ "github:Crashdummyy/mason-registry",
+ },
+})
+
+require("mason-lspconfig").setup()
+
+cmp.setup({
+ snippet = {
+ expand = function(args)
+ require('luasnip').lsp_expand(args.body)
+ end,
+ },
+ mapping = cmp.mapping.preset.insert({
+ ['<C-b>'] = cmp.mapping.scroll_docs(-4),
+ ['<C-f>'] = cmp.mapping.scroll_docs(4),
+ ['<C-Space>'] = cmp.mapping.complete(),
+ ['<C-e>'] = cmp.mapping.abort(),
+ ['<C-x>'] = cmp.mapping.confirm({ select = true }),
+ }),
+ sources = cmp.config.sources({
+ { name = 'nvim_lsp' },
+ { name = 'luasnip' },
+ { name = 'buffer' },
+ { name = 'path' },
+ }),
+ formatting = {
+ format = lspkind.cmp_format({
+ mode = 'symbol_text',
+ maxwidth = 50,
+ ellipsis_char = '...',
+ show_labelDetails = true,
+ })
+ },
+ window = {
+ completion = {
+ winhighlight = "Normal:CmpNormal,FloatBorder:CmpBorder",
+ border = {
+ { "╭", "CmpBorder" },
+ { "─", "CmpBorder" },
+ { "╮", "CmpBorder" },
+ { "│", "CmpBorder" },
+ { "╯", "CmpBorder" },
+ { "─", "CmpBorder" },
+ { "╰", "CmpBorder" },
+ { "│", "CmpBorder" },
+ },
+ scrollbar = false,
+ },
+ documentation = {
+ winhighlight = "Normal:CmpDocNormal,FloatBorder:CmpDocBorder",
+ border = {
+ { "╭", "CmpDocBorder" },
+ { "─", "CmpDocBorder" },
+ { "╮", "CmpDocBorder" },
+ { "│", "CmpDocBorder" },
+ { "╯", "CmpDocBorder" },
+ { "─", "CmpDocBorder" },
+ { "╰", "CmpDocBorder" },
+ { "│", "CmpDocBorder" },
+ },
+ },
+ },
+})
+
+-- vim.api.nvim_set_hl(0, "CmpNormal", { bg = "#E0E2EB", blend = 0 })
+-- vim.api.nvim_set_hl(0, "CmpBorder", { fg = "#E0E2EB", bg = "#E0E2EB", blend = 0 })
+-- vim.api.nvim_set_hl(0, "CmpDocNormal", { bg = "#E0E2EB", blend = 0 })
+-- vim.api.nvim_set_hl(0, "CmpDocBorder", { fg = "#E0E2EB", bg = "#E0E2EB", blend = 0 })
+
+local options = { buffer = bufnr, remap = false }
+local on_attach = function(client, bufnr)
+ -- if vim.bo.filetype == 'csharp' or vim.bo.filetype == 'cs' or vim.bo.filetype == "c" or vim.bo.filetype == "cpp" or vim.bo.filetype == "swift" or vim.bo.filetype == "swiftinterface" or vim.bo.filetype == 'zig' then
+ client.server_capabilities.semanticTokensProvider = nil
+ -- end
+ vim.keymap.set('n', 'gd', '<cmd>lua require"telescope.builtin".lsp_definitions({jump_type="vsplit"})<CR>', options)
+ -- vim.keymap.set('n', 'gd', function() vim.lsp.buf.definition() end, options)
+ vim.keymap.set("n", "gr", function() vim.lsp.buf.references() end, options)
+ vim.keymap.set("n", "bh", function() vim.lsp.buf.hover() end, options)
+ vim.keymap.set("n", "ca", function() vim.lsp.buf.code_action() end, options)
+ vim.keymap.set("n", "cr", function() vim.lsp.buf.rename() end, options)
+ vim.keymap.set("n", "gv", function() vim.lsp.buf.signature_help() end, options)
+ vim.keymap.set("n", "gl", function() vim.diagnostic.open_float() end, options)
+ vim.keymap.set("n", "[d", function() vim.diagnostic.goto_next() end, options)
+ vim.keymap.set("n", "]d", function() vim.diagnostic.goto_prev() end, options)
+end
+
+vim.lsp.config("roslyn", {
+ on_attach = on_attach,
+ capabilities = capabilities,
+ settings = {
+ ["csharp|inlay_hints"] = {
+ csharp_enable_inlay_hints_for_implicit_object_creation = true,
+ csharp_enable_inlay_hints_for_implicit_variable_types = true,
+ },
+ ["csharp|code_lens"] = {
+ dotnet_enable_references_code_lens = true,
+ },
+ },
+})
+
+vim.api.nvim_create_autocmd('BufWritePre', {
+ callback = function()
+ vim.lsp.buf.format {
+ async = false,
+ }
+ end,
+})
+
+vim.api.nvim_create_autocmd('LspAttach', {
+ callback = function(args)
+ local client = vim.lsp.get_client_by_id(args.data.client_id)
+ client.server_capabilities.semanticTokensProvider = nil
+ end
+})
+
+vim.lsp.config("eslint_lsp",
+ {
+ experimental = {
+ useFlatConfig = true
+ },
+ on_attach = function(_client, bufnr)
+ vim.api.nvim_create_autocmd("BufWritePre", {
+ buffer = bufnr,
+ command = "EslintFixAll",
+ })
+ on_attach(_client, bufnr)
+ end,
+ filetypes = {
+ "javascript",
+ "javascriptreact",
+ "javascript.jsx",
+ "typescript",
+ "typescriptreact",
+ "typescript.tsx",
+ "vue",
+ "html",
+ "markdown",
+ "json",
+ "jsonc",
+ "yaml",
+ "toml",
+ "xml",
+ "gql",
+ "graphql",
+ "astro",
+ "svelte",
+ "css",
+ "less",
+ "scss",
+ "pcss",
+ "postcss"
+ },
+ }
+)
+
+vim.lsp.config('rust_analyzer', {
+ on_attach = on_attach,
+ capabilities = capabilities,
+ settings = {
+ ['rust-analyzer'] = {
+ diagnostics = {
+ enable = false;
+ }
+ }
+ }
+})
+
+vim.lsp.config('ocamllsp', {
+ on_attach = on_attach,
+ capabilities = capabilities,
+ cmd = { 'ocamllsp' },
+ filetypes = { 'ocaml', 'reason' },
+})
+
+vim.lsp.enable('ocamllsp')
+
+vim.lsp.config('alive', {
+ on_attach = on_attach,
+ capabilities = capabilities,
+ filetypes = { 'lisp' },
+ cmd = { 'alive-lsp' },
+})
+
+vim.lsp.enable('alive')
+
+vim.lsp.enable('rust_analyzer')
+
+vim.lsp.config("ols", {
+ on_attach = on_attach,
+ capabilities = capabilities,
+ init_options = {
+ checker_args = "-strict-style",
+ collections = {
+ { name = "shared", path = vim.fn.expand('$HOME/Odin/shared') }
+ },
+ },
+})
+
+vim.lsp.enable("ols")
+
+vim.lsp.config('hls', {
+ -- settings = {
+ -- haskell = {
+ -- cabalFormattingProvider = "cabal-fmt",
+ -- formattingProvider = "ormolu",
+ -- },
+ -- },
+ filetypes = { 'haskell', 'lhaskell', 'cabal' },
+})
+
+vim.lsp.enable('hls')
+
+local servers = {
+ "elixir-ls",
+ "ada_ls",
+ "zls",
+ "bashls",
+ "gopls",
+ "clangd",
+ "lua_ls",
+ "fortls",
+ "prettier",
+ "rubyfmt",
+ "tailwindcss",
+ "cmake",
+ "dockerls",
+ "ts_ls",
+ "eslint",
+ "ruby_lsp",
+ "yamlls",
+ "yamlfix",
+ "yamlfmt",
+ "yamllint",
+ "erlangls",
+ "jsonls",
+}
+
+for _, lsp in ipairs(servers) do
+ vim.lsp.config(lsp, {
+ on_attach = on_attach,
+ capabilities = capabilities
+ })
+ vim.lsp.enable(lsp)
+end
+
+vim.diagnostic.config({
+ virtual_text = true
+})
+
+vim.lsp.handlers["textDocument/publishDiagnostics"] = vim.lsp.with(
+ vim.lsp.diagnostic.on_publish_diagnostics, {
+ virtual_text = true
+ }
+)
+
+vim.lsp.inlay_hint.enable(false)
+
+vim.lsp.commands["editor.action.showReferences"] = function(command, ctx)
+ local locations = command.arguments[3]
+ local client = vim.lsp.get_client_by_id(ctx.client_id)
+ if locations and #locations > 0 then
+ local items = vim.lsp.util.locations_to_items(locations, client.offset_encoding)
+ vim.fn.setloclist(0, {}, " ", { title = "References", items = items, context = ctx })
+ vim.api.nvim_command("lopen")
+ end
+end
+
+
+
diff --git a/nvim/after/plugin/noice.lua b/nvim/after/plugin/noice.lua
new file mode 100644
index 0000000..25ae102
--- /dev/null
+++ b/nvim/after/plugin/noice.lua
@@ -0,0 +1,30 @@
+require("noice").setup({
+ lsp = {
+ override = {
+ ["vim.lsp.util.convert_input_to_markdown_lines"] = true,
+ ["vim.lsp.util.stylize_markdown"] = true,
+ ["cmp.entry.get_documentation"] = true,
+ },
+ progress = {
+ enabled = false,
+ format = "lsp_progress",
+ format_done = "lsp_progress_done",
+ throttle = 1000 / 30,
+ view = "mini",
+ },
+ },
+ views = {
+ mini = {
+ win_options = {
+ winblend = 0
+ }
+ },
+ },
+ presets = {
+ bottom_search = true,
+ command_palette = true,
+ long_message_to_split = true,
+ inc_rename = false,
+ lsp_doc_border = true,
+ },
+})
diff --git a/nvim/after/plugin/origami.lua b/nvim/after/plugin/origami.lua
new file mode 100644
index 0000000..f18f9ca
--- /dev/null
+++ b/nvim/after/plugin/origami.lua
@@ -0,0 +1,22 @@
+-- require("origami").setup {
+-- useLspFoldsWithTreesitterFallback = true, -- required for `autoFold`
+-- pauseFoldsOnSearch = true,
+-- foldtext = {
+-- enabled = true,
+-- padding = 3,
+-- lineCount = {
+-- template = "%d lines", -- `%d` is replaced with the number of folded lines
+-- hlgroup = "Comment",
+-- },
+-- diagnosticsCount = true, -- uses hlgroups and icons from `vim.diagnostic.config().signs`
+-- gitsignsCount = true, -- requires `gitsigns.nvim`
+-- },
+-- autoFold = {
+-- enabled = false,
+-- kinds = { "comment" }, ---@type lsp.FoldingRangeKind[]
+-- },
+-- foldKeymaps = {
+-- setup = true, -- modifies `h` and `l`
+-- hOnlyOpensOnFirstColumn = false,
+-- },
+-- }
diff --git a/nvim/after/plugin/telescope.lua b/nvim/after/plugin/telescope.lua
new file mode 100644
index 0000000..0ceff37
--- /dev/null
+++ b/nvim/after/plugin/telescope.lua
@@ -0,0 +1,14 @@
+require("telescope").setup {
+ defaults = {
+ file_ignore_patterns = { "yarn.lock", "node_modules/*", "_build/*", "ios/*", "android/*" },
+ preview = {
+ treesitter = true,
+ },
+ }
+}
+
+local builtin = require("telescope.builtin")
+
+vim.keymap.set('n', '<leader>pf', builtin.find_files, {})
+vim.keymap.set('n', '<C-p>', builtin.git_files, {})
+vim.keymap.set('n', '<C-f>', builtin.live_grep, {})
diff --git a/nvim/after/plugin/tree.lua b/nvim/after/plugin/tree.lua
new file mode 100644
index 0000000..555e223
--- /dev/null
+++ b/nvim/after/plugin/tree.lua
@@ -0,0 +1,35 @@
+require 'nvim-web-devicons'.setup {
+ strict = true,
+ override_by_extension = {
+ ["re"] = {
+ icon = "",
+ color = "#DC4C39",
+ name = "ReasonML"
+ },
+ ["rei"] = {
+ icon = "",
+ color = "#B8383C",
+ name = "ReasonMLInterface"
+ }
+ },
+}
+
+require 'nvim-tree'.setup {
+ git = {
+ ignore = false
+ },
+ update_focused_file = {
+ enable = true,
+ },
+ view = {
+ width = 24,
+ adaptive_size = true,
+ float = {
+ quit_on_focus_loss = true,
+ enable = true
+ }
+ }
+}
+
+vim.keymap.set('n', '<C-n>', vim.cmd.NvimTreeToggle)
+vim.keymap.set('n', '<leader>ff', vim.cmd.NvimTreeFindFile)
diff --git a/nvim/after/plugin/treesitter.lua b/nvim/after/plugin/treesitter.lua
new file mode 100644
index 0000000..817febf
--- /dev/null
+++ b/nvim/after/plugin/treesitter.lua
@@ -0,0 +1,61 @@
+require('nvim-treesitter.configs').setup {
+ ensure_installed = { "typescript", "cpp", "javascript", "lua", "ocaml", "go", "dockerfile", "php", "perl", "json", "yaml", "toml", "html", "css", "bash", "tsx", "python", "rust", "haskell" },
+ sync_install = false,
+ auto_install = true,
+ indent = {
+ enable = false,
+ },
+ highlight = {
+ enable = true,
+ additional_vim_regex_highlighting = false,
+ },
+}
+
+local parser_config = require "nvim-treesitter.parsers".get_parser_configs()
+parser_config.crystal = {
+ install_info = {
+ url = "https://github.com/crystal-lang-tools/tree-sitter-crystal",
+ files = { "src/parser.c", "src/scanner.c" },
+ branch = "main",
+ },
+ filetype = "crystal",
+}
+
+local list = require("nvim-treesitter.parsers").get_parser_configs()
+list.reason = {
+ install_info = {
+ url = "https://github.com/reasonml-editor/tree-sitter-reason",
+ files = { "src/parser.c", "src/scanner.c" },
+ branch = "master",
+ },
+}
+
+vim.filetype.add {
+ extension = {
+ re = "reason",
+ },
+}
+
+vim.treesitter.language.add("reason", { filetype = "reason" })
+
+require('treesitter-context').setup {
+ enable = false
+}
+
+local parser_config2 = require "nvim-treesitter.parsers".get_parser_configs()
+parser_config2.haxe = {
+ install_info = {
+ url = "https://github.com/vantreeseba/tree-sitter-haxe",
+ files = { "src/parser.c", "src/scanner.c" },
+ -- optional entries:
+ branch = "main",
+ },
+ filetype = "haxe",
+}
+
+vim.opt.foldmethod = "expr"
+vim.opt.foldexpr = "v:lua.vim.treesitter.foldexpr()"
+vim.opt.foldcolumn = "0"
+vim.opt.foldtext = ""
+vim.opt.foldlevel = 99
+vim.opt.foldnestmax = 4
diff --git a/nvim/after/plugin/undotree.lua b/nvim/after/plugin/undotree.lua
new file mode 100644
index 0000000..b6b9276
--- /dev/null
+++ b/nvim/after/plugin/undotree.lua
@@ -0,0 +1 @@
+vim.keymap.set("n", "<leader>u", vim.cmd.UndotreeToggle)
diff --git a/nvim/colors/bore.vim b/nvim/colors/bore.vim
new file mode 100644
index 0000000..436ffeb
--- /dev/null
+++ b/nvim/colors/bore.vim
@@ -0,0 +1,873 @@
+" Vim Color File"
+" Name: bore.vim"
+" Author: Ethan Morgan (@sixfourtwelve)"
+" Maintainer: https://github.com/sixfourtwelve/bore.vim"
+" License: The MIT License (MIT)"
+
+" === Colors ==="
+" --------------------------"
+:let _white = '#ffffff'
+:let _l_white = '#cacadd'
+:let _d_white = '#c8c8db'
+:let _gray_light = '#74778c'
+:let _gray = '#606375'
+:let _gray_dark = '#535560'
+:let _semigray = '#42444b'
+:let _lightblack = '#313e52'
+:let _semiblack = '#262f3e'
+:let _black = '#101010'
+
+:let _aubergine = '#FD98B9'
+:let _marzipan = '#ecc48d'
+:let _d_turquoise = '#7fdbca'
+:let _l_sky = '#9fd4ff'
+:let _sky = '#6cbeff'
+:let _sap = '#ebff00'
+:let _purple = '#c792ea'
+:let _pink = '#f45c7f'
+:let _green = '#addb67'
+
+" Clear any other set colors"
+highlight clear
+
+if exists("syntax_on")
+ syntax reset
+endif
+
+set t_Co=256
+
+let g:colors_name="bore"
+
+" Not all terminals support italics properly. If yours does, opt-in."
+if !exists("g:bore_terminal_italics")
+ let g:bore_terminal_italics = 0
+endif
+
+" === Functions ==="
+" Returns a darkened color using given color and the percent to darken it by."
+" Example: color_helper#hex_color_darken('#FFFFFF', 0.10)"
+" Returns: '#E5E5E5'"
+
+function! s:hex_color_darken(color, percent)
+ let l:rgb = s:hex_color_to_rgb(a:color)
+ let l:rgb_darkened = []
+
+ for i in l:rgb
+ call add(l:rgb_darkened, float2nr(i * (1 - a:percent)))
+ endfor
+
+ return s:rgb_color_to_hex(l:rgb_darkened)
+endfunction
+
+
+function! s:hex_color_to_rgb(hex_color)
+ let l:rgb = []
+
+ let l:red = s:hex_to_dec(strpart(a:hex_color, 1, 2))
+ let l:green = s:hex_to_dec(strpart(a:hex_color, 3, 2))
+ let l:blue = s:hex_to_dec(strpart(a:hex_color, 5, 2))
+ let l:rgb = [l:red, l:green, l:blue]
+
+ return l:rgb
+endfunction
+
+function! s:hex_to_dec(arg)
+ return (a:arg =~? '^0x') ? a:arg + 0 : ('0x'.a:arg) + 0
+endfunction
+
+function! s:dec_to_hex(arg, padding)
+ return toupper(printf('%0' . a:padding . 'x', a:arg + 0))
+endfunction
+
+function! s:rgb_color_to_hex(rgb_color)
+ let l:hex_color = '#'
+ let l:hex_color .= s:dec_to_hex(a:rgb_color[0], 2) " red"
+ let l:hex_color .= s:dec_to_hex(a:rgb_color[1], 2) " green"
+ let l:hex_color .= s:dec_to_hex(a:rgb_color[2], 2) " blue"
+
+ return l:hex_color
+endfunction
+
+let colorgroup = {}
+let colorgroup['Normal'] = {"GUIFG": _l_white, "GUIBG": _black}
+let colorgroup['NormalNC'] = {"GUIFG": _l_white, "GUIBG": _black}
+let colorgroup['NormalSB'] = {"GUIFG": _d_white, "GUIBG": _semiblack}
+let colorgroup['NormalFloat'] = {"GUIFG": _l_white, "GUIBG": _black}
+let colorgroup['FloatBorder'] = {"GUIFG": _lightblack}
+let colorgroup['Darker'] = {"GUIFG": _gray, "GUIBG": _black}
+let colorgroup['ColorColumn'] = {"GUIFG": _black, "GUIBG": _aubergine}
+"let colorgroup['Conceal'] = {"GUIFG": _sap, "GUI": "bold"}
+let colorgroup['Conceal'] = {"GUIFG": _sap }
+let colorgroup['Cursor'] = {"GUIFG": _black, "GUIBG": _aubergine}
+let colorgroup['iCursor'] = {"GUIFG": _black, "GUIBG": _marzipan}
+let colorgroup['CursorLine'] = {"GUIFG": "NONE", "GUIBG": _semiblack}
+let colorgroup['CursorLineNr'] = {"GUIFG": _gray_dark, "GUIBG": _black}
+let colorgroup['Directory'] = {"GUIFG": _marzipan, "GUIBG": _black}
+let colorgroup['ErrorMsg'] = {"GUIFG": _black, "GUIBG": _aubergine}
+let colorgroup['FoldColumn'] = { "GUIBG": _black}
+let colorgroup['Folded'] = {"GUIFG": _l_white, "GUIBG": _semiblack}
+let colorgroup['LineNr'] = {"GUIFG": _lightblack, "GUIBG": _black}
+if &background == "light"
+ let colorgroup['LineNr'] = {"GUIFG": _gray, "GUIBG": _black}
+endif
+let colorgroup['MatchParen'] = {"GUIFG": _black, "GUIBG": _l_white}
+let colorgroup['ModeMsg'] = {"GUIFG": _black, "GUIBG": _marzipan}
+let colorgroup['Whitespace'] = {"GUIFG": _semiblack, "CTERMFG":235}
+
+"Popup menu: normal item"
+let colorgroup['Pmenu'] = {"GUIFG": _l_white, "GUIBG": _semiblack}
+"Popup menu: selected item"
+let colorgroup['PmenuSel'] = {"GUIBG": _gray_dark}
+"Popup menu: scrollbar"
+let colorgroup['PmenuSbar'] = {"GUIBG": _black}
+"Thumb of the scrollbar."
+let colorgroup['PmenuThumb'] = {"GUIBG": _black}
+
+let colorgroup['Search'] = {"GUIBG": _gray_dark, "GUI": "underline"}
+let colorgroup['SignColumn'] = {"GUIBG": _black}
+let colorgroup['StatusLine'] = {"GUIFG": _gray, "GUIBG": _semiblack}
+let colorgroup['StatusLineNC'] = {"GUIFG": _gray_dark, "GUIBG": _semiblack}
+let colorgroup['Tabline'] = {"GUIFG": _gray, "GUIBG": _semiblack}
+let colorgroup['TablineFill'] = {"GUIBG": _black}
+let colorgroup['TabLineSel'] = {"GUIFG": _gray_dark, "GUIBG": _black}
+"let colorgroup['Title'] = {"GUIFG": _marzipan, "GUI": "bold"}
+let colorgroup['Title'] = {"GUIFG": _marzipan}
+let colorgroup['Todo'] = {"GUIFG": _black, "GUIBG": _sky, "GUI": "italic"}
+let colorgroup['VertSplit'] = {"GUIFG": _lightblack}
+let colorgroup['Visual'] = {"GUIBG": _gray_dark}
+let colorgroup['WarningMsg'] = {"GUIFG": _pink, "GUIBG": _black}
+
+" === Other highlighting groups ==="
+"let colorgroup['Access'] = {"GUIFG": _marzipan, "GUI": "bold"}
+let colorgroup['Access'] = {"GUIFG": _marzipan }
+let colorgroup['Character'] = {"GUIFG": _sky}
+let colorgroup['Define'] = {"GUIFG": _gray_light}
+let colorgroup['Function'] = {"GUIFG": _d_turquoise}
+let colorgroup['Label'] = {"GUIFG": _d_turquoise}
+let colorgroup['Module'] = {"GUIFG": _aubergine, "GUI": "underline"}
+let colorgroup['NonText'] = {"GUIFG": _gray_dark}
+let colorgroup['String'] = {"GUIFG": _marzipan}
+let colorgroup['Structure'] = {"GUIFG": _white}
+let colorgroup['Object'] = {"GUIFG": _gray}
+let colorgroup['Xml'] = {"GUIFG": _purple}
+let colorgroup['Punctuation'] = {"GUIFG": _purple}
+let colorgroup['Attr'] = {"GUIFG": _d_turquoise}
+
+" === Syntax ==="
+let colorgroup['Comment'] = {"GUIFG": _gray_light, "CTERMFG":244, "CTERMBG":"NONE", "GUIBG": "NONE", "GUISP":"NONE", "CTERM":"NONE", "GUI":"NONE"}
+"let colorgroup['Constant'] = {"GUIFG": _l_sky, "GUI": "bold"}
+let colorgroup['Constant'] = {"GUIFG": _l_sky}
+let colorgroup['Identifier'] = {"GUIFG": _aubergine}
+let colorgroup['Operator'] = {"GUIFG": _gray_light}
+let colorgroup['Statement'] = {"GUIFG": _l_sky}
+let colorgroup['PreProc'] = {"GUIFG": _white}
+let colorgroup['Type'] = {"GUIFG": _white}
+let colorgroup['Special'] = {"GUIFG": _l_sky}
+let colorgroup['Underlined'] = {"GUIFG": _marzipan, "GUI": "underline"}
+let colorgroup['Error'] = {"GUIFG": _black, "GUIBG": _aubergine}
+let colorgroup['MarkdownH1'] = {"GUIFG": _sky, "GUI": "bold"}
+let colorgroup['MarkdownH2'] = {"GUIFG": _l_sky, "GUI": "bold"}
+let colorgroup['MarkdownLinkText'] = {"GUIFG": _l_sky, "GUI": "underline"}
+
+" === Own highlighting groups ==="
+let colorgroup['UnderlinedBold'] = {"GUIFG": _marzipan, "GUI": "underline,bold"}
+
+" === GitGutter highlighting groups ==="
+let colorgroup['GitGutterAdd'] = {"GUIFG": _green, "GUIBG": _black}
+let colorgroup['GitGutterChange'] = {"GUIFG": _sap, "GUIBG": _black}
+let colorgroup['GitGutterDelete'] = {"GUIFG": _pink, "GUIBG": _black}
+let colorgroup['GitGutterChangeDelete'] = {"GUIFG": _sap, "GUIBG": _black}
+
+" === Git highlighting groups ==="
+let colorgroup['DiffAdd'] = {"GUIFG": _green, "GUIBG": _black, "GUI":"NONE"}
+let colorgroup['DiffChange'] = {"GUIFG": _white, "GUIBG": _black, "GUI":"NONE"}
+let colorgroup['DiffDelete'] = {"GUIFG": _pink, "GUIBG": _black, "GUI":"NONE"}
+let colorgroup['DiffText'] = {"GUIFG": _pink, "GUIBG": _black, "GUI":"NONE"}
+
+" === NvimTree highlighting groups ==="
+let colorgroup['NvimTreeNormal'] = {"GUIFG": _d_white, "GUIBG": _black }
+let colorgroup['NvimTreeNormalNC'] = {"GUIFG": _d_white, "GUIBG": _black }
+let colorgroup['NvimTreeRootFolder'] = {"GUIFG": _gray_light, "GUIBG": _black, "GUI":"bold"}
+let colorgroup['NvimTreeFolderName'] = {"GUIFG": _gray_light, "GUIBG": _black }
+let colorgroup['NvimTreeOpenedFolderName'] = {"GUIFG": _d_white, "GUIBG": _black }
+let colorgroup['NvimTreeGitDirty'] = {"GUIFG": _marzipan, "GUIBG": _black }
+let colorgroup['NvimTreeGitNew'] = {"GUIFG": _green, "GUIBG": _black }
+let colorgroup['NvimTreeGitDeleted'] = {"GUIFG": _pink, "GUIBG": _black }
+let colorgroup['NvimTreeSpecialFile'] = {"GUIFG": _d_turquoise, "GUIBG": _black, "GUI":"underline"}
+let colorgroup['NvimTreeIndentMarker'] = {"GUIFG": _lightblack, "GUIBG": _black}
+let colorgroup['NvimTreeImageFile'] = {"GUIFG": _d_white, "GUIBG": _black }
+let colorgroup['NvimTreeSymlink'] = {"GUIFG": _d_white, "GUIBG": _black }
+let colorgroup['NvimTreeGitStaged'] = {"GUIFG": _d_white, "GUIBG": _black }
+let colorgroup['NvimTreeGitMerge'] = {"GUIFG": _d_white, "GUIBG": _black }
+let colorgroup['NvimTreeGitRenamed'] = {"GUIFG": _d_white, "GUIBG": _black }
+
+" === COMPLETION highlighting groups ==="
+let colorgroup['CmpDocumentation'] = {"GUIFG": _d_white, "GUIBG": _black, "GUI":"NONE" }
+let colorgroup['CmpDocumentationBorder'] = {"GUIFG": _d_white, "GUIBG": _d_white, "GUI":"NONE" }
+"uncompleted item that may be good for completion"
+let colorgroup['CmpItemAbbr'] = {"GUIFG": _d_white, "GUIBG": _black, "GUI":"NONE" }
+let colorgroup['CmpItemAbbrDeprecated'] = {"GUIFG": _d_white, "GUIBG": _black, "GUI":"NONE" }
+"matched item (what you typed until present)"
+let colorgroup['CmpItemAbbrMatch'] = {"GUIFG": _aubergine, "GUIBG": _black, "GUI":"NONE" }
+"fuzzy match for what you typed"
+let colorgroup['CmpItemAbbrMatchFuzzy'] = {"GUIFG": _black, "GUIBG": _black, "GUI":"NONE" }
+let colorgroup['CmpItemKind'] = {"GUIFG": _aubergine, "GUIBG": _black, "GUI":"NONE" }
+let colorgroup['CmpItemMenu'] = {"GUIFG": _d_white, "GUIBG": _black, "GUI":"NONE" }
+
+let colorgroup['LspDiagnosticsDefaultError'] = {"GUIFG": _pink, "GUIBG": _black }
+let colorgroup['LspDiagnosticsDefaultWarning'] = {"GUIFG": _marzipan, "GUIBG": _black }
+let colorgroup['LspDiagnosticsDefaultHint'] = {"GUIFG": _d_white, "GUIBG": _black }
+
+let colorgroup['LspFloatWinNormal'] = {"GUIFG": _d_white, "GUIBG": _black }
+let colorgroup['LspFloatWinBorder'] = {"GUIFG": _black, "GUIBG": _black }
+let colorgroup['LspFloatWinBorder'] = {"GUIFG": _black, "GUIBG": _black }
+let colorgroup['LspFloatWinBorder'] = {"GUIFG": _black, "GUIBG": _black }
+
+ let colorgroup['BufferLineIndicatorSelected'] = {"GUIFG": _l_sky}
+ let colorgroup['BufferLineFill'] = {"GUIBG": _pink}
+
+"used for highlighting the current line in terminal-debug"
+let colorgroup['debugPC'] = {"GUIBG": _black}
+"used for breakpoint colors in terminal-debug"
+let colorgroup['debugBreakpoint'] = {"GUIBG": _semiblack}
+
+"These groups are for the native LSP client. Some other LSP clients may"
+"use these groups, or use their own. Consult your LSP client's"
+"documentation."
+
+"used for highlighting 'text' references"
+let colorgroup['LspReferenceText'] = {"GUIBG": _gray_light }
+"used for highlighting 'read' references"
+let colorgroup['LspReferenceRead'] = {"GUIBG": _gray_light }
+"used for highlighting 'write' references"
+let colorgroup['LspReferenceWrite'] = {"GUIBG": _gray_light }
+
+let colorgroup['DiagnosticError'] = {"GUIFG": _pink, "GUIBG": _black}
+let colorgroup['DiagnosticWarn'] = {"GUIFG": _marzipan, "GUIBG": _black }
+let colorgroup['DiagnosticInfo'] = {"GUIFG": _sky, "GUIBG": _black }
+let colorgroup['DiagnosticHint'] = {"GUIFG": _d_turquoise, "GUIBG": _black }
+
+let colorgroup['DiagnosticVirtualTextError'] = {"GUIFG": _pink, "GUIBG": _black }
+let colorgroup['DiagnosticVirtualTextWarn'] = {"GUIFG": _marzipan, "GUIBG": _black }
+let colorgroup['DiagnosticVirtualTextInfo'] = {"GUIFG": _sky, "GUIBG": _black }
+let colorgroup['DiagnosticVirtualTextHint'] = {"GUIFG": _d_turquoise, "GUIBG": _black }
+
+let colorgroup['DiagnosticUnderlineError'] = {"style": "undercurl", "sp": _pink }
+let colorgroup['DiagnosticUnderlineWarn'] = {"style": "undercurl", "sp": _marzipan }
+let colorgroup['DiagnosticUnderlineInfo'] = {"style": "undercurl", "sp": _sky }
+let colorgroup['DiagnosticUnderlineHint'] = {"style": "undercurl", "sp": _d_turquoise }
+
+" === Highlighting Links ==="
+hi link Boolean Number
+hi link Class Constant
+hi link Delimiter Define
+hi link Debug Special
+hi link Conditional Define
+hi link Exception PreProc
+hi link Float Number
+hi link Include PreProc
+hi link Macro PreProc
+hi link Number Identifier
+hi link Operator Identifier
+hi link PreCondit PreProc
+hi link Repeat Statement
+hi link SpecialChar Special
+hi link SpecialComment Special
+hi link SpecialKey Define
+hi link StorageClass Identifier
+hi link Symbol PreProc
+hi link Tag Normal
+hi link Typedef Type
+
+" === Highlighting Plugins ==="
+
+" CtrlP "
+hi link CtrlPMatch Character
+
+" Git commit "
+hi link gitcommitBranch Constant
+hi link gitcommitSelectedFile Statement
+hi link gitcommitDiscardedFile Structure
+hi link gitcommitUntrackedFile Structure
+hi link gitcommitSummary String
+
+" GitGutter "
+hi link GitGutterAdd GitGutterAdd
+hi link GitGutterChange GitGutterChange
+hi link GitGutterDelete GitGutterDelete
+hi link GitGutterChangeDelete GitGutterChangeDelete
+
+" Signify "
+hi link SignifySignAdd GitGutterAdd
+hi link SignifySignChange GitGutterChange
+hi link SignifySignChangeDelete GitGutterChangeDelete
+hi link SignifySignDelete GitGutterDelete
+hi link SignifySignDeleteFirstLine SignifySignDelete
+
+" NERDtree "
+hi link NerdTreeCWD Character
+hi link NerdTreeHelpKey Character
+hi link NerdTreeHelpTitle Statement
+hi link NerdTreeOpenable NerdTreeCWD
+hi link NerdTreeClosable Statement
+hi link NerdTreeDir Normal
+hi link NerdTreeDirSlash NerdTreeDir
+
+" PlainTasks (.todo) "
+hi link ptCompleteTask Number
+hi link ptContext Type
+hi link ptSection Title
+hi link ptTask Normal
+
+" VimPlug "
+hi link plugName Character
+
+" Startify "
+hi link StartifyNumber Character
+hi link StartifyBracket StartifyNumber
+hi link StartifySection Title
+hi link StartifyPath Define
+hi link StartifySlash StartifyPath
+hi link StartifyFile Normal
+
+" === Highlighting Languages/Tools ==="
+
+" highlight clear ALEErrorSign "
+if exists('g:ale_enabled')
+ hi! link ALEError WarningMsg
+ hi! link ALEWarning WarningMsg
+ hi! link ALEInfo WarningMsg
+
+ hi! link ALEErrorSign WarningMsg
+ hi! link ALEWarningSign WarningMsg
+ hi! link ALEInfoSign WarningMsg
+ hi! link ALEVirtualTextWarning WarningMsg
+ hi! link ALEVirtualTextError WarningMsg
+endif
+
+" Apache "
+hi link apacheDeclaration PreProc
+
+" CoffeeScript "
+hi link coffeeExtendedOp Character
+hi link coffeeObject Statement
+hi link coffeeObjAssign Character
+hi link coffeeParen Character
+
+" CSS "
+hi link cssAttr Identifier
+hi link cssColor Normal
+hi link cssClassName String
+hi link cssProp Function
+hi link cssPseudoClass Character
+hi link cssPseudoClassId Character
+hi link cssSelectorOp Character
+hi link cssTagName Identifier
+hi link cssDefinition Identifier
+hi link cssNoise Punctuation
+hi link cssBraces Punctuation
+hi link cssIdentifier Punctuation
+hi link cssIncludeKeyword Punctuation
+hi link cssUnitDecorators String
+
+" GraphQL "
+hi link graphqlName Function
+hi link graphqlString Comment
+
+" HAML "
+hi link hamlTag Character
+
+" HTML "
+"hi link javaScript Normal"
+hi link htmlTag Label
+hi link htmlEndTag Label
+hi link htmlTagName Label
+hi link htmlScriptTag Label
+hi link htmlArg Attr
+hi link htmlTitle Normal
+hi link htmlH1 Normal
+hi link htmlH2 htmlH1
+hi link htmlH3 htmlH1
+hi link htmlH4 htmlH1
+hi link htmlH5 htmlH1
+hi link htmlH6 htmlH1
+
+" JavaScript "
+hi link javascriptFuncArg Character
+hi link javascriptFuncComma Punctuation
+hi link javascriptFuncDef Statement
+hi link javascriptFuncKeyword Statement
+hi link javascriptOpSymbols Type
+hi link javascriptParens Punctuation
+hi link javascriptEndcolons Character
+hi link jsArrowFuncArgs Normal
+hi link jsArrowFunction Identifier
+hi link jsBraces Punctuation
+hi link jsBrackets Punctuation
+hi link jsClassBraces Punctuation
+hi link jsClassDefinition Class
+hi link jsClassFuncName Function
+hi link jsClassKeyword Identifier
+hi link jsClassProperty Normal
+hi link jsClassBlock Identifier
+hi link jsDecorator Normal
+hi link jsDestructuringBraces Punctuation
+hi link jsExtendsKeyword jsClassKeyword
+hi link jsExport Identifier
+hi link jsImport Module
+hi link jsFrom Identifier
+hi link jsFuncBraces Punctuation
+hi link jsFunction Identifier
+hi link jsFuncCall Function
+hi link jsFuncParens Punctuation
+hi link jsFunctionKey Function
+hi link jsGlobalObjects Identifier
+hi link jsGlobalNodeObjects Identifier
+hi link jsIfElseBraces Punctuation
+hi link jsModuleBraces Normal
+hi link jsModuleKeyword Tag
+hi link jsNoise Delimiter
+hi link jsObjectBraces Punctuation
+hi link jsObjectKey Normal
+hi link jsObjectValue PreProc
+hi link jsObjectProp Function
+hi link jsObjectColon Punctuation
+hi link jsObjectShorthandProp Punctuation
+hi link jsParens Punctuation
+hi link jsReturn Identifier
+hi link jsSpreadOperator Identifier
+hi link jsThis Identifier
+
+" JSON "
+hi link jsonKeyword Attr
+hi link jsonKeywordMatch Punctuation
+hi link jsonQuote Attr
+hi link jsonNoise Punctuation
+hi link jsonString Punctuation
+hi link jsonBraces Normal
+hi link jsonBoolean WarningMsg
+
+hi link jsonNumError Comment
+hi link jsonCommentError Comment
+hi link jsonSemicolonError Comment
+hi link jsonTrailingCommaError Comment
+hi link jsonMissingCommaError Comment
+hi link jsonStringSQError Comment
+hi link jsonNoQuotesError Punctuation
+hi link jsonTripleQuotesError Punctuation
+
+" hi link texSpecialChar Special "
+" Markdown "
+hi link markdownHeadingDelimiter Identifier
+hi link markdownCode Identifier
+hi link markdownIndentCode Identifier
+hi link markdownLineBreak Statement
+hi link markdownH1 MarkdownH1
+hi link markdownH2 MarkdownH2
+hi link markdownLinkText markdownLinkText
+
+" MatchTagAlways "
+hi link MatchTag Identifier
+
+" PHP "
+hi link phpRegion Comment
+hi link phpConstant WarningMsg
+hi link phpCoreConstant WarningMsg
+hi link phpComment Comment
+hi link phpDocTags WarningMsg
+hi link phpDocCustomTags WarningMsg
+hi link phpException WarningMsg
+hi link phpBoolean WarningMsg
+hi link phpClass String
+hi link phpStaticClasses String
+hi link phpClassDelimiter WarningMsg
+hi link phpFunction Label "Custom functions"
+hi link phpFunctions Character "Built-in functions"
+hi link phpSuperglobals Normal "Global functions"
+hi link phpMagicConstants Normal "__CLASS__"
+hi link phpServerVars WarningMsg
+hi link phpMethods WarningMsg
+hi link phpMethodsVar Label
+hi link phpSplatOperator Label
+hi link phpStringDelimiter String "String Quotes"
+hi link phpStructure Label
+hi link phpStringSingle String
+hi link phpStringDouble Identifier
+hi link phpBacktick Identifier
+hi link phpNumber Identifier
+hi link phpFloat WarningMsg
+hi link phpBaselib Identifier
+hi link phpRepeat WarningMsg
+hi link phpStatement Identifier
+hi link phpKeyword Identifier "function"
+hi link phpSCKeyword Identifier
+hi link phpFCKeyword Identifier
+hi link phpYieldFromKeyword Identifier
+hi link phpDocNamespaceSeparator WarningMsg
+hi link phpClassNamespaceSeparator WarningMsg
+hi link phpUseNamespaceSeparator WarningMsg
+hi link phpType Identifier "public, privat, protected"
+hi link phpInclude Identifier
+hi link phpDefine WarningMsg
+hi link phpBackslashSequences WarningMsg
+hi link phpBackslashDoubleQuote WarningMsg
+hi link phpBackslashSingleQuote WarningMsg
+hi link phpParent Punctuation
+hi link phpBrackets Punctuation
+hi link phpIdentifierConst WarningMsg
+hi link phpParentError WarningMsg
+hi link phpOctalError WarningMsg
+hi link phpInterpSimpleError WarningMsg
+hi link phpInterpBogusDollarCurley WarningMsg
+hi link phpInterpDollarCurly1 WarningMsg
+hi link phpInterpDollarCurly2 WarningMsg
+hi link phpInterpSimpleBracketsInner WarningMsg
+hi link phpInterpSimpleCurly WarningMsg
+hi link phpInterpVarname WarningMsg
+hi link phpIntVar Punctuation
+hi link phpVarSelector PreProc "$ sign"
+hi link phpMemberSelector Identifier "->"
+hi link phpIdentifier PreProc
+hi link phpTodo Identifier
+hi link phpDocTodo Identifier
+hi link phpOperator Identifier "+, -, x, *"
+hi link phpRelation WarningMsg
+hi link phpIdentifierSimply WarningMsg
+
+"Pug"
+hi link pugHtmlConditionalComment WarningMsg
+
+" Python "
+hi link pythonMagic Identifier
+hi link pythonBuiltin Identifier
+hi link pythonStatement Identifier
+hi link pythonOperator Punctuation
+hi link pythonFunction Character
+hi link pythonString Label
+hi link pythonImport Identifier
+hi link pythonDef Punctuation
+hi link pythonAs Punctuation
+hi link pythonDocstring Punctuation
+hi link pythonSpecial Punctuation
+hi link pythonDecorator Punctuation
+hi link pythonExceptions Punctuation
+
+" Ruby "
+hi link rubyAccess Access
+hi link rubyBlockParameterList PreProc
+hi link rubyCallback Character
+hi link rubyClass Label
+hi link rubyClassName UnderlinedBold
+hi link rubyControl Statement
+hi link rubyConstant Constant
+hi link rubyEntity Character
+hi link rubyInclude Include
+hi link rubyInterpolation Identifier
+hi link rubyMacro Character
+hi link rubyModule Module
+hi link rubyStringDelimiter rubyString
+hi link rubySymbol Symbol
+hi link rubyRoute Type
+
+" SASS "
+hi link sassClassChar Type
+hi link sassClass Type
+hi link sassIdChar Type
+hi link sassId Type
+hi link sassProperty Type
+hi link scssProperty Identifier
+hi link scssMixin Identifier
+hi link scssVariable Attr
+hi link scssInclude Identifier
+hi link scssExtend Identifier
+hi link scssFunctionDefinition Identifier
+hi link scssReturn Identifier
+hi link scssEachKeyword Identifier
+hi link scssForKeyword Identifier
+hi link scssImport Identifier
+hi link scssSemicolon Punctuation
+hi link scssAtRoot Identifier
+hi link scssSelectorName String
+
+" Slim "
+hi link slimBegin Normal
+hi link slimClass Character
+hi link slimClassChar Character
+hi link slimId Character
+hi link slimIdChar Character
+hi link rubyKeyword PreProc
+hi link slimText Normal
+
+" TypeScript "
+hi link typescriptBOM Normal
+hi link typescriptBraces Punctuation
+hi link typescriptParens Punctuation
+hi link typescriptTypeReference String
+hi link typescriptAsyncFuncKeyword Identifier
+hi link typescriptAsyncFunc Identifier
+hi link typescriptArrowFunc Identifier
+hi link typescriptFuncKeyword Identifier
+hi link typescriptArrowFuncArg Identifier
+hi link typescriptFuncName Function
+hi link typescriptFuncArg Identifier
+hi link typescriptFuncComma Identifier
+hi link typescriptFuncTypeArrow String
+hi link typescriptTemplate Attr
+hi link typescriptTemplateSB Attr
+hi link typescriptObjectLabel Normal
+hi link typescriptDestructureLabel Attr
+hi link typescriptObjectAsyncKeyword Attr
+hi link typescriptInterfaceKeyword Identifier
+hi link typescriptInterfaceExtends Identifier
+hi link typescriptInterfaceName String
+hi link typescriptImport Identifier
+hi link typescriptImportType Normal
+hi link typescriptExport Identifier
+hi link typescriptExportType Normal
+"Types=> key:value"
+hi link typescriptMember Normal
+hi link typescriptPredefinedType Attr
+hi link typescriptStringMember Normal
+hi link typescriptString String
+hi link typescriptConditional Identifier
+hi link typescriptConditionalElse Identifier
+"default"
+hi link typescriptCase Identifier
+hi link typescriptDefault Identifier
+hi link typescriptMethodAccessor String
+hi link typescriptKeywordOp String
+"return"
+hi link typescriptStatementKeyword Identifier
+hi link typescriptNull Attr
+hi link typescriptBoolean Attr
+hi link typescriptConstructorType Attr
+hi link typescriptTypeQuery Attr
+hi link typescriptAccessibilityModifier Attr
+hi link typescriptOptionalMark Attr
+hi link typescriptReadonlyModifier Attr
+hi link typescriptTypeParameter Attr
+
+" VimL "
+hi link vimCmdSep Character
+
+" YAML "
+hi link yamlBlockMappingKey Punctuation
+hi link yamlDocumentStart Punctuation
+hi link yamlKeyValueDelimiter Punctuation
+hi link yamlPlainScalar Punctuation
+
+" XML "
+" hi link xmlAttrib Normal"
+hi link xmlTag Xml
+hi link xmlTagName Identifier
+hi link xmlEndTag Tag
+hi link xmlAttrib Attr
+
+" === Expand colorgroups === "
+
+let s:colors = {}
+" http://choorucode.com/2011/07/29/vim-chart-of-color-names/"
+
+let valid_cterm_colors =
+ \ [
+ \ 'Black', 'DarkBlue', 'DarkGreen', 'DarkCyan',
+ \ 'DarkRed', 'DarkMagenta', 'Brown', 'DarkYellow',
+ \ 'LightGray', 'LightGrey', 'Gray', 'Grey',
+ \ 'DarkGray', 'DarkGrey', 'Blue', 'LightBlue',
+ \ 'Green', 'LightGreen', 'Cyan', 'LightCyan',
+ \ 'Red', 'LightRed', 'Magenta', 'LightMagenta',
+ \ 'Yellow', 'LightYellow', 'White',
+ \ ]
+for key in keys(colorgroup)
+ let s:colors = colorgroup[key]
+ if has_key(s:colors, 'TERM')
+ let term = s:colors['TERM']
+ else
+ let term = 'NONE'
+ endif
+ if has_key(s:colors, 'GUI')
+ let gui = s:colors['GUI']
+ else
+ let gui='NONE'
+ endif
+ if has_key(s:colors, 'GUIFG')
+ let guifg = s:colors['GUIFG']
+ else
+ let guifg='NONE'
+ endif
+ if has_key(s:colors, 'GUIBG')
+ let guibg = s:colors['GUIBG']
+ else
+ let guibg='NONE'
+ endif
+ if g:bore_terminal_italics == 0
+ if has_key(s:colors, 'CTERM') && s:colors["CTERM"] == "italic"
+ unlet a:colors.CTERM
+ endif
+ if has_key(s:colors, "GUI") && s:colors["GUI"] == "italic"
+ unlet s:colors.GUI
+ endif
+ endif
+ if has_key(s:colors, 'CTERM')
+ let cterm = s:colors['CTERM']
+ else
+ let cterm=gui
+ endif
+ if has_key(s:colors, 'CTERMFG')
+ let ctermfg = s:colors['CTERMFG']
+ else
+ if index(valid_cterm_colors, guifg) != -1
+ let ctermfg=guifg
+ else
+ let ctermfg='Blue'
+ endif
+ endif
+ if has_key(s:colors, 'CTERMBG')
+ let ctermbg = s:colors['CTERMBG']
+ else
+ if index(valid_cterm_colors, guibg) != -1
+ let ctermbg=guibg
+ else
+ let ctermbg='NONE'
+ endif
+ endif
+ if has_key(s:colors, 'GUISP')
+ let guisp = s:colors['GUISP']
+ else
+ let guisp='NONE'
+ endif
+ if key =~ '^\k*$'
+ execute "hi ".key." term=".term." cterm=".cterm." gui=".gui." ctermfg=".ctermfg." guifg=".guifg." ctermbg=".ctermbg." guibg=".guibg." guisp=".guisp
+ endif
+endfor
+
+hi DiffAdd ctermbg=NONE ctermfg=15 cterm=NONE guibg=NONE guifg=#d0d0d0 gui=NONE
+hi DiffChange ctermbg=NONE ctermfg=15 cterm=NONE guibg=NONE guifg=#d0d0d0 gui=NONE
+hi DiffDelete ctermbg=NONE ctermfg=15 cterm=NONE guibg=NONE guifg=#d0d0d0 gui=NONE
+hi DiffText ctermbg=NONE ctermfg=15 cterm=NONE guibg=NONE guifg=#d0d0d0 gui=NONE
+hi IncSearch ctermbg=8 ctermfg=NONE cterm=NONE guibg=#272727 guifg=NONE gui=NONE
+hi Search ctermbg=NONE ctermfg=15 cterm=NONE guibg=NONE guifg=#d0d0d0 gui=NONE
+hi Directory ctermbg=NONE ctermfg=8 cterm=NONE guibg=NONE guifg=#808080 gui=NONE
+hi MatchParen ctermbg=NONE ctermfg=15 cterm=NONE guibg=NONE guifg=#d0d0d0 gui=NONE
+hi SpellBad ctermbg=NONE ctermfg=15 cterm=NONE guibg=NONE guifg=#d0d0d0 gui=NONE guisp=#b3646e
+hi SpellCap ctermbg=NONE ctermfg=15 cterm=NONE guibg=NONE guifg=#d0d0d0 gui=NONE guisp=#7fa7c9
+hi SpellLocal ctermbg=NONE ctermfg=15 cterm=NONE guibg=NONE guifg=#d0d0d0 gui=NONE guisp=#a2a6d4
+hi SpellRare ctermbg=NONE ctermfg=15 cterm=NONE guibg=NONE guifg=#d0d0d0 gui=NONE guisp=#91cecf
+hi ColorColumn ctermbg=NONE ctermfg=15 cterm=NONE guibg=NONE guifg=#d0d0d0 gui=NONE
+hi SignColumn ctermbg=NONE ctermfg=15 cterm=NONE guibg=NONE guifg=#d0d0d0 gui=NONE
+hi ErrorMsg ctermbg=NONE ctermfg=15 cterm=NONE guibg=NONE guifg=#d0d0d0 gui=NONE
+hi ModeMsg ctermbg=NONE ctermfg=15 cterm=NONE guibg=NONE guifg=#d0d0d0 gui=NONE
+hi MoreMsg ctermbg=NONE ctermfg=15 cterm=NONE guibg=NONE guifg=#d0d0d0 gui=NONE
+hi Question ctermbg=NONE ctermfg=15 cterm=NONE guibg=NONE guifg=#d0d0d0 gui=NONE
+hi Cursor ctermbg=NONE ctermfg=15 cterm=NONE guibg=NONE guifg=#d0d0d0 gui=NONE
+hi CursorColumn ctermbg=NONE ctermfg=15 cterm=NONE guibg=NONE guifg=#d0d0d0 gui=NONE
+hi QuickFixLine ctermbg=NONE ctermfg=15 cterm=NONE guibg=NONE guifg=#d0d0d0 gui=NONE
+hi Conceal ctermbg=NONE ctermfg=15 cterm=NONE guibg=NONE guifg=#d0d0d0 gui=NONE
+hi ToolbarLine ctermbg=NONE ctermfg=15 cterm=NONE guibg=NONE guifg=#d0d0d0 gui=NONE
+hi ToolbarButton ctermbg=NONE ctermfg=15 cterm=NONE guibg=NONE guifg=#d0d0d0 gui=NONE
+hi debugPC ctermbg=NONE ctermfg=15 cterm=NONE guibg=NONE guifg=#d0d0d0 gui=NONE
+hi debugBreakpoint ctermbg=NONE ctermfg=15 cterm=NONE guibg=NONE guifg=#d0d0d0 gui=NONE
+hi VimHiGroup ctermbg=NONE ctermfg=12 cterm=NONE guibg=NONE guifg=#7fa7c9 gui=NONE
+hi VimVar ctermbg=NONE ctermfg=15 cterm=NONE guibg=NONE guifg=#e0e0e0 gui=NONE
+hi VimAutoEvent ctermbg=NONE ctermfg=12 cterm=NONE guibg=NONE guifg=#7fa7c9 gui=NONE
+hi VimFunction ctermbg=NONE ctermfg=13 cterm=NONE guibg=NONE guifg=#a2a6d4 gui=NONE
+hi vimVar ctermbg=NONE ctermfg=13 cterm=NONE guibg=NONE guifg=#a2a6d4 gui=NONE
+hi vimMapMod ctermbg=NONE ctermfg=12 cterm=NONE guibg=NONE guifg=#7fa7c9 gui=NONE
+hi vimMapModKey ctermbg=NONE ctermfg=12 cterm=NONE guibg=NONE guifg=#7fa7c9 gui=NONE
+hi vimBracket ctermbg=NONE ctermfg=13 cterm=NONE guibg=NONE guifg=#a2a6d4 gui=NONE
+hi vimNotation ctermbg=NONE ctermfg=13 cterm=NONE guibg=NONE guifg=#a2a6d4 gui=NONE
+hi StatusText ctermbg=NONE ctermfg=15 cterm=NONE guibg=NONE guifg=#e0e0e0 gui=NONE
+hi StatusBackground ctermbg=NONE ctermfg=0 cterm=NONE guibg=NONE guifg=#0d0d0d gui=NONE
+hi StatusFileName ctermbg=NONE ctermfg=12 cterm=NONE guibg=NONE guifg=#7fa7c9 gui=NONE
+hi StatusFileType ctermbg=NONE ctermfg=10 cterm=NONE guibg=NONE guifg=#a0bc8d gui=NONE
+hi StatusFileModified ctermbg=NONE ctermfg=11 cterm=NONE guibg=NONE guifg=#c9b16f gui=NONE
+hi StatusFileReadonly ctermbg=NONE ctermfg=11 cterm=NONE guibg=NONE guifg=#c9b16f gui=NONE
+hi StatusFileLocation ctermbg=NONE ctermfg=13 cterm=NONE guibg=NONE guifg=#a2a6d4 gui=NONE
+hi StatusFileEncoding ctermbg=NONE ctermfg=14 cterm=NONE guibg=NONE guifg=#91cecf gui=NONE
+hi StatusWarning ctermbg=NONE ctermfg=11 cterm=NONE guibg=NONE guifg=#c9b16f gui=NONE
+hi StatusError ctermbg=NONE ctermfg=9 cterm=NONE guibg=NONE guifg=#d0d0d0 gui=NONE
+hi TabLineTitle ctermbg=NONE ctermfg=8 cterm=NONE guibg=NONE guifg=#E9E9E9 gui=NONE
+hi TabLineTitleActive ctermbg=NONE ctermfg=12 cterm=NONE guibg=NONE guifg=#FFFFFF gui=NONE
+hi SignifySignAdd ctermbg=NONE ctermfg=10 cterm=NONE guibg=NONE guifg=#a0bc8d gui=NONE
+hi SignifySignDelete ctermbg=NONE ctermfg=9 cterm=NONE guibg=NONE guifg=#b3646e gui=NONE
+hi SignifySignChange ctermbg=NONE ctermfg=11 cterm=NONE guibg=NONE guifg=#c9b16f gui=NONE
+
+" hi CocExplorerGitPathChange ctermbg=NONE ctermfg=10 cterm=NONE guibg=NONE guifg=#a0bc8d gui=NONE
+" hi CocExplorerGitContentChange ctermbg=NONE ctermfg=11 cterm=NONE guibg=NONE guifg=#c9b16f gui=NONE
+
+" hi CocErrorSign ctermbg=NONE ctermfg=8 cterm=NONE guibg=#0a0a0a guifg=#d0d0d0 gui=NONE
+" hi CocInfoSign ctermbg=NONE ctermfg=8 cterm=NONE guibg=#0a0a0a guifg=#c9b16f gui=NONE
+" hi CocWarningSign ctermbg=NONE ctermfg=8 cterm=NONE guibg=#0a0a0a guifg=#c9b16f gui=NONE
+
+" hi CocErrorFloat ctermbg=NONE ctermfg=8 cterm=NONE guibg=#0a0a0a guifg=#b3646e gui=NONE
+" hi CocInfoFloat ctermbg=NONE ctermfg=8 cterm=NONE guibg=#0a0a0a guifg=#d0d0d0 gui=NONE
+" hi CocWarningFloat ctermbg=NONE ctermfg=8 cterm=NONE guibg=#0a0a0a guifg=#c9b16f gui=NONE
+
+hi Pmenu ctermbg=NONE ctermfg=8 cterm=NONE guibg=NONE guifg=#808080 gui=NONE
+hi PmenuSbar ctermbg=NONE ctermfg=15 cterm=NONE guibg=NONE guifg=#d0d0d0 gui=NONE
+hi PmenuSel ctermbg=8 ctermfg=15 cterm=NONE guibg=#202020 guifg=#d0d0d0 gui=NONE
+hi PmenuThumb ctermbg=NONE ctermfg=15 cterm=NONE guibg=NONE guifg=#d0d0d0 gui=NONE
+
+hi StatusLine ctermbg=NONE ctermfg=8 cterm=NONE guibg=NONE guifg=#808080 gui=NONE
+hi StatusLineNC ctermbg=NONE ctermfg=8 cterm=NONE guibg=NONE guifg=#505050 gui=NONE
+hi VertSplit ctermbg=NONE ctermfg=8 cterm=NONE guibg=NONE guifg=#272727 gui=NONE
+hi TabLine ctermbg=NONE ctermfg=15 cterm=NONE guibg=NONE guifg=#202020 gui=NONE
+hi TabLineFill ctermbg=NONE ctermfg=15 cterm=NONE guibg=NONE guifg=#d0d0d0 gui=NONE
+hi TabLineSel ctermbg=8 ctermfg=15 cterm=NONE guibg=NONE guifg=#d0d0d0 gui=NONE
+
+" Treesitter specific highlighting
+hi @type guifg=#ffffff gui=NONE cterm=NONE
+hi @type.builtin guifg=#ffffff gui=NONE cterm=NONE
+hi @type.qualifier guifg=#ffffff gui=NONE cterm=NONE
+hi @type.definition guifg=#ffffff gui=NONE cterm=NONE
+
+hi link @parameter _pink
+hi link @parameter.builtin _pink
+hi link @variable.argument _pink
+hi link @lsp.type.parameter _pink
+
+hi @tag guifg=#6cbeff gui=NONE cterm=NONE
+hi @tag.builtin guifg=#FD98B9 gui=NONE cterm=NONE
+hi @tag.attribute guifg=#7fdbca gui=NONE cterm=NONE
+"hi @module guifg=#6cbeff gui=NONE cterm=NONE
+hi @module guifg=#75778C gui=NONE cterm=NONE
+"hi @module guifg=#3E3F4A gui=NONE cterm=NONE
+"hi @module guifg=#FD98B9 gui=NONE cterm=NONE
+
+" #3E3F4A to replace constants and others
+hi @constant guifg=#7fdbca gui=NONE cterm=NONE
+hi link @variable.parameter NONE
+hi @variable.parameter guifg=#FD98B9 gui=NONE cterm=NONE
+hi @variable guifg=#FD98B9 gui=NONE cterm=NONE
+hi @function.call guifg=#7fdbca gui=NONE cterm=NONE
+hi @function.builtin guifg=#7fdbca gui=NONE cterm=NONE
+hi @function.method.call guifg=#7fdbca gui=NONE cterm=NONE
+hi @variable.member guifg=#7fdbca gui=NONE cterm=NONE
+hi link @variable.parameter Identifier
+hi link @variable.parameter _pink
+hi @keyword.modifier guifg=#3E3F4A gui=NONE cterm=NONE
+hi @keyword.operator guifg=#3E3F4A gui=NONE cterm=NONE
+hi @constructor guifg=#7fdbca gui=NONE cterm=NONE
+hi @property guifg=#7fdbca gui=NONE cterm=NONE
+hi @boolean guifg=#6cbeff gui=NONE cterm=NONE
+hi @punctuation.bracket guifg=#3E3F4A gui=NONE cterm=NONE
+hi @punctuation.delimiter guifg=#3E3F4A gui=NONE cterm=NONE
+hi @lispList guifg=#E3F4A gui=NONE cterm=NONE
+hi @lispParen guifg=#3E3F4A gui=NONE cterm=NONE
+hi @keyword.directive guifg=#3E3F4A gui=NONE cterm=NONE
+
+let colorgroup['@variable.parameter'] = {"GUIFG": _pink}
+let colorgroup['@parameter'] = {"GUIFG": _pink}
+let colorgroup['@lsp.type.parameter'] = {"GUIFG": _pink}
+let colorgroup['Structure'] = {"GUIFG": _white}
+let colorgroup['@type'] = {"GUIFG": _white}
+let colorgroup['@lispList'] = {"GUIFG": '#75778C'}
+let colorgroup['@lispParen'] = {"GUIFG": '#75778C'}
+highlight @keyword.modifier guifg=#3E3F4A
+highlight @punctuation.special guifg=#3E3F4A
+hi @attribute guifg=#3E3F4A gui=NONE cterm=NONE
+
+
+" Must appear at the end of the file to work around this oddity:
+" https://groups.google.com/forum/#!msg/vim_dev/afPqwAFNdrU/nqh6tOM87QUJ
+set background=dark
diff --git a/nvim/colors/minimal-dark.vim b/nvim/colors/minimal-dark.vim
new file mode 100644
index 0000000..f55f689
--- /dev/null
+++ b/nvim/colors/minimal-dark.vim
@@ -0,0 +1,110 @@
+set background=dark
+highlight clear
+
+if exists("syntax_on")
+ syntax reset
+endif
+
+let g:colors_name = "minimal-dark"
+
+" Core UI highlight groups
+hi! StatusLine ctermfg=black ctermbg=NONE guifg=#000000 guibg=NONE
+hi! StatusLineNC ctermfg=black ctermbg=NONE guifg=#000000 guibg=NONE
+hi! Normal ctermbg=NONE guibg=NONE
+hi! Special ctermfg=cyan guifg=#00ffff
+hi! LineNr ctermfg=black ctermbg=NONE guifg=#000000 guibg=NONE
+hi! SpecialKey ctermfg=black ctermbg=NONE guifg=#000000 guibg=NONE
+hi! ModeMsg ctermfg=black ctermbg=NONE guifg=#000000 guibg=NONE gui=NONE
+hi! MoreMsg ctermfg=black ctermbg=NONE guifg=#000000 guibg=NONE
+hi! NonText ctermfg=black ctermbg=NONE guifg=#000000 guibg=NONE
+hi! vimGlobal ctermfg=black ctermbg=NONE guifg=#000000 guibg=NONE
+hi! Comment ctermfg=black ctermbg=NONE guifg=#000000 guibg=NONE
+hi! ErrorMsg ctermbg=234 ctermfg=darkred guibg=#1c1c1c guifg=#8b0000 gui=NONE
+hi! Error ctermbg=234 ctermfg=darkred guibg=#1c1c1c guifg=#8b0000 gui=NONE
+hi! SpellBad ctermbg=234 ctermfg=darkred guibg=#1c1c1c guifg=#8b0000 gui=NONE
+hi! SpellRare ctermbg=234 ctermfg=darkred guibg=#1c1c1c guifg=#8b0000 gui=NONE
+hi! Search ctermbg=236 ctermfg=darkred guibg=#303030 guifg=#8b0000
+hi! vimTodo ctermbg=236 ctermfg=darkred guibg=#303030 guifg=#8b0000
+hi! Todo ctermbg=236 ctermfg=darkred guibg=#303030 guifg=#8b0000
+hi! IncSearch ctermbg=236 ctermfg=darkred guibg=#303030 guifg=#8b0000 gui=NONE
+hi! MatchParen ctermbg=236 ctermfg=darkred guibg=#303030 guifg=#8b0000
+hi! WinBar ctermfg=black ctermbg=NONE guifg=#000000 guibg=NONE gui=NONE
+hi! SignColumn ctermbg=NONE guibg=NONE
+hi! TabLineFill guibg=#121111 guifg=#000000 ctermbg=233 ctermfg=black
+
+" Pmenu and float colors
+hi! Pmenu ctermfg=0 ctermbg=2 guibg=#121212
+hi! PmenuSel ctermfg=15 ctermbg=2 guibg=#121212
+hi! NormalFloat gui=NONE guibg=#121212
+hi! CocFloating gui=NONE guibg=#121212
+hi! FloatBorder guifg=#5c6370 guibg=NONE
+
+" Syntax highlighting groups - match Vim defaults
+hi! Constant ctermfg=3 guifg=#FFFF00
+hi! String ctermfg=1 guifg=#FF6B6B
+hi! Character ctermfg=1 guifg=#FF6B6B
+hi! Number ctermfg=3 guifg=#FFFF00
+hi! Boolean ctermfg=3 guifg=#FFFF00
+hi! Float ctermfg=3 guifg=#FFFF00
+
+hi! Identifier ctermfg=2 guifg=#00FF00
+hi! Function ctermfg=2 guifg=#00FF00
+
+hi! Statement ctermfg=2 guifg=#00FF00
+hi! Conditional ctermfg=2 guifg=#00FF00
+hi! Repeat ctermfg=2 guifg=#00FF00
+hi! Label ctermfg=2 guifg=#00FF00
+hi! Operator ctermfg=3 guifg=#FFFF00
+hi! Keyword ctermfg=2 guifg=#00FF00
+hi! Exception ctermfg=1 guifg=#FF6B6B
+
+hi! PreProc ctermfg=1 guifg=#FF6B6B
+hi! Include ctermfg=1 guifg=#FF6B6B
+hi! Define ctermfg=1 guifg=#FF6B6B
+hi! Macro ctermfg=1 guifg=#FF6B6B
+hi! PreCondit ctermfg=1 guifg=#FF6B6B
+
+hi! Type ctermfg=2 guifg=#00FF00
+hi! StorageClass ctermfg=2 guifg=#00FF00
+hi! Structure ctermfg=2 guifg=#00FF00
+hi! Typedef ctermfg=2 guifg=#00FF00
+
+hi! Underlined cterm=underline gui=underline ctermfg=6 guifg=#00FFFF
+
+" Links
+hi! link ocamlKwErr Statement
+
+" FileType specific overrides
+augroup MinimalDarkColorScheme
+ autocmd!
+ au FileType * hi! StatusLine ctermfg=black ctermbg=NONE
+ au FileType * hi! StatusLineNC ctermfg=black ctermbg=NONE
+ au FileType * hi! Normal ctermbg=NONE
+ au FileType * hi! Special ctermfg=cyan
+ au FileType * hi! LineNr ctermfg=black ctermbg=NONE
+ au FileType * hi! SpecialKey ctermfg=black ctermbg=NONE
+ au FileType * hi! ModeMsg ctermfg=black cterm=NONE ctermbg=NONE
+ au FileType * hi! MoreMsg ctermfg=black ctermbg=NONE
+ au FileType * hi! NonText ctermfg=black ctermbg=NONE
+ au FileType * hi! vimGlobal ctermfg=black ctermbg=NONE
+ au FileType * hi! Comment ctermfg=black ctermbg=NONE
+ au FileType * hi! ErrorMsg ctermbg=234 ctermfg=darkred cterm=NONE
+ au FileType * hi! Error ctermbg=234 ctermfg=darkred cterm=NONE
+ au FileType * hi! SpellBad ctermbg=234 ctermfg=darkred cterm=NONE
+ au FileType * hi! SpellRare ctermbg=234 ctermfg=darkred cterm=NONE
+ au FileType * hi! Search ctermbg=236 ctermfg=darkred
+ au FileType * hi! vimTodo ctermbg=236 ctermfg=darkred
+ au FileType * hi! Todo ctermbg=236 ctermfg=darkred
+ au FileType * hi! MatchParen ctermbg=236 ctermfg=darkred
+ au FileType markdown,pandoc hi! Title ctermfg=yellow ctermbg=NONE
+ au FileType markdown,pandoc hi! Operator ctermfg=yellow ctermbg=NONE
+ au FileType markdown,pandoc set tw=0
+ au FileType markdown,pandoc set wrap
+ au FileType yaml hi! yamlBlockMappingKey ctermfg=NONE
+ au FileType yaml set sw=2
+ au FileType sh,bash set sw=2
+ au FileType c set sw=8
+ au FileType markdown,pandoc,asciidoc noremap j gj
+ au FileType markdown,pandoc,asciidoc noremap k gk
+ au FileType sh,bash set noet
+augroup END
diff --git a/nvim/colors/paige-dark.vim b/nvim/colors/paige-dark.vim
new file mode 100644
index 0000000..9573054
--- /dev/null
+++ b/nvim/colors/paige-dark.vim
@@ -0,0 +1,274 @@
+"
+" ▄▄▄▄▄▄ ██
+" ██▀▀▀▀█▄ ▀▀
+" ██ ██ ▄█████▄ ████ ▄███▄██ ▄████▄
+" ██████▀ ▀ ▄▄▄██ ██ ██▀ ▀██ ██▄▄▄▄██
+" ██ ▄██▀▀▀██ ██ ██ ██ ██▀▀▀▀▀▀
+" ██ ██▄▄▄███ ▄▄▄██▄▄▄ ▀██▄▄███ ▀██▄▄▄▄█
+" ▀▀ ▀▀▀▀ ▀▀ ▀▀▀▀▀▀▀▀ ▄▀▀▀ ██ ▀▀▀▀▀
+" ▀████▀▀
+" File: paige-dark.vim
+" Maintainer: Leon Henrik Plickat <leonhenrik.plickat@stud.uni-goettingen.de>
+" License: GPLv3
+
+if !has('gui_running') && &t_Co < 256
+ finish
+endif
+
+highlight clear
+
+if exists("syntax_on")
+ syntax reset
+endif
+
+set background=dark
+
+let g:colors_name = "paige-dark"
+
+if exists("*<SID>PaigeHighlight")
+ delf <SID>PaigeHighlight
+endif
+
+" Fancy highlight wrapper function, because some highlight groups, like Normal
+" apparently do not like being linked. It is not perfect, but it solves the
+" problem.
+function! <SID>PaigeHighlight(group, type)
+ if !empty(a:type[0])
+ exec "highlight " . a:group . " ctermbg=" . a:type[0]
+ endif
+ if !empty(a:type[1])
+ exec "highlight " . a:group . " ctermfg=" . a:type[1]
+ endif
+ if !empty(a:type[2])
+ exec "highlight " . a:group . " cterm=" . a:type[2]
+ endif
+ if !empty(a:type[3])
+ exec "highlight " . a:group . " guibg=" . a:type[3]
+ endif
+ if !empty(a:type[4])
+ exec "highlight " . a:group . " guifg=" . a:type[4]
+ endif
+ if !empty(a:type[5])
+ exec "highlight " . a:group . " gui=" . a:type[5]
+ endif
+endfunction
+
+" Types -> [ ctermbg, ctermfg, cterm, guibg, guifg, gui ]
+let s:default_text = [ '232', '231', '', '#080808', '#ffffff', '' ]
+let s:default_text_bold = [ '232', '231', 'bold', '#080808', '#ffffff', 'bold' ]
+let s:default_text_italic = [ '232', '231', 'italic', '#080808', '#ffffff', 'italic' ]
+let s:default_text_underline = [ '232', '231', 'underline', '#080808', '#ffffff', 'underline' ]
+
+let s:alt_fg_text = [ '232', '238', '', '#080808', '#444444', '' ]
+let s:alt_fg_text_none = [ '232', '238', 'none', '#080808', '#444444', 'none' ]
+let s:alt_fg_text_2 = [ '232', '248', '', '#080808', '#a8a8a8', '' ]
+
+let s:alt_bg_text = [ '235', '231', '', '#262626', '#ffffff', '' ]
+let s:alt_bg_text_bold = [ '235', '231', 'bold', '#262626', '#ffffff', 'bold' ]
+let s:alt_bg_text_italic = [ '235', '231', 'italic', '#262626', '#ffffff', 'italic' ]
+let s:alt_bg_text_underline = [ '235', '231', 'underline', '#262626', '#ffffff', 'underline' ]
+let s:alt_bg_text_no_override = [ '235', '', 'none', '#262626', '', 'none' ]
+let s:alt_bg_text_none = [ '235', '231', 'none', '#262626', '#ffffff', 'none' ]
+let s:alt_bg_no_fg = [ '235', '235', 'none', '#262626', '#e4e4e4', 'none' ]
+
+let s:green_bg_text = [ '106', '231', '', '#87af00', '#ffffff', '' ]
+let s:red_bg_text = [ '160', '231', '', '#d70000', '#ffffff', '' ]
+let s:yellow_bg_text = [ '178', '231', '', '#d7af00', '#ffffff', '' ]
+let s:blue_bg_text = [ '39', '231', '', '#00afff', '#ffffff', '' ]
+let s:purple_bg_text_none = [ '141', '231', 'none', '#af87ff', '#ffffff', 'none' ]
+let s:alt_purple_bg_text_none = [ '139', '231', 'none', '#af87af', '#ffffff', 'none' ]
+
+let s:red_fg_text = [ '232', '196', '', '#080808', '#ff0000', '' ]
+let s:green_fg_text = [ '232', '34', '', '#080808', '#00af00', '' ]
+let s:blue_fg_text = [ '232', '27', '', '#080808', '#005fff', '' ]
+let s:blue_fg_text_underline = [ '232', '27', 'underline', '#080808', '#005fff', 'underline' ]
+
+let s:menu_select = [ '70', '231', 'bold', '#5faf00', '#ffffff', '' ]
+let s:menu_no_select = [ '240', '231', '', '#585858', '#ffffff', '' ]
+let s:menu_scroll_bar = [ '240', '240', '', '#585858', '#585858', '' ]
+let s:menu_scroll_bar_thumb = [ '202', '202', '', '#585858', '#ff5f00', '' ]
+
+" UI
+call <sid>PaigeHighlight('Normal', s:default_text)
+call <sid>PaigeHighlight('Folded', s:alt_bg_text)
+call <sid>PaigeHighlight('CursorLine', s:alt_bg_text_no_override)
+call <sid>PaigeHighlight('CursorColumn', s:alt_bg_text_no_override)
+call <sid>PaigeHighlight('ColorColumn', s:alt_bg_text_no_override)
+call <sid>PaigeHighlight('SignColumn', s:alt_bg_text_no_override)
+call <sid>PaigeHighlight('Visual', s:blue_bg_text)
+call <sid>PaigeHighlight('VisualNOS', s:blue_bg_text)
+call <sid>PaigeHighlight('VertSplit', s:alt_bg_text_bold)
+call <sid>PaigeHighlight('Pmenu', s:menu_no_select)
+call <sid>PaigeHighlight('PmenuSel', s:menu_select)
+call <sid>PaigeHighlight('PmenuSbar', s:menu_scroll_bar)
+call <sid>PaigeHighlight('PmenuThumb', s:menu_scroll_bar_thumb)
+call <sid>PaigeHighlight('WildMenu', s:menu_select)
+call <sid>PaigeHighlight('ModeMsg', s:alt_fg_text_none)
+call <sid>PaigeHighlight('StatusLine', s:alt_bg_text_bold)
+call <sid>PaigeHighlight('StatusLineNC', s:alt_bg_text_none)
+call <sid>PaigeHighlight('StatusLineTerm', s:alt_bg_text_bold)
+call <sid>PaigeHighlight('StatusLineTermNC', s:alt_bg_text_none)
+call <sid>PaigeHighlight('Search', s:purple_bg_text_none)
+call <sid>PaigeHighlight('IncSearch', s:alt_purple_bg_text_none)
+call <sid>PaigeHighlight('TabLineFill', s:alt_bg_no_fg)
+call <sid>PaigeHighlight('TabLineSel', s:menu_select)
+call <sid>PaigeHighlight('TabLine', s:alt_bg_text_none)
+call <sid>PaigeHighlight('EndOfBuffer', s:alt_fg_text)
+call <sid>PaigeHighlight('LineNr', s:alt_bg_text)
+call <sid>PaigeHighlight('CursorLineNr', s:alt_bg_text)
+call <sid>PaigeHighlight('MatchParen', s:yellow_bg_text)
+call <sid>PaigeHighlight('Conceal', s:default_text)
+call <sid>PaigeHighlight('Error', s:red_bg_text)
+call <sid>PaigeHighlight('ErrorMsg', s:red_bg_text)
+call <sid>PaigeHighlight('WarningMsg', s:yellow_bg_text)
+
+" Diff
+call <sid>PaigeHighlight('DiffChange', s:yellow_bg_text)
+call <sid>PaigeHighlight('DiffAdd', s:green_bg_text)
+call <sid>PaigeHighlight('DiffDelete', s:red_bg_text)
+call <sid>PaigeHighlight('diffAdded', s:green_fg_text)
+call <sid>PaigeHighlight('diffRemoved', s:red_fg_text)
+call <sid>PaigeHighlight('diffLine', s:blue_fg_text)
+
+" Spell
+call <sid>PaigeHighlight('SpellBad', s:red_bg_text)
+call <sid>PaigeHighlight('SpellCap', s:yellow_bg_text)
+call <sid>PaigeHighlight('SpellLocal', s:yellow_bg_text)
+call <sid>PaigeHighlight('SpellRare', s:yellow_bg_text)
+
+" netrw
+call <sid>PaigeHighlight('netrwDir', s:blue_fg_text)
+call <sid>PaigeHighlight('netrwClassify', s:default_text_bold)
+call <sid>PaigeHighlight('netrwExe', s:green_fg_text)
+
+" quickfix
+call <sid>PaigeHighlight('qfLineNr', s:default_text_bold)
+call <sid>PaigeHighlight('qfFilename', s:default_text_bold)
+
+" Generic Syntax
+call <sid>PaigeHighlight('Todo', s:yellow_bg_text)
+call <sid>PaigeHighlight('Comment', s:alt_fg_text_2)
+call <sid>PaigeHighlight('Title', s:alt_bg_text_bold)
+call <sid>PaigeHighlight('PreProc', s:default_text_bold)
+call <sid>PaigeHighlight('Identifier', s:default_text_bold)
+call <sid>PaigeHighlight('Statement', s:default_text_bold)
+call <sid>PaigeHighlight('Special', s:default_text_bold)
+call <sid>PaigeHighlight('Type', s:default_text_bold)
+call <sid>PaigeHighlight('NonText', s:alt_fg_text_2) " NonText includes listchars: eol, extends, prescedes
+call <sid>PaigeHighlight('SpecialKey', s:alt_fg_text_2) " SpecialKey includes listchars: tabs, spaces, nbsp
+call <sid>PaigeHighlight('Conditional', s:default_text_bold)
+call <sid>PaigeHighlight('Repeat', s:default_text_bold)
+call <sid>PaigeHighlight('Logical', s:default_text_bold)
+call <sid>PaigeHighlight('Compare', s:default_text_bold)
+call <sid>PaigeHighlight('Label', s:default_text_underline)
+call <sid>PaigeHighlight('Constant', s:default_text)
+call <sid>PaigeHighlight('Pointer', s:default_text)
+call <sid>PaigeHighlight('Delimiter', s:default_text)
+
+" HTML
+call <sid>PaigeHighlight('htmlTag', s:default_text_bold)
+call <sid>PaigeHighlight('htmlEndTag', s:default_text_bold)
+call <sid>PaigeHighlight('htmlTagName', s:default_text_bold)
+call <sid>PaigeHighlight('htmlSpecialTagName', s:default_text_bold)
+call <sid>PaigeHighlight('htmlComment', s:alt_fg_text_2)
+call <sid>PaigeHighlight('htmlCommentPart', s:alt_fg_text_2)
+call <sid>PaigeHighlight('htmlArg', s:default_text_bold)
+call <sid>PaigeHighlight('htmlString', s:default_text)
+call <sid>PaigeHighlight('htmlLink', s:blue_fg_text_underline)
+call <sid>PaigeHighlight('htmlBold', s:default_text_bold)
+call <sid>PaigeHighlight('htmlItalic', s:default_text_italic)
+
+" CSS
+call <sid>PaigeHighlight('cssBraces', s:default_text)
+call <sid>PaigeHighlight('cssNoise', s:default_text)
+call <sid>PaigeHighlight('cssBoxProp', s:default_text_bold)
+call <sid>PaigeHighlight('cssBoxAttr', s:default_text)
+call <sid>PaigeHighlight('cssTextProp', s:default_text_bold)
+call <sid>PaigeHighlight('cssTextAttr', s:default_text)
+call <sid>PaigeHighlight('cssValueLength', s:default_text)
+call <sid>PaigeHighlight('cssValueNumber', s:default_text)
+call <sid>PaigeHighlight('cssUnitDecorators', s:default_text)
+call <sid>PaigeHighlight('cssAtRule', s:default_text_bold)
+call <sid>PaigeHighlight('cssAtRuleLogical', s:default_text_bold)
+call <sid>PaigeHighlight('cssMediaType', s:default_text_bold)
+call <sid>PaigeHighlight('cssMediaProp', s:default_text_bold)
+
+" meson
+call <sid>PaigeHighlight('mesonString', s:default_text)
+
+" Vim
+call <sid>PaigeHighlight('vimHiGroup', s:default_text)
+
+" C
+call <sid>PaigeHighlight('cErrInParen', s:default_text)
+
+" Scheme
+call <sid>PaigeHighlight('schemeSyntax', s:default_text_bold)
+call <sid>PaigeHighlight('schemeFunction', s:default_text_bold)
+call <sid>PaigeHighlight('schemeParentheses', s:default_text)
+call <sid>PaigeHighlight('schemeNumber', s:default_text)
+call <sid>PaigeHighlight('schemeString', s:default_text)
+
+" (La)Tex / vimtex
+call <sid>PaigeHighlight('texComment', s:alt_fg_text_2)
+call <sid>PaigeHighlight('texSection', s:default_text_bold)
+call <sid>PaigeHighlight('texParen', s:default_text)
+call <sid>PaigeHighlight('texCmdArgs', s:default_text)
+call <sid>PaigeHighlight('texBeginEnd', s:default_text)
+call <sid>PaigeHighlight('texBeginEndName', s:default_text_bold)
+
+" markdown
+call <sid>PaigeHighlight('markdownH1', s:alt_bg_text_bold)
+call <sid>PaigeHighlight('markdownH1Delimiter', s:alt_bg_text_bold)
+call <sid>PaigeHighlight('markdownH2', s:alt_bg_text_bold)
+call <sid>PaigeHighlight('markdownH2Delimiter', s:alt_bg_text_bold)
+call <sid>PaigeHighlight('markdownH3', s:alt_bg_text_bold)
+call <sid>PaigeHighlight('markdownH3Delimiter', s:alt_bg_text_bold)
+call <sid>PaigeHighlight('markdownH4', s:alt_bg_text_bold)
+call <sid>PaigeHighlight('markdownH4Delimiter', s:alt_bg_text_bold)
+call <sid>PaigeHighlight('markdownH5', s:alt_bg_text_bold)
+call <sid>PaigeHighlight('markdownH5Delimiter', s:alt_bg_text_bold)
+call <sid>PaigeHighlight('markdownH6', s:alt_bg_text_bold)
+call <sid>PaigeHighlight('markdownH6Delimiter', s:alt_bg_text_bold)
+call <sid>PaigeHighlight('markdownListMarker', s:default_text_bold)
+call <sid>PaigeHighlight('markdownError', s:default_text)
+call <sid>PaigeHighlight('markdownCodeBlock', s:green_fg_text)
+
+" git commit
+call <sid>PaigeHighlight('gitcommitSummary', s:alt_bg_text_bold)
+call <sid>PaigeHighlight('gitcommitFirstLine', s:alt_bg_text_bold)
+call <sid>PaigeHighlight('gitcommitBlank', s:red_bg_text)
+call <sid>PaigeHighlight('gitcommitComment', s:alt_fg_text_2)
+call <sid>PaigeHighlight('gitcommitHeader', s:default_text_bold)
+
+" .desktop files
+call <sid>PaigeHighlight('dtGroup', s:alt_bg_text_bold)
+call <sid>PaigeHighlight('dtTypeKey', s:default_text_bold)
+call <sid>PaigeHighlight('dtExecKey', s:default_text_bold)
+call <sid>PaigeHighlight('dtLocaleKey', s:default_text_bold)
+call <sid>PaigeHighlight('dtBooleanKey', s:default_text_bold)
+call <sid>PaigeHighlight('dtStringKey', s:default_text_bold)
+call <sid>PaigeHighlight('dtDelim', s:alt_fg_text_2)
+
+" scdoc
+call <sid>PaigeHighlight('scdocHeader', s:alt_bg_text_bold)
+call <sid>PaigeHighlight('scdocPreambleName', s:alt_bg_text_bold)
+call <sid>PaigeHighlight('scdocPreambleExtra', s:alt_bg_text)
+call <sid>PaigeHighlight('scdocBold', s:default_text_bold)
+
+" man
+call <sid>PaigeHighlight('manHeader', s:alt_bg_text_bold)
+call <sid>PaigeHighlight('manSectionHeading', s:alt_bg_text_bold)
+call <sid>PaigeHighlight('manReference', s:default_text_bold)
+call <sid>PaigeHighlight('manOptionDesc', s:default_text_bold)
+call <sid>PaigeHighlight('manLongOptionDesc', s:default_text_bold)
+
+" ALE
+call <sid>PaigeHighlight('ALEErrorSign', s:red_bg_text)
+call <sid>PaigeHighlight('ALEWarningSign', s:green_fg_text)
+
+" quickfix
+call <sid>PaigeHighlight('qfFilename', s:default_text_bold)
+call <sid>PaigeHighlight('qfSeparator', s:default_text)
+call <sid>PaigeHighlight('qfLineNr', s:default_text_bold)
+
diff --git a/nvim/colors/paige-system.vim b/nvim/colors/paige-system.vim
new file mode 100644
index 0000000..1553bdb
--- /dev/null
+++ b/nvim/colors/paige-system.vim
@@ -0,0 +1,268 @@
+"
+" ▄▄▄▄▄▄ ██
+" ██▀▀▀▀█▄ ▀▀
+" ██ ██ ▄█████▄ ████ ▄███▄██ ▄████▄
+" ██████▀ ▀ ▄▄▄██ ██ ██▀ ▀██ ██▄▄▄▄██
+" ██ ▄██▀▀▀██ ██ ██ ██ ██▀▀▀▀▀▀
+" ██ ██▄▄▄███ ▄▄▄██▄▄▄ ▀██▄▄███ ▀██▄▄▄▄█
+" ▀▀ ▀▀▀▀ ▀▀ ▀▀▀▀▀▀▀▀ ▄▀▀▀ ██ ▀▀▀▀▀
+" ▀████▀▀
+" File: paige-system.vim
+" Maintainer: Leon Henrik Plickat <leonhenrik.plickat@stud.uni-goettingen.de>
+" License: GPLv3
+
+if !has('gui_running') && &t_Co < 256
+ finish
+endif
+
+highlight clear
+
+if exists("syntax_on")
+ syntax reset
+endif
+
+set background=light
+
+let g:colors_name = "paige"
+
+if exists("*<SID>PaigeHighlight")
+ delf <SID>PaigeHighlight
+endif
+
+" Fancy highlight wrapper function, because some highlight groups, like Normal
+" apparently do not like being linked. It is not perfect, but it solves the
+" problem.
+function! <SID>PaigeHighlight(group, type)
+ if !empty(a:type[0])
+ exec "highlight " . a:group . " ctermbg=" . a:type[0]
+ endif
+ if !empty(a:type[1])
+ exec "highlight " . a:group . " ctermfg=" . a:type[1]
+ endif
+ if !empty(a:type[2])
+ exec "highlight " . a:group . " cterm=" . a:type[2]
+ endif
+ if !empty(a:type[3])
+ exec "highlight " . a:group . " guibg=" . a:type[3]
+ endif
+ if !empty(a:type[4])
+ exec "highlight " . a:group . " guifg=" . a:type[4]
+ endif
+ if !empty(a:type[5])
+ exec "highlight " . a:group . " gui=" . a:type[5]
+ endif
+endfunction
+
+" Types -> [ ctermbg, ctermfg, cterm, guibg, guifg, gui ]
+let s:default_text = [ '0', '7', '', '#ffffff', '#080808', '' ]
+let s:default_text_bold = [ '0', '7', 'bold', '#ffffff', '#080808', 'bold' ]
+let s:default_text_italic = [ '0', '7', 'italic', '#ffffff', '#080808', 'italic' ]
+let s:default_text_underline = [ '0', '7', 'underline', '#ffffff', '#080808', 'underline' ]
+
+let s:alt_fg_text = [ '0', '245', '', '#ffffff', '#8a8a8a', '' ]
+let s:alt_fg_text_none = [ '0', '245', 'none', '#ffffff', '#8a8a8a', 'none' ]
+let s:alt_fg_text_2 = [ '0', '248', '', '#ffffff', '#a8a8a8', '' ]
+
+let s:alt_bg_text = [ '254', '7', '', '#e4e4e4', '#080808', '' ]
+let s:alt_bg_text_bold = [ '254', '7', 'bold', '#e4e4e4', '#080808', 'bold' ]
+let s:alt_bg_text_italic = [ '254', '7', 'italic', '#e4e4e4', '#080808', 'italic' ]
+let s:alt_bg_text_underline = [ '254', '7', 'underline', '#e4e4e4', '#080808', 'underline' ]
+let s:alt_bg_text_no_override = [ '254', '', 'none', '#e4e4e4', '', 'none' ]
+let s:alt_bg_text_none = [ '254', '7', 'none', '#e4e4e4', '#080808', 'none' ]
+let s:alt_bg_no_fg = [ '254', '254', 'none', '#e4e4e4', '#e4e4e4', 'none' ]
+
+let s:green_bg_text = [ '148', '7', '', '#afd700', '#080808', '' ]
+let s:red_bg_text = [ '197', '7', '', '#ff005f', '#080808', '' ]
+let s:yellow_bg_text = [ '220', '7', '', '#ffd700', '#080808', '' ]
+let s:blue_bg_text = [ '39', '7', '', '#00afff', '#080808', '' ]
+let s:purple_bg_text_none = [ '141', '7', 'none', '#af87ff', '#080808', 'none' ]
+let s:alt_purple_bg_text_none = [ '139', '7', 'none', '#af87af', '#080808', 'none' ]
+
+let s:red_fg_text = [ '0', '196', '', '#ffffff', '#ff0000', '' ]
+let s:green_fg_text = [ '0', '34', '', '#ffffff', '#00af00', '' ]
+let s:blue_fg_text = [ '0', '21', '', '#ffffff', '#0000ff', '' ]
+let s:blue_fg_text_underline = [ '0', '21', 'underline', '#ffffff', '#0000ff', 'underline' ]
+
+let s:menu_select = [ '70 ', '0', 'bold', '#5faf00', '#ffffff', '' ]
+let s:menu_no_select = [ '240', '0', '', '#585858', '#ffffff', '' ]
+let s:menu_scroll_bar = [ '240', '240', '', '#585858', '#585858', '' ]
+let s:menu_scroll_bar_thumb = [ '202', '202', '', '#585858', '#ff5f00', '' ]
+
+" UI
+call <sid>PaigeHighlight('Normal', s:default_text)
+call <sid>PaigeHighlight('Folded', s:alt_bg_text)
+call <sid>PaigeHighlight('CursorLine', s:alt_bg_text_no_override)
+call <sid>PaigeHighlight('CursorColumn', s:alt_bg_text_no_override)
+call <sid>PaigeHighlight('ColorColumn', s:alt_bg_text_no_override)
+call <sid>PaigeHighlight('SignColumn', s:alt_bg_text_no_override)
+call <sid>PaigeHighlight('Visual', s:blue_bg_text)
+call <sid>PaigeHighlight('VisualNOS', s:blue_bg_text)
+call <sid>PaigeHighlight('VertSplit', s:alt_bg_text_bold)
+call <sid>PaigeHighlight('Pmenu', s:menu_no_select)
+call <sid>PaigeHighlight('PmenuSel', s:menu_select)
+call <sid>PaigeHighlight('PmenuSbar', s:menu_scroll_bar)
+call <sid>PaigeHighlight('PmenuThumb', s:menu_scroll_bar_thumb)
+call <sid>PaigeHighlight('WildMenu', s:menu_select)
+call <sid>PaigeHighlight('ModeMsg', s:alt_fg_text_none)
+call <sid>PaigeHighlight('StatusLine', s:alt_bg_text_bold)
+call <sid>PaigeHighlight('StatusLineNC', s:alt_bg_text_none)
+call <sid>PaigeHighlight('StatusLineTerm', s:alt_bg_text_bold)
+call <sid>PaigeHighlight('StatusLineTermNC', s:alt_bg_text_none)
+call <sid>PaigeHighlight('Search', s:purple_bg_text_none)
+call <sid>PaigeHighlight('IncSearch', s:alt_purple_bg_text_none)
+call <sid>PaigeHighlight('TabLineFill', s:alt_bg_no_fg)
+call <sid>PaigeHighlight('TabLineSel', s:menu_select)
+call <sid>PaigeHighlight('TabLine', s:alt_bg_text_none)
+call <sid>PaigeHighlight('EndOfBuffer', s:alt_fg_text)
+call <sid>PaigeHighlight('LineNr', s:alt_bg_text)
+call <sid>PaigeHighlight('CursorLineNr', s:alt_bg_text)
+call <sid>PaigeHighlight('MatchParen', s:yellow_bg_text)
+call <sid>PaigeHighlight('Conceal', s:default_text)
+call <sid>PaigeHighlight('Error', s:red_bg_text)
+call <sid>PaigeHighlight('ErrorMsg', s:red_bg_text)
+call <sid>PaigeHighlight('WarningMsg', s:yellow_bg_text)
+
+" Diff
+call <sid>PaigeHighlight('DiffChange', s:yellow_bg_text)
+call <sid>PaigeHighlight('DiffAdd', s:green_bg_text)
+call <sid>PaigeHighlight('DiffDelete', s:red_bg_text)
+call <sid>PaigeHighlight('diffAdded', s:green_fg_text)
+call <sid>PaigeHighlight('diffRemoved', s:red_fg_text)
+call <sid>PaigeHighlight('diffLine', s:blue_fg_text)
+
+" Spell
+call <sid>PaigeHighlight('SpellBad', s:red_bg_text)
+call <sid>PaigeHighlight('SpellCap', s:yellow_bg_text)
+call <sid>PaigeHighlight('SpellLocal', s:yellow_bg_text)
+call <sid>PaigeHighlight('SpellRare', s:yellow_bg_text)
+
+" netrw
+call <sid>PaigeHighlight('netrwDir', s:blue_fg_text)
+call <sid>PaigeHighlight('netrwClassify', s:default_text_bold)
+call <sid>PaigeHighlight('netrwExe', s:green_fg_text)
+
+" quickfix
+call <sid>PaigeHighlight('qfLineNr', s:default_text_bold)
+call <sid>PaigeHighlight('qfFilename', s:default_text_bold)
+
+" Generic Syntax
+call <sid>PaigeHighlight('Todo', s:yellow_bg_text)
+call <sid>PaigeHighlight('Comment', s:alt_fg_text_2)
+call <sid>PaigeHighlight('Title', s:alt_bg_text_bold)
+call <sid>PaigeHighlight('PreProc', s:default_text_bold)
+call <sid>PaigeHighlight('Identifier', s:default_text_bold)
+call <sid>PaigeHighlight('Statement', s:default_text_bold)
+call <sid>PaigeHighlight('Special', s:default_text_bold)
+call <sid>PaigeHighlight('Type', s:default_text_bold)
+call <sid>PaigeHighlight('NonText', s:alt_fg_text_2) " NonText includes listchars: eol, extends, prescedes
+call <sid>PaigeHighlight('SpecialKey', s:alt_fg_text_2) " SpecialKey includes listchars: tabs, spaces, nbsp
+call <sid>PaigeHighlight('Conditional', s:default_text_bold)
+call <sid>PaigeHighlight('Repeat', s:default_text_bold)
+call <sid>PaigeHighlight('Logical', s:default_text_bold)
+call <sid>PaigeHighlight('Compare', s:default_text_bold)
+call <sid>PaigeHighlight('Label', s:default_text_underline)
+call <sid>PaigeHighlight('Constant', s:default_text)
+call <sid>PaigeHighlight('Pointer', s:default_text)
+call <sid>PaigeHighlight('Delimiter', s:default_text)
+
+" HTML
+call <sid>PaigeHighlight('htmlTag', s:default_text_bold)
+call <sid>PaigeHighlight('htmlEndTag', s:default_text_bold)
+call <sid>PaigeHighlight('htmlTagName', s:default_text_bold)
+call <sid>PaigeHighlight('htmlSpecialTagName', s:default_text_bold)
+call <sid>PaigeHighlight('htmlComment', s:alt_fg_text_2)
+call <sid>PaigeHighlight('htmlCommentPart', s:alt_fg_text_2)
+call <sid>PaigeHighlight('htmlArg', s:default_text_bold)
+call <sid>PaigeHighlight('htmlString', s:default_text)
+call <sid>PaigeHighlight('htmlLink', s:blue_fg_text_underline)
+call <sid>PaigeHighlight('htmlBold', s:default_text_bold)
+call <sid>PaigeHighlight('htmlItalic', s:default_text_italic)
+
+" CSS
+call <sid>PaigeHighlight('cssBraces', s:default_text)
+call <sid>PaigeHighlight('cssNoise', s:default_text)
+call <sid>PaigeHighlight('cssBoxProp', s:default_text_bold)
+call <sid>PaigeHighlight('cssBoxAttr', s:default_text)
+call <sid>PaigeHighlight('cssTextProp', s:default_text_bold)
+call <sid>PaigeHighlight('cssTextAttr', s:default_text)
+call <sid>PaigeHighlight('cssValueLength', s:default_text)
+call <sid>PaigeHighlight('cssValueNumber', s:default_text)
+call <sid>PaigeHighlight('cssUnitDecorators', s:default_text)
+call <sid>PaigeHighlight('cssAtRule', s:default_text_bold)
+call <sid>PaigeHighlight('cssAtRuleLogical', s:default_text_bold)
+call <sid>PaigeHighlight('cssMediaType', s:default_text_bold)
+call <sid>PaigeHighlight('cssMediaProp', s:default_text_bold)
+
+" meson
+call <sid>PaigeHighlight('mesonString', s:default_text)
+
+" Vim
+call <sid>PaigeHighlight('vimHiGroup', s:default_text)
+
+" C
+call <sid>PaigeHighlight('cErrInParen', s:default_text)
+
+" Scheme
+call <sid>PaigeHighlight('schemeSyntax', s:default_text_bold)
+call <sid>PaigeHighlight('schemeFunction', s:default_text_bold)
+call <sid>PaigeHighlight('schemeParentheses', s:default_text)
+call <sid>PaigeHighlight('schemeNumber', s:default_text)
+call <sid>PaigeHighlight('schemeString', s:default_text)
+
+" (La)Tex / vimtex
+call <sid>PaigeHighlight('texComment', s:alt_fg_text_2)
+call <sid>PaigeHighlight('texSection', s:default_text_bold)
+call <sid>PaigeHighlight('texParen', s:default_text)
+call <sid>PaigeHighlight('texCmdArgs', s:default_text)
+call <sid>PaigeHighlight('texBeginEnd', s:default_text)
+call <sid>PaigeHighlight('texBeginEndName', s:default_text_bold)
+
+" markdown
+call <sid>PaigeHighlight('markdownH1', s:alt_bg_text_bold)
+call <sid>PaigeHighlight('markdownH1Delimiter', s:alt_bg_text_bold)
+call <sid>PaigeHighlight('markdownH2', s:alt_bg_text_bold)
+call <sid>PaigeHighlight('markdownH2Delimiter', s:alt_bg_text_bold)
+call <sid>PaigeHighlight('markdownH3', s:alt_bg_text_bold)
+call <sid>PaigeHighlight('markdownH3Delimiter', s:alt_bg_text_bold)
+call <sid>PaigeHighlight('markdownH4', s:alt_bg_text_bold)
+call <sid>PaigeHighlight('markdownH4Delimiter', s:alt_bg_text_bold)
+call <sid>PaigeHighlight('markdownH5', s:alt_bg_text_bold)
+call <sid>PaigeHighlight('markdownH5Delimiter', s:alt_bg_text_bold)
+call <sid>PaigeHighlight('markdownH6', s:alt_bg_text_bold)
+call <sid>PaigeHighlight('markdownH6Delimiter', s:alt_bg_text_bold)
+call <sid>PaigeHighlight('markdownListMarker', s:default_text_bold)
+call <sid>PaigeHighlight('markdownError', s:default_text)
+call <sid>PaigeHighlight('markdownCodeBlock', s:green_fg_text)
+
+" git commit
+call <sid>PaigeHighlight('gitcommitSummary', s:alt_bg_text_bold)
+call <sid>PaigeHighlight('gitcommitFirstLine', s:alt_bg_text_bold)
+call <sid>PaigeHighlight('gitcommitBlank', s:red_bg_text)
+call <sid>PaigeHighlight('gitcommitComment', s:alt_fg_text_2)
+call <sid>PaigeHighlight('gitcommitHeader', s:default_text_bold)
+
+" .desktop files
+call <sid>PaigeHighlight('dtGroup', s:alt_bg_text_bold)
+call <sid>PaigeHighlight('dtTypeKey', s:default_text_bold)
+call <sid>PaigeHighlight('dtExecKey', s:default_text_bold)
+call <sid>PaigeHighlight('dtLocaleKey', s:default_text_bold)
+call <sid>PaigeHighlight('dtBooleanKey', s:default_text_bold)
+call <sid>PaigeHighlight('dtStringKey', s:default_text_bold)
+call <sid>PaigeHighlight('dtDelim', s:alt_fg_text_2)
+
+" scdoc
+call <sid>PaigeHighlight('scdocHeader', s:alt_bg_text_bold)
+call <sid>PaigeHighlight('scdocPreambleName', s:alt_bg_text_bold)
+call <sid>PaigeHighlight('scdocPreambleExtra', s:alt_bg_text)
+call <sid>PaigeHighlight('scdocBold', s:default_text_bold)
+
+" man
+call <sid>PaigeHighlight('manHeader', s:alt_bg_text_bold)
+call <sid>PaigeHighlight('manSectionHeading', s:alt_bg_text_bold)
+call <sid>PaigeHighlight('manReference', s:default_text_bold)
+call <sid>PaigeHighlight('manOptionDesc', s:default_text_bold)
+call <sid>PaigeHighlight('manLongOptionDesc', s:default_text_bold)
+
+" ALE
+call <sid>PaigeHighlight('ALEErrorSign', s:red_bg_text)
+call <sid>PaigeHighlight('ALEWarningSign', s:green_fg_text)
diff --git a/nvim/colors/paige.vim b/nvim/colors/paige.vim
new file mode 100644
index 0000000..c793f18
--- /dev/null
+++ b/nvim/colors/paige.vim
@@ -0,0 +1,268 @@
+"
+" ▄▄▄▄▄▄ ██
+" ██▀▀▀▀█▄ ▀▀
+" ██ ██ ▄█████▄ ████ ▄███▄██ ▄████▄
+" ██████▀ ▀ ▄▄▄██ ██ ██▀ ▀██ ██▄▄▄▄██
+" ██ ▄██▀▀▀██ ██ ██ ██ ██▀▀▀▀▀▀
+" ██ ██▄▄▄███ ▄▄▄██▄▄▄ ▀██▄▄███ ▀██▄▄▄▄█
+" ▀▀ ▀▀▀▀ ▀▀ ▀▀▀▀▀▀▀▀ ▄▀▀▀ ██ ▀▀▀▀▀
+" ▀████▀▀
+" File: paige.vim
+" Maintainer: Leon Henrik Plickat <leonhenrik.plickat@stud.uni-goettingen.de>
+" License: GPLv3
+
+if !has('gui_running') && &t_Co < 256
+ finish
+endif
+
+highlight clear
+
+if exists("syntax_on")
+ syntax reset
+endif
+
+set background=light
+
+let g:colors_name = "paige"
+
+if exists("*<SID>PaigeHighlight")
+ delf <SID>PaigeHighlight
+endif
+
+" Fancy highlight wrapper function, because some highlight groups, like Normal
+" apparently do not like being linked. It is not perfect, but it solves the
+" problem.
+function! <SID>PaigeHighlight(group, type)
+ if !empty(a:type[0])
+ exec "highlight " . a:group . " ctermbg=" . a:type[0]
+ endif
+ if !empty(a:type[1])
+ exec "highlight " . a:group . " ctermfg=" . a:type[1]
+ endif
+ if !empty(a:type[2])
+ exec "highlight " . a:group . " cterm=" . a:type[2]
+ endif
+ if !empty(a:type[3])
+ exec "highlight " . a:group . " guibg=" . a:type[3]
+ endif
+ if !empty(a:type[4])
+ exec "highlight " . a:group . " guifg=" . a:type[4]
+ endif
+ if !empty(a:type[5])
+ exec "highlight " . a:group . " gui=" . a:type[5]
+ endif
+endfunction
+
+" Types -> [ ctermbg, ctermfg, cterm, guibg, guifg, gui ]
+let s:default_text = [ '231', '232', '', '#ffffff', '#080808', '' ]
+let s:default_text_bold = [ '231', '232', 'bold', '#ffffff', '#080808', 'bold' ]
+let s:default_text_italic = [ '231', '232', 'italic', '#ffffff', '#080808', 'italic' ]
+let s:default_text_underline = [ '231', '232', 'underline', '#ffffff', '#080808', 'underline' ]
+
+let s:alt_fg_text = [ '231', '245', '', '#ffffff', '#8a8a8a', '' ]
+let s:alt_fg_text_none = [ '231', '245', 'none', '#ffffff', '#8a8a8a', 'none' ]
+let s:alt_fg_text_2 = [ '231', '248', '', '#ffffff', '#a8a8a8', '' ]
+
+let s:alt_bg_text = [ '254', '232', '', '#e4e4e4', '#080808', '' ]
+let s:alt_bg_text_bold = [ '254', '232', 'bold', '#e4e4e4', '#080808', 'bold' ]
+let s:alt_bg_text_italic = [ '254', '232', 'italic', '#e4e4e4', '#080808', 'italic' ]
+let s:alt_bg_text_underline = [ '254', '232', 'underline', '#e4e4e4', '#080808', 'underline' ]
+let s:alt_bg_text_no_override = [ '254', '', 'none', '#e4e4e4', '', 'none' ]
+let s:alt_bg_text_none = [ '254', '232', 'none', '#e4e4e4', '#080808', 'none' ]
+let s:alt_bg_no_fg = [ '254', '254', 'none', '#e4e4e4', '#e4e4e4', 'none' ]
+
+let s:green_bg_text = [ '148', '232', '', '#afd700', '#080808', '' ]
+let s:red_bg_text = [ '197', '232', '', '#ff005f', '#080808', '' ]
+let s:yellow_bg_text = [ '220', '232', '', '#ffd700', '#080808', '' ]
+let s:blue_bg_text = [ '39', '232', '', '#00afff', '#080808', '' ]
+let s:purple_bg_text_none = [ '141', '232', 'none', '#af87ff', '#080808', 'none' ]
+let s:alt_purple_bg_text_none = [ '139', '232', 'none', '#af87af', '#080808', 'none' ]
+
+let s:red_fg_text = [ '231', '196', '', '#ffffff', '#ff0000', '' ]
+let s:green_fg_text = [ '231', '34', '', '#ffffff', '#00af00', '' ]
+let s:blue_fg_text = [ '231', '21', '', '#ffffff', '#0000ff', '' ]
+let s:blue_fg_text_underline = [ '231', '21', 'underline', '#ffffff', '#0000ff', 'underline' ]
+
+let s:menu_select = [ '70 ', '231', 'bold', '#5faf00', '#ffffff', '' ]
+let s:menu_no_select = [ '240', '231', '', '#585858', '#ffffff', '' ]
+let s:menu_scroll_bar = [ '240', '240', '', '#585858', '#585858', '' ]
+let s:menu_scroll_bar_thumb = [ '202', '202', '', '#585858', '#ff5f00', '' ]
+
+" UI
+call <sid>PaigeHighlight('Normal', s:default_text)
+call <sid>PaigeHighlight('Folded', s:alt_bg_text)
+call <sid>PaigeHighlight('CursorLine', s:alt_bg_text_no_override)
+call <sid>PaigeHighlight('CursorColumn', s:alt_bg_text_no_override)
+call <sid>PaigeHighlight('ColorColumn', s:alt_bg_text_no_override)
+call <sid>PaigeHighlight('SignColumn', s:alt_bg_text_no_override)
+call <sid>PaigeHighlight('Visual', s:blue_bg_text)
+call <sid>PaigeHighlight('VisualNOS', s:blue_bg_text)
+call <sid>PaigeHighlight('VertSplit', s:alt_bg_text_bold)
+call <sid>PaigeHighlight('Pmenu', s:menu_no_select)
+call <sid>PaigeHighlight('PmenuSel', s:menu_select)
+call <sid>PaigeHighlight('PmenuSbar', s:menu_scroll_bar)
+call <sid>PaigeHighlight('PmenuThumb', s:menu_scroll_bar_thumb)
+call <sid>PaigeHighlight('WildMenu', s:menu_select)
+call <sid>PaigeHighlight('ModeMsg', s:alt_fg_text_none)
+call <sid>PaigeHighlight('StatusLine', s:alt_bg_text_bold)
+call <sid>PaigeHighlight('StatusLineNC', s:alt_bg_text_none)
+call <sid>PaigeHighlight('StatusLineTerm', s:alt_bg_text_bold)
+call <sid>PaigeHighlight('StatusLineTermNC', s:alt_bg_text_none)
+call <sid>PaigeHighlight('Search', s:purple_bg_text_none)
+call <sid>PaigeHighlight('IncSearch', s:alt_purple_bg_text_none)
+call <sid>PaigeHighlight('TabLineFill', s:alt_bg_no_fg)
+call <sid>PaigeHighlight('TabLineSel', s:menu_select)
+call <sid>PaigeHighlight('TabLine', s:alt_bg_text_none)
+call <sid>PaigeHighlight('EndOfBuffer', s:alt_fg_text)
+call <sid>PaigeHighlight('LineNr', s:alt_bg_text)
+call <sid>PaigeHighlight('CursorLineNr', s:alt_bg_text)
+call <sid>PaigeHighlight('MatchParen', s:yellow_bg_text)
+call <sid>PaigeHighlight('Conceal', s:default_text)
+call <sid>PaigeHighlight('Error', s:red_bg_text)
+call <sid>PaigeHighlight('ErrorMsg', s:red_bg_text)
+call <sid>PaigeHighlight('WarningMsg', s:yellow_bg_text)
+
+" Diff
+call <sid>PaigeHighlight('DiffChange', s:yellow_bg_text)
+call <sid>PaigeHighlight('DiffAdd', s:green_bg_text)
+call <sid>PaigeHighlight('DiffDelete', s:red_bg_text)
+call <sid>PaigeHighlight('diffAdded', s:green_fg_text)
+call <sid>PaigeHighlight('diffRemoved', s:red_fg_text)
+call <sid>PaigeHighlight('diffLine', s:blue_fg_text)
+
+" Spell
+call <sid>PaigeHighlight('SpellBad', s:red_bg_text)
+call <sid>PaigeHighlight('SpellCap', s:yellow_bg_text)
+call <sid>PaigeHighlight('SpellLocal', s:yellow_bg_text)
+call <sid>PaigeHighlight('SpellRare', s:yellow_bg_text)
+
+" netrw
+call <sid>PaigeHighlight('netrwDir', s:blue_fg_text)
+call <sid>PaigeHighlight('netrwClassify', s:default_text_bold)
+call <sid>PaigeHighlight('netrwExe', s:green_fg_text)
+
+" quickfix
+call <sid>PaigeHighlight('qfLineNr', s:default_text_bold)
+call <sid>PaigeHighlight('qfFilename', s:default_text_bold)
+
+" Generic Syntax
+call <sid>PaigeHighlight('Todo', s:yellow_bg_text)
+call <sid>PaigeHighlight('Comment', s:alt_fg_text_2)
+call <sid>PaigeHighlight('Title', s:alt_bg_text_bold)
+call <sid>PaigeHighlight('PreProc', s:default_text_bold)
+call <sid>PaigeHighlight('Identifier', s:default_text_bold)
+call <sid>PaigeHighlight('Statement', s:default_text_bold)
+call <sid>PaigeHighlight('Special', s:default_text_bold)
+call <sid>PaigeHighlight('Type', s:default_text_bold)
+call <sid>PaigeHighlight('NonText', s:alt_fg_text_2) " NonText includes listchars: eol, extends, prescedes
+call <sid>PaigeHighlight('SpecialKey', s:alt_fg_text_2) " SpecialKey includes listchars: tabs, spaces, nbsp
+call <sid>PaigeHighlight('Conditional', s:default_text_bold)
+call <sid>PaigeHighlight('Repeat', s:default_text_bold)
+call <sid>PaigeHighlight('Logical', s:default_text_bold)
+call <sid>PaigeHighlight('Compare', s:default_text_bold)
+call <sid>PaigeHighlight('Label', s:default_text_underline)
+call <sid>PaigeHighlight('Constant', s:default_text)
+call <sid>PaigeHighlight('Pointer', s:default_text)
+call <sid>PaigeHighlight('Delimiter', s:default_text)
+
+" HTML
+call <sid>PaigeHighlight('htmlTag', s:default_text_bold)
+call <sid>PaigeHighlight('htmlEndTag', s:default_text_bold)
+call <sid>PaigeHighlight('htmlTagName', s:default_text_bold)
+call <sid>PaigeHighlight('htmlSpecialTagName', s:default_text_bold)
+call <sid>PaigeHighlight('htmlComment', s:alt_fg_text_2)
+call <sid>PaigeHighlight('htmlCommentPart', s:alt_fg_text_2)
+call <sid>PaigeHighlight('htmlArg', s:default_text_bold)
+call <sid>PaigeHighlight('htmlString', s:default_text)
+call <sid>PaigeHighlight('htmlLink', s:blue_fg_text_underline)
+call <sid>PaigeHighlight('htmlBold', s:default_text_bold)
+call <sid>PaigeHighlight('htmlItalic', s:default_text_italic)
+
+" CSS
+call <sid>PaigeHighlight('cssBraces', s:default_text)
+call <sid>PaigeHighlight('cssNoise', s:default_text)
+call <sid>PaigeHighlight('cssBoxProp', s:default_text_bold)
+call <sid>PaigeHighlight('cssBoxAttr', s:default_text)
+call <sid>PaigeHighlight('cssTextProp', s:default_text_bold)
+call <sid>PaigeHighlight('cssTextAttr', s:default_text)
+call <sid>PaigeHighlight('cssValueLength', s:default_text)
+call <sid>PaigeHighlight('cssValueNumber', s:default_text)
+call <sid>PaigeHighlight('cssUnitDecorators', s:default_text)
+call <sid>PaigeHighlight('cssAtRule', s:default_text_bold)
+call <sid>PaigeHighlight('cssAtRuleLogical', s:default_text_bold)
+call <sid>PaigeHighlight('cssMediaType', s:default_text_bold)
+call <sid>PaigeHighlight('cssMediaProp', s:default_text_bold)
+
+" meson
+call <sid>PaigeHighlight('mesonString', s:default_text)
+
+" Vim
+call <sid>PaigeHighlight('vimHiGroup', s:default_text)
+
+" C
+call <sid>PaigeHighlight('cErrInParen', s:default_text)
+
+" Scheme
+call <sid>PaigeHighlight('schemeSyntax', s:default_text_bold)
+call <sid>PaigeHighlight('schemeFunction', s:default_text_bold)
+call <sid>PaigeHighlight('schemeParentheses', s:default_text)
+call <sid>PaigeHighlight('schemeNumber', s:default_text)
+call <sid>PaigeHighlight('schemeString', s:default_text)
+
+" (La)Tex / vimtex
+call <sid>PaigeHighlight('texComment', s:alt_fg_text_2)
+call <sid>PaigeHighlight('texSection', s:default_text_bold)
+call <sid>PaigeHighlight('texParen', s:default_text)
+call <sid>PaigeHighlight('texCmdArgs', s:default_text)
+call <sid>PaigeHighlight('texBeginEnd', s:default_text)
+call <sid>PaigeHighlight('texBeginEndName', s:default_text_bold)
+
+" markdown
+call <sid>PaigeHighlight('markdownH1', s:alt_bg_text_bold)
+call <sid>PaigeHighlight('markdownH1Delimiter', s:alt_bg_text_bold)
+call <sid>PaigeHighlight('markdownH2', s:alt_bg_text_bold)
+call <sid>PaigeHighlight('markdownH2Delimiter', s:alt_bg_text_bold)
+call <sid>PaigeHighlight('markdownH3', s:alt_bg_text_bold)
+call <sid>PaigeHighlight('markdownH3Delimiter', s:alt_bg_text_bold)
+call <sid>PaigeHighlight('markdownH4', s:alt_bg_text_bold)
+call <sid>PaigeHighlight('markdownH4Delimiter', s:alt_bg_text_bold)
+call <sid>PaigeHighlight('markdownH5', s:alt_bg_text_bold)
+call <sid>PaigeHighlight('markdownH5Delimiter', s:alt_bg_text_bold)
+call <sid>PaigeHighlight('markdownH6', s:alt_bg_text_bold)
+call <sid>PaigeHighlight('markdownH6Delimiter', s:alt_bg_text_bold)
+call <sid>PaigeHighlight('markdownListMarker', s:default_text_bold)
+call <sid>PaigeHighlight('markdownError', s:default_text)
+call <sid>PaigeHighlight('markdownCodeBlock', s:green_fg_text)
+
+" git commit
+call <sid>PaigeHighlight('gitcommitSummary', s:alt_bg_text_bold)
+call <sid>PaigeHighlight('gitcommitFirstLine', s:alt_bg_text_bold)
+call <sid>PaigeHighlight('gitcommitBlank', s:red_bg_text)
+call <sid>PaigeHighlight('gitcommitComment', s:alt_fg_text_2)
+call <sid>PaigeHighlight('gitcommitHeader', s:default_text_bold)
+
+" .desktop files
+call <sid>PaigeHighlight('dtGroup', s:alt_bg_text_bold)
+call <sid>PaigeHighlight('dtTypeKey', s:default_text_bold)
+call <sid>PaigeHighlight('dtExecKey', s:default_text_bold)
+call <sid>PaigeHighlight('dtLocaleKey', s:default_text_bold)
+call <sid>PaigeHighlight('dtBooleanKey', s:default_text_bold)
+call <sid>PaigeHighlight('dtStringKey', s:default_text_bold)
+call <sid>PaigeHighlight('dtDelim', s:alt_fg_text_2)
+
+" scdoc
+call <sid>PaigeHighlight('scdocHeader', s:alt_bg_text_bold)
+call <sid>PaigeHighlight('scdocPreambleName', s:alt_bg_text_bold)
+call <sid>PaigeHighlight('scdocPreambleExtra', s:alt_bg_text)
+call <sid>PaigeHighlight('scdocBold', s:default_text_bold)
+
+" man
+call <sid>PaigeHighlight('manHeader', s:alt_bg_text_bold)
+call <sid>PaigeHighlight('manSectionHeading', s:alt_bg_text_bold)
+call <sid>PaigeHighlight('manReference', s:default_text_bold)
+call <sid>PaigeHighlight('manOptionDesc', s:default_text_bold)
+call <sid>PaigeHighlight('manLongOptionDesc', s:default_text_bold)
+
+" ALE
+call <sid>PaigeHighlight('ALEErrorSign', s:red_bg_text)
+call <sid>PaigeHighlight('ALEWarningSign', s:green_fg_text)
diff --git a/nvim/colors/peachpuff-legacy.vim b/nvim/colors/peachpuff-legacy.vim
new file mode 100644
index 0000000..10e3a7d
--- /dev/null
+++ b/nvim/colors/peachpuff-legacy.vim
@@ -0,0 +1,59 @@
+" Vim color file
+" Maintainer: David Ne\v{c}as (Yeti) <yeti@physics.muni.cz>
+" Last Change: 2003-04-23
+" URL: http://trific.ath.cx/Ftp/vim/colors/peachpuff.vim
+
+" This color scheme uses a peachpuff background (what you've expected when it's
+" called peachpuff?).
+"
+" Note: Only GUI colors differ from default, on terminal it's just `light'.
+
+" First remove all existing highlighting.
+set background=light
+hi clear
+if exists("syntax_on")
+ syntax reset
+endif
+
+let colors_name = "peachpuff-legacy"
+
+hi Normal guibg=PeachPuff guifg=Black
+
+hi SpecialKey term=bold ctermfg=4 guifg=Blue
+hi NonText term=bold cterm=bold ctermfg=4 gui=bold guifg=Blue
+hi Directory term=bold ctermfg=4 guifg=Blue
+hi ErrorMsg term=standout cterm=bold ctermfg=7 ctermbg=1 gui=bold guifg=White guibg=Red
+hi IncSearch term=reverse cterm=reverse gui=reverse
+hi Search term=reverse ctermbg=3 guibg=Gold2
+hi MoreMsg term=bold ctermfg=2 gui=bold guifg=SeaGreen
+hi ModeMsg term=bold cterm=bold gui=bold
+hi LineNr term=underline ctermfg=3 guifg=Red3
+hi Question term=standout ctermfg=2 gui=bold guifg=SeaGreen
+hi StatusLine term=bold,reverse cterm=bold,reverse gui=bold guifg=White guibg=Black
+hi StatusLineNC term=reverse cterm=reverse gui=bold guifg=PeachPuff guibg=Gray45
+hi VertSplit term=reverse cterm=reverse gui=bold guifg=White guibg=Gray45
+hi Title term=bold ctermfg=5 gui=bold guifg=DeepPink3
+hi Visual term=reverse cterm=reverse gui=reverse guifg=Grey80 guibg=fg
+hi VisualNOS term=bold,underline cterm=bold,underline gui=bold,underline
+hi WarningMsg term=standout ctermfg=1 gui=bold guifg=Red
+hi WildMenu term=standout ctermfg=0 ctermbg=3 guifg=Black guibg=Yellow
+hi Folded term=standout ctermfg=4 ctermbg=7 guifg=Black guibg=#e3c1a5
+hi FoldColumn term=standout ctermfg=4 ctermbg=7 guifg=DarkBlue guibg=Gray80
+hi DiffAdd term=bold ctermbg=4 guibg=White
+hi DiffChange term=bold ctermbg=5 guibg=#edb5cd
+hi DiffDelete term=bold cterm=bold ctermfg=4 ctermbg=6 gui=bold guifg=LightBlue guibg=#f6e8d0
+hi DiffText term=reverse cterm=bold ctermbg=1 gui=bold guibg=#ff8060
+hi Cursor guifg=bg guibg=fg
+hi lCursor guifg=bg guibg=fg
+
+" Colors for syntax highlighting
+hi Comment term=bold ctermfg=4 guifg=#406090
+hi Constant term=underline ctermfg=1 guifg=#c00058
+hi Special term=bold ctermfg=5 guifg=SlateBlue
+hi Identifier term=underline ctermfg=6 guifg=DarkCyan
+hi Statement term=bold ctermfg=3 gui=bold guifg=Brown
+hi PreProc term=underline ctermfg=5 guifg=Magenta3
+hi Type term=underline ctermfg=2 gui=bold guifg=SeaGreen
+hi Ignore cterm=bold ctermfg=7 guifg=bg
+hi Error term=reverse cterm=bold ctermfg=7 ctermbg=1 gui=bold guifg=White guibg=Red
+hi Todo term=standout ctermfg=0 ctermbg=3 guifg=Blue guibg=Yellow
diff --git a/nvim/ftdetect/astro.lua b/nvim/ftdetect/astro.lua
new file mode 100644
index 0000000..af28385
--- /dev/null
+++ b/nvim/ftdetect/astro.lua
@@ -0,0 +1,5 @@
+vim.filetype.add({
+ extension = {
+ astro = "astro"
+ }
+})
diff --git a/nvim/ftdetect/haxe.vim b/nvim/ftdetect/haxe.vim
new file mode 100644
index 0000000..a492c36
--- /dev/null
+++ b/nvim/ftdetect/haxe.vim
@@ -0,0 +1 @@
+autocmd BufNewFile,BufRead *.hx setf haxe
diff --git a/nvim/init.lua b/nvim/init.lua
new file mode 100644
index 0000000..d27f5f1
--- /dev/null
+++ b/nvim/init.lua
@@ -0,0 +1,97 @@
+local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
+if not vim.loop.fs_stat(lazypath) then
+ vim.fn.system({
+ "git",
+ "clone",
+ "--filter=blob:none",
+ "https://github.com/folke/lazy.nvim.git",
+ "--branch=stable", -- latest stable release
+ lazypath,
+ })
+end
+vim.opt.rtp:prepend(lazypath)
+
+require("sixfourtwelve")
+
+local formatter_ocamlformat = {
+ function()
+ return {
+ exe = "ocamlformat",
+ args = { vim.api.nvim_buf_get_name(0) },
+ stdin = true
+ }
+ end
+}
+
+require('formatter').setup({
+ logging = true,
+ filetype = {
+ ocamlformat = formatter_ocamlformat,
+ }
+})
+
+vim.api.nvim_exec([[
+let g:go_fmt_autosave = 1
+let g:go_fmt_command = "goimports"
+let g:go_highlight_fields = 1
+let g:go_highlight_functions = 1
+let g:go_highlight_function_calls = 1
+let g:go_highlight_extra_types = 1
+let g:go_highlight_operators = 1
+]], true)
+
+vim.cmd([[
+ augroup CppModulesHighlight
+ autocmd!
+ autocmd FileType cpp syntax keyword cppModulesKeyword module import export
+ autocmd FileType cpp highlight def link cppModulesKeyword Statement
+ augroup END
+]])
+
+vim.api.nvim_exec([[
+ autocmd BufNewFile,BufRead *.m set filetype=objc
+]], true)
+
+vim.o.background = "dark"
+
+require("tokyonight").setup({
+ style = "moon",
+ transparent = true,
+})
+
+-- vim.cmd("colorscheme bore")
+
+vim.api.nvim_command(
+ "autocmd BufWritePre *.json,*.ex,*.go,*.lua,*.rb,*.hs,*.py,*.ml,*.mli,*.c,*.h,*.cc,*.hh,*.cpp,*.hpp,*.m,*.mm,*.php,*.odin,*.rs,*.cs,*.java,*.re,*.rei,*.res,*.resi,*.scala,*.sbt,*.gleam,*.ts,*.tsx,*.test.ts,*.test.tsx,*.js,*.jsx,*.test.js,*.test.jsx,*.cr,*.odin,*.astro,*.zig,*.clj,*.cljc,*.cljs lua vim.lsp.buf.format()")
+
+
+vim.api.nvim_set_option("clipboard", "unnamed")
+
+require("ts-error-translator").setup()
+require('illuminate').configure({
+ providers = {
+ 'lsp',
+ 'treesitter',
+ 'regex',
+ },
+})
+
+-- require('.lua.sixfourtwelve.knixstatusline').setup()
+
+require("lualine").setup({
+options = {
+ theme = "kanso",
+ icons_enabled = true,
+ globalstatus = true,
+ component_separators = { left = " ", right = " " },
+ section_separators = { left = "█", right = "█" },
+ sections = {
+ lualine_a = {'mode'},
+ lualine_b = {'branch', 'diff', 'diagnostics'},
+ lualine_c = {'filename', 'branch', 'diff', 'diagnostics'},
+ lualine_x = {'encoding', 'fileformat', 'filetype'},
+ lualine_y = {'progress'},
+ lualine_z = {'location'}
+ },
+},
+})
diff --git a/nvim/lazy-lock.json b/nvim/lazy-lock.json
new file mode 100644
index 0000000..b42e182
--- /dev/null
+++ b/nvim/lazy-lock.json
@@ -0,0 +1,59 @@
+{
+ "Colorizer": { "branch": "master", "commit": "f5d69c0dea9f36e2eb025c7d86cc62b5a0d8af62" },
+ "LuaSnip": { "branch": "master", "commit": "dae4f5aaa3574bd0c2b9dd20fb9542a02c10471c" },
+ "NeoSolarized.nvim": { "branch": "master", "commit": "3c55ad358c062aa4879950c4f83b4deeac6b72df" },
+ "catppuccin": { "branch": "main", "commit": "beaf41a30c26fd7d6c386d383155cbd65dd554cd" },
+ "cmp-buffer": { "branch": "main", "commit": "b74fab3656eea9de20a9b8116afa3cfc4ec09657" },
+ "cmp-nvim-lsp": { "branch": "main", "commit": "cbc7b02bb99fae35cb42f514762b89b5126651ef" },
+ "cmp-nvim-lua": { "branch": "main", "commit": "e3a22cb071eb9d6508a156306b102c45cd2d573d" },
+ "cmp-path": { "branch": "main", "commit": "c642487086dbd9a93160e1679a1327be111cbc25" },
+ "cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" },
+ "conjure": { "branch": "main", "commit": "403639610bcb9b6a5dfc494dc3179cc19773a471" },
+ "csharpls-extended-lsp.nvim": { "branch": "master", "commit": "6eb1308c8f74adbcaa0d681a742f39d4165d063d" },
+ "dropbar.nvim": { "branch": "master", "commit": "ce202248134e3949aac375fd66c28e5207785b10" },
+ "fidget.nvim": { "branch": "main", "commit": "7fa433a83118a70fe24c1ce88d5f0bd3453c0970" },
+ "formatter.nvim": { "branch": "master", "commit": "b9d7f853da1197b83b8edb4cc4952f7ad3a42e41" },
+ "friendly-snippets": { "branch": "main", "commit": "6cd7280adead7f586db6fccbd15d2cac7e2188b9" },
+ "git-blame.nvim": { "branch": "main", "commit": "5c536e2d4134d064aa3f41575280bc8a2a0e03d7" },
+ "gitsigns.nvim": { "branch": "main", "commit": "abf82a65f185bd54adc0679f74b7d6e1ada690c9" },
+ "harpoon": { "branch": "master", "commit": "1bc17e3e42ea3c46b33c0bbad6a880792692a1b3" },
+ "incline.nvim": { "branch": "main", "commit": "8b54c59bcb23366645ae10edca6edfb9d3a0853e" },
+ "kanso.nvim": { "branch": "main", "commit": "26f5c9686b17a27541c98551cf0cd2587627e387" },
+ "lazy.nvim": { "branch": "main", "commit": "306a05526ada86a7b30af95c5cc81ffba93fef97" },
+ "lsp-zero.nvim": { "branch": "v4.x", "commit": "d388e2b71834c826e61a3eba48caec53d7602510" },
+ "lspkind.nvim": { "branch": "master", "commit": "c7274c48137396526b59d86232eabcdc7fed8a32" },
+ "lualine.nvim": { "branch": "master", "commit": "47f91c416daef12db467145e16bed5bbfe00add8" },
+ "markview.nvim": { "branch": "main", "commit": "c81ce9ed129387fc5fdec91abe9818a1b0e6fcac" },
+ "mason-lspconfig.nvim": { "branch": "main", "commit": "3d89e7c92fbd96c5e10e0298fc2b006f21cf9428" },
+ "mason.nvim": { "branch": "main", "commit": "44d1e90e1f66e077268191e3ee9d2ac97cc18e65" },
+ "mini.nvim": { "branch": "main", "commit": "9b935c218ddba02e5dc75c94f90143bce1f7c646" },
+ "neoscroll.nvim": { "branch": "master", "commit": "c8d29979cb0cb3a2437a8e0ae683fd82f340d3b8" },
+ "noice.nvim": { "branch": "main", "commit": "7bfd942445fb63089b59f97ca487d605e715f155" },
+ "nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" },
+ "nvim-autopairs": { "branch": "master", "commit": "007047febaa3681a8d2f3dd5126fdb9c6e81f393" },
+ "nvim-cmp": { "branch": "main", "commit": "da88697d7f45d16852c6b2769dc52387d1ddc45f" },
+ "nvim-lspconfig": { "branch": "master", "commit": "238583bb00770b079c68c69a860d65e5d1d8acf9" },
+ "nvim-metals": { "branch": "main", "commit": "7ed47cd3095508e80423e30922385d5b9988f9d6" },
+ "nvim-tree.lua": { "branch": "master", "commit": "c07ce43527e5f0242121f4eb1feb7ac0ecea8275" },
+ "nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" },
+ "nvim-treesitter-context": { "branch": "master", "commit": "64dd4cf3f6fd0ab17622c5ce15c91fc539c3f24a" },
+ "nvim-web-devicons": { "branch": "master", "commit": "803353450c374192393f5387b6a0176d0972b848" },
+ "ocaml_mlx.nvim": { "branch": "main", "commit": "1f25e599fc713c033f3faf95aab8fbe5efd0897b" },
+ "outline.nvim": { "branch": "main", "commit": "1967ef50036b0b1eac4977aeede55915a741afe0" },
+ "playground": { "branch": "master", "commit": "ba48c6a62a280eefb7c85725b0915e021a1a0749" },
+ "plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" },
+ "roslyn.nvim": { "branch": "main", "commit": "0687e3c12731e3d76d3d8bfb5aa873b736105981" },
+ "snacks.nvim": { "branch": "main", "commit": "fe7cfe9800a182274d0f868a74b7263b8c0c020b" },
+ "telescope-fzf-native.nvim": { "branch": "main", "commit": "6fea601bd2b694c6f2ae08a6c6fab14930c60e2c" },
+ "telescope.nvim": { "branch": "master", "commit": "ad7d9580338354ccc136e5b8f0aa4f880434dcdc" },
+ "tmuxline.vim": { "branch": "master", "commit": "4119c553923212cc67f4e135e6f946dc3ec0a4d6" },
+ "tokyonight.nvim": { "branch": "main", "commit": "5da1b76e64daf4c5d410f06bcb6b9cb640da7dfd" },
+ "ts-error-translator.nvim": { "branch": "main", "commit": "558abff11b9e8f4cefc0de09df780c56841c7a4b" },
+ "twilight.nvim": { "branch": "main", "commit": "664e752f4a219801265cc3fc18782b457b58c1e1" },
+ "undotree": { "branch": "master", "commit": "178d19e00a643f825ea11d581b1684745d0c4eda" },
+ "vim-fugitive": { "branch": "master", "commit": "61b51c09b7c9ce04e821f6cf76ea4f6f903e3cf4" },
+ "vim-haxe": { "branch": "master", "commit": "8efc705db41a01713d67d437f29866a1ff831e8a" },
+ "vim-illuminate": { "branch": "master", "commit": "0d1e93684da00ab7c057410fecfc24f434698898" },
+ "vim-reason-plus": { "branch": "master", "commit": "c11a2940f8f3e3915e472c366fe460b0fe008bac" },
+ "vim-solarized8": { "branch": "master", "commit": "43e0b11c31f8f31fe76a795d3119046e4f9f151e" }
+}
diff --git a/nvim/lua/sixfourtwelve/autocmds.lua b/nvim/lua/sixfourtwelve/autocmds.lua
new file mode 100644
index 0000000..43ebcf0
--- /dev/null
+++ b/nvim/lua/sixfourtwelve/autocmds.lua
@@ -0,0 +1,56 @@
+vim.api.nvim_create_augroup('setIndent', { clear = true })
+
+vim.api.nvim_create_autocmd('Filetype', {
+ group = 'setIndent',
+ pattern = { 'c' },
+ command = 'setlocal shiftwidth=4 tabstop=4'
+})
+
+vim.api.nvim_create_autocmd('Filetype', {
+ group = 'setIndent',
+ pattern = { 'cpp' },
+ command = 'setlocal shiftwidth=2 tabstop=2'
+})
+
+vim.api.nvim_create_autocmd('Filetype', {
+ group = 'setIndent',
+ pattern = { 'fsharp' },
+ command = 'setlocal shiftwidth=4 tabstop=4'
+})
+
+vim.api.nvim_create_autocmd('Filetype', {
+ group = 'setIndent',
+ pattern = { 'objc', 'objcpp' },
+ command = 'setlocal shiftwidth=8 tabstop=8'
+})
+
+vim.api.nvim_create_autocmd('Filetype', {
+ group = 'setIndent',
+ pattern = { 'cs' },
+ command = 'setlocal shiftwidth=4 tabstop=4'
+})
+
+vim.api.nvim_create_autocmd('Filetype', {
+ group = 'setIndent',
+ pattern = { 'zig' },
+ command = 'setlocal shiftwidth=4 tabstop=4'
+})
+
+vim.api.nvim_create_autocmd('Filetype', {
+ group = 'setIndent',
+ pattern = { 'go' },
+ command = 'setlocal shiftwidth=8 tabstop=8'
+})
+
+
+vim.api.nvim_create_autocmd('Filetype', {
+ group = 'setIndent',
+ pattern = { 'odin' },
+ command = 'setlocal shiftwidth=8 tabstop=8'
+})
+
+vim.api.nvim_create_autocmd('Filetype', {
+ group = 'setIndent',
+ pattern = { 'ada' },
+ command = 'setlocal shiftwidth=3 tabstop=3'
+})
diff --git a/nvim/lua/sixfourtwelve/filetype.lua b/nvim/lua/sixfourtwelve/filetype.lua
new file mode 100644
index 0000000..2e44fb1
--- /dev/null
+++ b/nvim/lua/sixfourtwelve/filetype.lua
@@ -0,0 +1,5 @@
+vim.filetype.add({
+ extension = {
+ hx = 'haxe',
+ },
+})
diff --git a/nvim/lua/sixfourtwelve/init.lua b/nvim/lua/sixfourtwelve/init.lua
new file mode 100644
index 0000000..aed9fd0
--- /dev/null
+++ b/nvim/lua/sixfourtwelve/init.lua
@@ -0,0 +1,4 @@
+require("sixfourtwelve.remap")
+require("sixfourtwelve.set")
+require("sixfourtwelve.lazy")
+require("sixfourtwelve.autocmds")
diff --git a/nvim/lua/sixfourtwelve/knixstatusline.lua b/nvim/lua/sixfourtwelve/knixstatusline.lua
new file mode 100644
index 0000000..8791484
--- /dev/null
+++ b/nvim/lua/sixfourtwelve/knixstatusline.lua
@@ -0,0 +1,73 @@
+local M = {}
+
+M.Palette = {
+ black = "#090e13",
+ red = "#c4746e",
+ green = "#8a9a7b",
+ yellow = "#c4b28a",
+ blue = "#8ba4b0",
+ magenta = "#a292a3",
+ cyan = "#8ea4a2",
+ white = "#a4a7a4",
+ bright_black = "#5c6066",
+ bright_red = "#e46876",
+ bright_green = "#87a987",
+ bright_yellow = "#e6c384",
+ bright_blue = "#7fb4ca",
+ bright_magenta = "#938aa9",
+ bright_cyan = "#7aa89f",
+ bright_white = "#c5c9c7",
+ background = "#090e13",
+ foreground = "#c5c9c7",
+ cursor_color = "#c5c9c7",
+ selection_background = "#22262d",
+ selection_foreground = "#c5c9c7",
+
+ background_light = '#111a23'
+}
+
+vim.cmd [[
+set fillchars=vert:│
+
+" Optional: give split separators a highlight group
+highlight WinSeparator guifg=#c5c9c7 guibg=NONE
+set winhighlight=VertSplit:WinSeparator
+]]
+
+M.setup = function()
+ vim.api.nvim_set_hl(0, 'User1', { fg = M.Palette.green, bg = M.background_light })
+ vim.api.nvim_set_hl(0, 'User2', { fg = M.Palette.foreground, bg = M.background_light })
+ vim.api.nvim_set_hl(0, 'User3', { fg = M.Palette.red, bg = M.background_light })
+ vim.api.nvim_set_hl(0, 'User4', { fg = M.Palette.white, bg = M.background_light })
+ vim.api.nvim_set_hl(0, 'User6', { fg = M.Palette.yellow, bg = M.background_light })
+ --vim.api.nvim_set_hl(0, 'StatusLine', { bg = M.background_light })
+
+ local inspirations = {
+ 'every second counts',
+ 'Hello, World!',
+ 'this is water',
+ 'leaf',
+ 'timshel'
+ }
+ math.randomseed(os.time())
+ local random_index = math.random(#inspirations)
+ local inspiration = inspirations[random_index]
+ local s = '%1* ' .. inspiration .. '%*'
+
+ vim.o.laststatus = 2
+ vim.o.statusline = ''
+ -- set statusline+=%6*\ %<%F%* "full path
+ vim.cmd [[
+ set statusline+=%3*%m%* "modified flag
+ set statusline+=%4*\ %y%* "file type
+ ]]
+ vim.o.statusline = vim.o.statusline .. s
+ vim.cmd [[
+ set statusline+=%1*%=%5l%* "current line
+ set statusline+=%2*/%L%* "total lines
+ set statusline+=%1*%4v\ %* "virtual column number
+ set statusline+=%6*0x%04B\ %* "character under cursor
+ ]]
+end
+
+return M
diff --git a/nvim/lua/sixfourtwelve/lazy.lua b/nvim/lua/sixfourtwelve/lazy.lua
new file mode 100644
index 0000000..a89a964
--- /dev/null
+++ b/nvim/lua/sixfourtwelve/lazy.lua
@@ -0,0 +1,272 @@
+---@diagnostic disable: undefined-global
+---
+vim.g.mapleader = " "
+vim.g.maplocalleader = ","
+
+return require("lazy").setup({
+ {
+ 'b0o/incline.nvim',
+ config = function()
+ local helpers = require 'incline.helpers'
+ local devicons = require 'nvim-web-devicons'
+ require('incline').setup({
+ render = function(props)
+ local filename = vim.fn.fnamemodify(vim.api.nvim_buf_get_name(props.buf), ':t')
+ if filename == '' then
+ filename = '[No Name]'
+ end
+ local ft_icon, ft_color = devicons.get_icon_color(filename)
+ return {
+ ft_icon and { ' ', ft_icon, ' ', guibg = "", guifg = helpers.contrast_color(ft_color) } or '',
+ ' ',
+ { filename },
+ ' ',
+ guibg = '',
+ }
+ end,
+ })
+ end,
+ event = 'VeryLazy',
+ },
+ {
+ 'Bekaboo/dropbar.nvim',
+ -- optional, but required for fuzzy finder support
+ dependencies = {
+ 'nvim-telescope/telescope-fzf-native.nvim',
+ build = 'make'
+ },
+ config = function()
+ local dropbar_api = require('dropbar.api')
+ vim.keymap.set('n', '<Leader>;', dropbar_api.pick, { desc = 'Pick symbols in winbar' })
+ vim.keymap.set('n', '[;', dropbar_api.goto_context_start, { desc = 'Go to start of current context' })
+ vim.keymap.set('n', '];', dropbar_api.select_next_context, { desc = 'Select next context' })
+ end
+ },
+ {
+ "webhooked/kanso.nvim",
+ lazy = false,
+ priority = 1000,
+ config = function()
+ require("kanso").setup {
+ bold = false,
+ italics = false,
+ keywordStyle = { italic = false },
+ background = {
+ dark = "zen",
+ light = "pearl"
+ },
+ foreground = {
+ -- dark = "saturated",
+ -- light = "saturated"
+ }
+ }
+ vim.cmd("colorscheme kanso")
+ vim.defer_fn(function()
+ for _, group in ipairs({
+ "DiagnosticUnderlineError",
+ "DiagnosticUnderlineWarn",
+ "DiagnosticUnderlineInfo",
+ "DiagnosticUnderlineHint",
+ }) do
+ local hl = vim.api.nvim_get_hl(0, { name = group })
+ hl.undercurl = false
+ hl.underline = true
+ hl.bold = false
+ vim.api.nvim_set_hl(0, group, hl)
+ end
+ end, 50)
+
+ end
+ },
+ {"folke/twilight.nvim"},
+ {"edkolev/tmuxline.vim"},
+ {"nvim-lualine/lualine.nvim"},
+ {"Tsuzat/NeoSolarized.nvim"},
+ {"lifepillar/vim-solarized8"},
+ {
+ "seblyng/roslyn.nvim",
+ ---@module 'roslyn.config'
+ ---@type RoslynNvimConfig
+ opts = {},
+ },
+ { "Decodetalkers/csharpls-extended-lsp.nvim" },
+ {
+ "folke/snacks.nvim",
+ opts = {
+ indent = {
+ indent = {
+ enabled = false,
+ },
+ chunk = {
+ enabled = true,
+ char = {
+ horizontal = '─',
+ vertical = '│',
+ corner_top = '╭',
+ corner_bottom = '╰',
+ arrow = '─',
+ },
+ },
+ },
+ },
+ },
+ { "onsails/lspkind.nvim" },
+ { "RRethy/vim-illuminate" },
+-- {"windwp/windline.nvim",
+-- config = function()
+-- require("wlsample.airline")
+-- end,
+-- },
+ {
+ "scalameta/nvim-metals",
+ dependencies = {
+ "nvim-lua/plenary.nvim",
+ },
+ ft = { "scala", "sbt", "java" },
+ opts = function()
+ local metals_config = require("metals").bare_config()
+
+ local options = { buffer = bufnr, remap = false }
+ metals_config.on_attach = function(client, bufnr)
+ vim.keymap.set('n', 'gd', '<cmd>lua require"telescope.builtin".lsp_definitions({jump_type="vsplit"})<CR>',
+ options)
+ -- vim.keymap.set('n', 'gd', function() vim.lsp.buf.definition() end, options)
+ vim.keymap.set("n", "gr", function() vim.lsp.buf.references() end, options)
+ vim.keymap.set("n", "bh", function() vim.lsp.buf.hover() end, options)
+ vim.keymap.set("n", "ca", function() vim.lsp.buf.code_action() end, options)
+ vim.keymap.set("n", "cr", function() vim.lsp.buf.rename() end, options)
+ vim.keymap.set("n", "gv", function() vim.lsp.buf.signature_help() end, options)
+ vim.keymap.set("n", "gl", function() vim.diagnostic.open_float() end, options)
+ vim.keymap.set("n", "[d", function() vim.diagnostic.goto_next() end, options)
+ vim.keymap.set("n", "]d", function() vim.diagnostic.goto_prev() end, options)
+ end
+
+ return metals_config
+ end,
+ config = function(self, metals_config)
+ local nvim_metals_group = vim.api.nvim_create_augroup("nvim-metals", { clear = true })
+ vim.api.nvim_create_autocmd("FileType", {
+ pattern = self.ft,
+ callback = function()
+ require("metals").initialize_or_attach(metals_config)
+ end,
+ group = nvim_metals_group,
+ })
+ end
+ },
+ { "reasonml-editor/vim-reason-plus" },
+ {
+ 'echasnovski/mini.nvim',
+ config = function()
+ require('mini.ai').setup { n_lines = 500 }
+ require('mini.sessions').setup({})
+
+ require('mini.icons').setup({
+ style = 'glyph',
+ })
+ -- require('mini.tabline').setup({
+ -- show_icons = true,
+ -- tabpage_section = 'right',
+ -- })
+ --
+ local starter = require('mini.starter')
+ starter.setup({
+ evaluate_single = true,
+ items = {
+ starter.sections.builtin_actions(),
+ starter.sections.recent_files(10, false),
+ starter.sections.recent_files(10, true),
+ starter.sections.sessions(5, true)
+ },
+ content_hooks = {
+ starter.gen_hook.adding_bullet(),
+ starter.gen_hook.indexing('all', { 'Builtin actions' }),
+ starter.gen_hook.padding(3, 2),
+ },
+ })
+ end
+ },
+ { "folke/tokyonight.nvim" },
+ { 'dmmulroy/ts-error-translator.nvim' },
+ {
+ 'Olical/conjure',
+ ft = { "clojure", "fennel", "racket", "scheme", "lisp" },
+ lazy = true,
+ enabled = true,
+ },
+ { "ocaml-mlx/ocaml_mlx.nvim" },
+ {
+ "karb94/neoscroll.nvim",
+ config = function()
+ require('neoscroll').setup({})
+ end
+ },
+ -- { 'fatih/vim-go' },
+ { "nvim-treesitter/nvim-treesitter", build = ':TSUpdate', lazy = false, dependencies = { "OXY2DEV/markview.nvim" } },
+ { "nvim-treesitter/playground" },
+ {
+ "ThePrimeagen/harpoon",
+ lazy = true,
+ },
+ { "tpope/vim-fugitive" },
+ { "chrisbra/Colorizer" },
+ { "lewis6991/gitsigns.nvim" },
+ { "f-person/git-blame.nvim" },
+ { "j-hui/fidget.nvim" },
+ { 'MunifTanjim/nui.nvim' },
+ { "folke/noice.nvim" },
+ {
+ "hedyhli/outline.nvim",
+ config = function()
+ vim.keymap.set("n", "<leader>o", "<cmd>Outline<CR>",
+ { desc = "Toggle Outline" })
+
+ require("outline").setup {
+ outline_window = {
+ width = 25,
+ relative_width = true,
+ focus_on_open = true,
+ auto_jump = false
+ },
+ preview_window = {
+ auto_preview = true,
+ open_hover_on_preview = true,
+ width = 50,
+ min_width = 50,
+ relative_width = true,
+ border = 'single',
+ winhl = 'NormalFloat:',
+ },
+ }
+ end,
+ },
+ { 'windwp/nvim-autopairs' },
+ { 'neovim/nvim-lspconfig' },
+ {
+ 'williamboman/mason.nvim',
+ },
+ { 'williamboman/mason-lspconfig.nvim' },
+
+ { 'hrsh7th/nvim-cmp' },
+ { 'hrsh7th/cmp-buffer' },
+ { 'hrsh7th/cmp-path' },
+ { 'saadparwaiz1/cmp_luasnip' },
+ { 'hrsh7th/cmp-nvim-lsp' },
+ { 'hrsh7th/cmp-nvim-lua' },
+
+ { 'L3MON4D3/LuaSnip' },
+ { 'rafamadriz/friendly-snippets' },
+
+ {
+ 'VonHeikemen/lsp-zero.nvim',
+ lazy = false,
+ -- branch = 'v1.x',
+ },
+ { "kyazdani42/nvim-web-devicons" },
+ { 'mhartington/formatter.nvim' },
+ { 'kyazdani42/nvim-tree.lua' },
+ { 'nvim-telescope/telescope.nvim', dependencies = { { 'nvim-lua/plenary.nvim' } } },
+ { "mbbill/undotree" },
+ { "nvim-treesitter/nvim-treesitter-context" },
+ { "catppuccin/nvim", name = "catppuccin", priority = 1000 },
+}, opts)
diff --git a/nvim/lua/sixfourtwelve/remap.lua b/nvim/lua/sixfourtwelve/remap.lua
new file mode 100644
index 0000000..dd00385
--- /dev/null
+++ b/nvim/lua/sixfourtwelve/remap.lua
@@ -0,0 +1,22 @@
+vim.keymap.set("v", "J", ":m '>+1<CR>gv=gv")
+vim.keymap.set("v", "K", ":m '<-2<CR>gv=gv")
+
+vim.keymap.set("n", "<C-d>", "<C-d>zz")
+vim.keymap.set("n", "<C-u>", "<C-u>zz")
+
+vim.keymap.set("n", "n", "nzzzv")
+vim.keymap.set("n", "N", "Nzzzv")
+
+vim.keymap.set("x", "<leader>p", [["_dP]])
+vim.keymap.set("n", "<C-j>", "<cmd>cnext<CR>zz")
+vim.keymap.set("n", "<C-k>", "<cmd>cprev<CR>zz")
+vim.keymap.set("n", "<leader>k", "<cmd>lnext<CR>zz")
+
+vim.keymap.set("n", "<leader>j", "<cmd>lprev<CR>zz")
+vim.api.nvim_set_keymap('n', 's', 'xi', { noremap = true })
+
+
+vim.keymap.set("n", "<C-a>", "<cmd>:bprev<CR>zz")
+vim.keymap.set("n", "<C-s>", "<cmd>:bnext<CR>zz")
+-- vim.keymap.set("n", "<C-w>", "<cmd>:bdelete<CR>zz")
+vim.keymap.set("n", "<C-c>", "<cmd>:w<CR>zz")
diff --git a/nvim/lua/sixfourtwelve/set.lua b/nvim/lua/sixfourtwelve/set.lua
new file mode 100644
index 0000000..a69215d
--- /dev/null
+++ b/nvim/lua/sixfourtwelve/set.lua
@@ -0,0 +1,30 @@
+vim.o.number = true
+vim.o.laststatus = 2
+vim.o.numberwidth = 1
+vim.o.relativenumber = false
+vim.o.tabstop = 2
+vim.o.shiftwidth = 2
+vim.o.expandtab = true
+vim.o.shiftround = true
+vim.o.mouse = "a"
+vim.o.wrap = true
+
+vim.o.signcolumn = "yes"
+vim.o.syntax = "on"
+vim.o.termguicolors = true
+
+vim.opt.smartindent = false
+
+vim.opt.wrap = true
+
+vim.opt.hlsearch = false
+vim.opt.incsearch = true
+
+vim.opt.swapfile = false
+vim.opt.backup = false
+vim.opt.undodir = os.getenv("HOME") .. "/.nvim/undodir"
+vim.opt.undofile = true
+
+vim.opt.scrolloff = 8
+
+vim.opt.updatetime = 5
diff --git a/nvim/syntax/haxe.vim b/nvim/syntax/haxe.vim
new file mode 100644
index 0000000..ec950b9
--- /dev/null
+++ b/nvim/syntax/haxe.vim
@@ -0,0 +1,427 @@
+" Vim syntax file
+" Language: haxe
+" Derived from:
+" http://tech.motion-twin.com/zip/haxe.vim
+" and http://www.cactusflower.org/haxe.vim
+" Please check :help haxe.vim for comments on some of the options available.
+
+set errorformat=%f\:%l\:\ characters\ %c-%*[^\ ]\ %m,%f\:%l\:\ %m
+
+" Quit when a syntax file was already loaded
+if !exists("main_syntax")
+ if version < 600
+ syntax clear
+ elseif exists("b:current_syntax")
+ finish
+ endif
+ let main_syntax='haxe'
+endif
+
+if version < 508
+ command! -nargs=+ HaxeHiLink hi link <args>
+else
+ command! -nargs=+ HaxeHiLink hi def link <args>
+endif
+
+" some characters that cannot be in a haxe program (outside a string)
+syn match haxeError "[\\@`]"
+syn match haxeError "<<<\|=>\|<>\|||=\|&&=\|\*\/"
+
+" use separate name so that it can be deleted in haxecc.vim
+syn match haxeError2 "#\|=<"
+HaxeHiLink haxeError2 haxeError
+
+syn keyword haxeExternal import extern using
+syn keyword haxeDefine package
+syn keyword haxeConditional if else switch
+syn keyword haxeRepeat while for do in
+syn keyword haxeBoolean true false
+syn keyword haxeConstant null
+syn keyword haxeTypedef this super
+syn keyword haxeOperator new cast
+syn keyword haxeCoreType Void Bool Int Float Dynamic
+syn keyword haxeStatement return
+
+syn keyword haxeTypedef1 typedef
+syn keyword haxeStructure var enum
+syn keyword haxeScopeDecl private public
+syn keyword haxeScopeDecl2 static override final dynamic
+syn keyword haxeFunctionDef function
+
+syn keyword haxeExceptions throw try catch finally untyped
+syn keyword haxeAssert assert
+syn keyword haxeMethodDecl synchronized throws
+syn keyword haxeClassDecl extends implements interface
+syn match haxeDelimiter "[;:=\.]"
+syn match haxeOperator "\(\.\.\.\|\*\|+\|-\|<<\|>>\|\/\|!\|||\|&&\|%\)"
+syn match haxeComparison "\(==\|<=\|>=\|<\|>\|!=\)"
+syn match haxeOptionalVars contained "?[a-zA-Z_]\+"
+
+syn match haxeFunctionRef "[_$a-zA-Z][_$a-zA-Z0-9_]*("me=e-1
+
+" We use a match here to differentiate the keyword class from MyClass.class
+syn match haxeTypedef "\.\s*\<class\>"ms=s+1
+syn match haxeClassDecl "^class\>"
+syn match haxeClassDecl "[^.]\s*\<class\>"ms=s+1
+syn keyword haxeBranch break continue nextgroup=haxeUserLabelRef skipwhite
+syn match haxeUserLabelRef "\k\+" contained
+syn match haxeClassDef "\(^\s*class\s*\)\@<=[_$a-zA-Z][_$a-zA-Z0-9_]*" contains=haxeTypedef,haxeClassDecl
+
+syn match haxeLangClass "\<System\>"
+syn keyword haxeLangClass Array ArrayAccess Class Date DateTools EReg Enum
+syn keyword haxeLangClass Hash IntHash IntIter Iterable Iterator Lambda
+syn keyword haxeLangClass List Math Null Reflect Std String StringBug
+syn keyword haxeLangClass StringTools Type UInt ValueType Xml XmlType
+
+syn keyword haxeFlashTop flash
+syn keyword haxeFlashInner accessibility deskdop display errors events
+syn keyword haxeFlashInner external filters geom media net printing sampler
+syn keyword haxeFlashInner system text ui utils xml display engine
+syn keyword haxeFlashFinal BitmapData ExternalInterface BevelFilter
+syn keyword haxeFlashFinal BitmapFilter BlurFilter ColorMatrixFilter ConvolutionFilter
+syn keyword haxeFlashFinal DisplacementMapFilter DropShadowFilter GlowFilter GradientBevelFilter
+syn keyword haxeFlashFinal GradientGlowFilter ColorTransform Matrix Point Rectangle Transform
+syn keyword haxeFlashFinal FileReference FileReferenceList Capabilities IME Security StyleSheet
+syn keyword haxeFlashFinal TextRenderer Accessibility Boot Button Camera Color ContextMenu
+syn keyword haxeFlashFinal ContextMenuItem ExtendedKey Key Lib LoadVars
+syn keyword haxeFlashFinal LocalConnection Microphone Mouse MovieClip
+syn keyword haxeFlashFinal MovieClipLoader NetConnection NetStream PrintJob
+syn keyword haxeFlashFinal Selection SelectionListener SharedObject Sound
+syn keyword haxeFlashFinal Stage System TextField TextFormat TextSnapshot
+syn keyword haxeFlashFinal Video XMLRequest XMLSocket
+syn keyword haxeFlash9Final Accessibility AccessibilityImplementation
+syn keyword haxeFlash9Final AccessibilityProperties Clipboard
+syn keyword haxeFlash9Final ClipboardFormats ClipboardTransferMode AVM1Movie
+syn keyword haxeFlash9Final ActionScriptVersion Bitmap BitmapData
+syn keyword haxeFlash9Final BitmapDataChannel BlendMode CapsStyle
+syn keyword haxeFlash9Final DisplayObject DisplayObjectContainer FrameLabel
+syn keyword haxeFlash9Final GradientType Graphics GraphicsBitmapFill
+syn keyword haxeFlash9Final GraphicsEndFill GraphicsGradientFill GraphicsPath
+syn keyword haxeFlash9Final GraphicsPathCommand GraphicsPathWinding
+syn keyword haxeFlash9Final GraphicsShaderFill GraphicsSolidFill
+syn keyword haxeFlash9Final GraphicsStroke GraphicsTrianglePath
+syn keyword haxeFlash9Final IBitmapDrawable IGraphicsData IGraphicsFill
+syn keyword haxeFlash9Final IGraphicsPath IGraphicsStroke InteractiveObject
+syn keyword haxeFlash9Final InterpolationMethod JointStyle
+syn keyword haxeFlash9Final LineScaleMode Loader LoaderInfo MorphShape
+syn keyword haxeFlash9Final MovieClip PixelSnapping SWFVersion
+syn keyword haxeFlash9Final Scene Shader ShaderData ShaderInput ShaderJob ShaderParameter
+syn keyword haxeFlash9Final ShaderParameterType ShaderPrecision Shape
+syn keyword haxeFlash9Final SimpleButton SpreadMethod Sprite
+syn keyword haxeFlash9Final Stage StageAlign StageDisplayState StageQuality
+syn keyword haxeFlash9Final StageScaleMode TriangleCulling
+syn keyword haxeFlash9Final EOFError Error IOError Illegal OperationError
+syn keyword haxeFlash9Final InvalidSWFError MemoryError ScriptTimeoutError
+syn keyword haxeFlash9Final StackOverflowError ActivityEventAsyncErrorEvent
+syn keyword haxeFlash9Final ContextMenuEvent DataEvent ErrorEvent Event
+syn keyword haxeFlash9Final EventDispatcher EventPhase FocusEvent
+syn keyword haxeFlash9Final FullScreenEvent HTTPStatusEvent IEventDispatcher IMEEvent
+syn keyword haxeFlash9Final IOErrorEvent KeyboardEvent MouseEvent
+syn keyword haxeFlash9Final NetFilterEvent NetStatusEvent ProgressEvent
+syn keyword haxeFlash9Final SampleDataEvent SecurityErrorEvent ShaderEvent StatusEvent
+syn keyword haxeFlash9Final SyncEvent TextEvent TimerEvent WeakFunctionClosure WeakMethodClosure
+syn keyword haxeFlash9Final ExternalInterface BevelFilter BitmapFilter
+syn keyword haxeFlash9Final BitmapFilterQuality BitmapFilterType
+syn keyword haxeFlash9Final BlurFilter ColorMatrixFilter ConvolutionFilter DisplacementMapFilter
+syn keyword haxeFlash9Final DisplacementMapFilterMode DropShadowFilter
+syn keyword haxeFlash9Final GlowFilter GradientBevelFilter
+syn keyword haxeFlash9Final GradientGlowFilter ShaderFilter ColorTransform
+syn keyword haxeFlash9Final Matrix Matrix3D Orientation3D
+syn keyword haxeFlash9Final PerspectiveProjection Point Rectangle Transform
+syn keyword haxeFlash9Final Utils3D Vector3D Camera ID3Info
+syn keyword haxeFlash9Final Microphone Sound SoundChannel SoundCodec SoundLoaderContext SoundMixer
+syn keyword haxeFlash9Final SoundTransform Video DynamicPropertyOutput FileFilter FileReference
+syn keyword haxeFlash9Final FileReferenceList IDynamicPropertyOutput
+syn keyword haxeFlash9Final IDynamicPropertyWriter LocalConnection
+syn keyword haxeFlash9Final NetConnection NetStream NetStreamInfo NetSTreamPlayOptions
+syn keyword haxeFlash9Final NetSTreamPlayTransitions ObjectEncoding Responder SharedObject
+syn keyword haxeFlash9Final SharedObjectFlushStatus Socket URLLoader URLLoaderDataFormat URLRequest
+syn keyword haxeFlash9Final URLRequestHeader URLRequestMethod URLStream
+syn keyword haxeFlash9Final URLVariables XMLSocket PrintJob
+syn keyword haxeFlash9Final PrintJobOptions PrintJobOrientation Api
+syn keyword haxeFlash9Final DeleteObjectSample NewObjectSample
+syn keyword haxeFlash9Final Sample StackFrame ApplicationDomain Capabilities FSCommand IME
+syn keyword haxeFlash9Final IMEConversionMode JPEGLoaderContext
+syn keyword haxeFlash9Final LoaderContext Security SecurityDomain
+syn keyword haxeFlash9Final SecurityPanel System
+syn keyword haxeFlash9Final BreakOpportunity CFFHinting ContentElement
+syn keyword haxeFlash9Final DigitCase DigitWidth EastAsianJustifier ElementFormat FontDescription
+syn keyword haxeFlash9Final FontLookup FontMetrics FontPosture FontWeight
+syn keyword haxeFlash9Final GraphicElement GroupElement
+syn keyword haxeFlash9Final JustificationStyle Kerning LIgatureLevel
+syn keyword haxeFlash9Final LineJustification RenderingMode
+syn keyword haxeFlash9Final SpaceJustifier TabAlignment TabStop TextBaseline TextBlock TextElement
+syn keyword haxeFlash9Final TextJustifier TextLine TextLineCreationResult TextLineMirrorRegion
+syn keyword haxeFlash9Final TextLineValidity TextRotation TypographicCase
+syn keyword haxeFlash9Final AntiAliasType CSMSettings Font
+syn keyword haxeFlash9Final FontStyle FontType GridFitType StaticText StyleSheet TextColorType
+syn keyword haxeFlash9Final TextDisplayMode TextExtent TextField
+syn keyword haxeFlash9Final TextFieldAutoSize TextFieldType TextFormat
+syn keyword haxeFlash9Final TextFormatAlign TextFormatDisplay TextLineMetrics TextRenderer TextRun
+syn keyword haxeFlash9Final TextSnapshot Trace ContextMenu ContextMenuBuiltInItems
+syn keyword haxeFlash9Final ContextMenuClipboardItems ContextMenuItem KeyLocation Keyboard Mouse
+syn keyword haxeFlash9Final MouseCursor ByteArray Dictionary Endian
+syn keyword haxeFlash9Final IDataInput IDataOutput IExternalizable
+syn keyword haxeFlash9Final Namespace ObjectInput ObjectOutput Proxy QName SetIntervalTimer Timer
+syn keyword haxeFlash9Final TypedDictionary XML XMLDocument XMLList XMLNode
+syn keyword haxeFlash9Final XMLNodeType XMLParser XMLTag
+syn keyword haxeFlash9Final Boot Lib Memory Vector
+
+HaxeHiLink haxeLangObject haxeConstant
+syn cluster haxeTop add=haxeLangObject,haxeLangClass
+syn cluster haxeClasses add=haxeLangClass,haxeFlashClass
+
+if filereadable(expand("<sfile>:p:h")."/haxeid.vim")
+ source <sfile>:p:h/haxeid.vim
+endif
+
+if !exists("haxe_no_trail_space_error")
+ syn match haxeSpaceError "\s\+$"
+endif
+if !exists("haxe_no_tab_space_error")
+ syn match haxeSpaceError " \+\t"me=e-1
+endif
+
+syn region haxeLabelRegion transparent matchgroup=haxeLabel start="\<case\>"
+ \ matchgroup=NONE end=":"
+ \ contains=haxeNumber,haxeChr,haxeNumber2
+syn match haxeUserLabel "\({\s*\|^\s*\|,\s*\)\@<=[_$a-zA-Z][_$a-zA-Z0-9_]*:\s"he=e-1 contains=haxeDelimiter
+ \ contains=haxeLabel
+syn keyword haxeLabel default never
+
+" Everything - used in parenthases checking or something
+syn cluster haxeTop add=haxeExternal,haxeError,haxeError,haxeBranch,
+ \ haxeLabelRegion,haxeLabel,haxeConditional,
+ \ haxeRepeat,haxeBoolean,haxeConstant,
+ \ haxeTypedef,haxeOperator,haxeType,haxeCoreType,
+ \ haxeStatement,haxeStorageClass,haxeAssert,
+ \ haxeExceptions,haxeMethodDecl,haxeClassDecl,
+ \ haxeClassDecl,haxeClassDecl,haxeScopeDecl,
+ \ haxeError,haxeError2,haxeUserLabel,
+ \ haxeLangObject,haxeFlashTop,haxeFlashInner,
+ \ haxeFlashFinal,haxeFlash9Final,haxeFunctionRef,
+ \ haxeComparison,haxeOptionalVars
+
+" Comments
+syn keyword haxeTodo contained TODO FIXME XXX
+if exists("haxe_comment_strings")
+ syn region haxeCmString contained start=+"+ end=+"+ end=+$+
+ \ end=+\*/+me=s-1,he=s-1
+ \ contains=haxeSpecial,haxeCmStar,haxeSpecChr,@Spell
+ syn region haxeCm2String contained start=+"+ end=+$\|"+
+ \ contains=haxeSpecial,haxeSpecChr,@Spell
+ syn match haxeCmCharacter contained "'\\[^']\{1,6\}'" contains=haxeSpecChr
+ syn match haxeCmCharacter contained "'\\''" contains=haxeSpecChr
+ syn match haxeCmCharacter contained "'[^\\]'"
+ syn cluster haxeCmSpecial add=haxeCmString,haxeCmCharacter,haxeNumber,haxeNumber2
+ syn cluster haxeCmSpecial2 add=haxeCm2String,haxeCmCharacter,haxeNumber,haxeNumber2
+endif
+syn region haxeCm start="/\*" end="\*/"
+ \ contains=@haxeCmSpecial,haxeTodo,@Spell
+syn match haxeCmStar contained "^\s*\*[^/]"me=e-1
+syn match haxeCmStar contained "^\s*\*$"
+syn match haxeLineCm "//.*" contains=@haxeCmSpecial2,haxeTodo,@Spell
+HaxeHiLink haxeCmString haxeDocTags
+HaxeHiLink haxeCm2String haxeString
+HaxeHiLink haxeCmCharacter haxeChr
+syn cluster haxeTop add=haxeCm,haxeLineCm
+if exists("haxe_haxedoc") || main_syntax == 'jsp'
+ syntax case ignore
+ " syntax coloring for haxedoc comments (HTML)
+ " syntax include @haxeHtml <sfile>:p:h/html.vim
+ " unlet b:current_syntax
+ syn region haxeDocCm start="/\*\*" end="\*/" keepend
+ \ contains=haxeCmTitle,@haxeHtml,haxeDocTags,haxeTodo,@Spell,haxeProposedTags
+ syn region haxeCmTitle contained matchgroup=haxeDocCm start="/\*\*"
+ \ matchgroup=haxeCmTitle keepend end="\.$"
+ \ end="\.[ \t\r<]"me=e-1
+ \ end="[^{]@"me=s-2,he=s-1 end="\*/"me=s-1,he=s-1
+ \ contains=@haxeHtml,haxeCmStar,haxeTodo,@Spell,haxeDocTags,haxeProposedTags
+ syn region haxeDocTags contained start="{@\(link\|linkplain\|inherit[Dd]oc\|doc[rR]oot\|value\)"
+ \ end="}"
+ syn match haxeDocTags contained "@\(see\|param\|exception\|throws\|since\)\s\+\S\+"
+ \ contains=haxeDocParam
+ syn match haxeDocParam contained "\s\S\+"
+ syn match haxeDocTags contained "@\(version\|author\|return\|deprecated\|serial\|serialField\|serialData\)\>"
+ syn match haxeProposedTags contained "@\(category\|example\|tutorial\|index\|exclude\|todo\|internal\|obsolete\)\>"
+ syntax case match
+endif
+syn match haxeCm "/\*\*/" " Edge case
+
+
+" Strings and constants
+syn match haxeSpecError contained "\\."
+"syn match haxeSpecChrError contained "[^']"
+syn match haxeSpecChr contained "\\\([4-9]\d\|[0-3]\d\d\|[\"\\'ntbrf]\|u\x\{4\}\)"
+syn match haxeEregEscape contained "\(\\\\\|\\/\)"
+syn region haxeEreg start=+\~\/+ end=+\/[gims]*+ contains=haxeEregEscape
+
+syn region haxeString start=+"+ end=+"+ contains=haxeSpecChr,haxeSpecError,@Spell
+syn region haxeSingleString start=+'+ end=+'+
+syn match haxeChr "'[^']*'" contains=haxeSpecChr,haxeSpecChrError
+syn match haxeChr "'\\''" contains=haxeSpecChr
+syn match haxeChr "'[^\\]'"
+syn match haxeNumber "\<\(0[0-7]*\|0[xX]\x\+\|\d\+\)[lL]\=\>" contains=haxeSpecNum
+"syn match haxeNumber "\(\<\d\+\.\d*\|\.\d\+\)\([eE][-+]\=\d\+\)\=[fFdD]\="
+syn match haxeNumber2 "\(\<\d\+\.\d\+\)\([eE][-+]\=\d\+\)\=[fFdD]\=" contains=haxeSpecNum
+syn match haxeNumber2 "\<\d\+[eE][-+]\=\d\+[fFdD]\=\>" contains=haxeSpecNum
+syn match haxeNumber2 "\<\d\+\([eE][-+]\=\d\+\)\=[fFdD]\>" contains=haxeSpecNum
+syn match haxeSpecNum contained "\(0[xX]\|[\.+-]\)"
+
+syn region haxeCondIf start="#if \+!\?" end="\(\W\|$\)" skip="([A-Za-z0-9_ |&!]\+)"
+syn region haxeCondElseIf start="#elseif \+!\?" end="\(\W\|$\)" skip="([A-Za-z0-9_ |&!]\+)"
+syn match haxeCondElse "#else\s*$"
+syn match haxeCondEnd "#end"
+syn match haxeCondError "#else .*$"
+
+" unicode characters
+syn match haxeSpecial "\\u\d\{4\}"
+
+syn match haxeType ":[a-zA-Z_\.]\+"
+ \ contains=haxeDelimiter,haxeCoreType,haxeFlashTop,haxeFlashInner,haxeFlashFinal,haxeFlash9Final
+
+syn cluster haxeTop add=haxeString,haxeChr,haxeNumber,haxeNumber2
+syn cluster haxeTop add=haxeSpecial,haxeStringError,haxeDelimiter,haxeType
+
+syn keyword haxeTraceFun trace contained
+syn region haxeTrace start=+\(^\s*\)\@<=trace(+ end=+);+ contains=haxeTraceFun
+
+if exists("haxe_highlight_functions")
+ if haxe_highlight_functions == "indent"
+ syn match haxeFuncDef "^\(\t\| \{4\}\)[_$a-zA-Z][_$a-zA-Z0-9_. \[\]]*([^-+*/()]*)"
+ \ contains=haxeType,haxeStorageClass,@haxeClasses
+ syn region haxeFuncDef start=+^\(\t\| \{4\}\)[$_a-zA-Z][$_a-zA-Z0-9_. \[\]]*([^-+*/()]*,\s*+
+ \ end=+)+ contains=haxeType,haxeStorageClass,@haxeClasses
+ syn match haxeFuncDef "^ [$_a-zA-Z][$_a-zA-Z0-9_. \[\]]*([^-+*/()]*)"
+ \ contains=haxeType,haxeStorageClass,@haxeClasses
+ syn region haxeFuncDef start=+^ [$_a-zA-Z][$_a-zA-Z0-9_. \[\]]*([^-+*/()]*,\s*+
+ \ end=+)+
+ \ contains=haxeType,haxeStorageClass,@haxeClasses
+ else
+ " This line catches method declarations at any indentation>0, but it assumes
+ " two things:
+ " 1. class names are always capitalized (ie: Button)
+ " 2. method names are never capitalized (except constructors, of course)
+ syn region haxeFuncDef start=+\s\+\(\(void\|boolean\|char\|byte\|short\|int\|long\|float\|double\|\([A-Za-z_][A-Za-z0-9_$]*\.\)*[A-Z][A-Za-z0-9_$]*\)\(\[\]\)*\s\+[a-z][A-Za-z0-9_$]*\|[A-Z][A-Za-z0-9_$]*\)\s*(+
+ \ end=+)+
+ \ contains=haxeType,haxeStorageClass,haxeCm,haxeLineCm,@haxeClasses
+ endif
+ syn match haxeBraces "[{}]"
+ syn cluster haxeTop add=haxeFuncDef,haxeBraces
+endif
+
+if exists("haxe_mark_braces_in_parens_as_errors")
+ syn match haxeInParen contained "[{}]"
+ HaxeHiLink haxeInParen haxeError
+ syn cluster haxeTop add=haxeInParen
+endif
+
+" catch errors caused by wrong parenthesis
+syn region haxeParenT transparent matchgroup=haxeParen start="("
+ \ end=")" contains=@haxeTop,haxeParenT1
+syn region haxeParenT1 transparent matchgroup=haxeParen1 start="("
+ \ end=")" contains=@haxeTop,haxeParenT2 contained
+syn region haxeParenT2 transparent matchgroup=haxeParen2 start="("
+ \ end=")" contains=@haxeTop,haxeParenT contained
+syn match haxeParenError ")"
+HaxeHiLink haxeParenError haxeError
+
+
+if !exists("haxe_minlines")
+ let haxe_minlines = 5000
+endif
+exec "syn sync ccomment haxeCm minlines=" . haxe_minlines
+syn sync linebreaks=30
+
+" The default highlighting.
+if version >= 508 || !exists("did_haxe_syn_inits")
+ if version < 508
+ let did_haxe_syn_inits = 1
+ endif
+
+ HaxeHiLink haxeFunctionDef Identifier
+ HaxeHiLink haxeFuncDef Identifier
+ HaxeHiLink haxeFunctionRef Function
+ HaxeHiLink haxeBraces Function
+ HaxeHiLink haxeBranch Conditional
+ HaxeHiLink haxeUserLabelRef haxeUserLabel
+ HaxeHiLink haxeLabel Label
+ HaxeHiLink haxeUserLabel Label
+ HaxeHiLink haxeConditional Conditional
+ HaxeHiLink haxeRepeat Repeat
+ HaxeHiLink haxeExceptions Exception
+ HaxeHiLink haxeAssert Statement
+
+ HaxeHiLink haxeClassDef Underlined
+ HaxeHiLink haxeStructure Structure
+ HaxeHiLink haxeMethodDecl haxeStorageClass
+ HaxeHiLink haxeClassDecl Structure
+ HaxeHiLink haxeScopeDecl StorageClass
+ HaxeHiLink haxeScopeDecl2 Tag
+ HaxeHiLink haxeBoolean Boolean
+ HaxeHiLink haxeSpecial Special
+ HaxeHiLink haxeSpecError Error
+ HaxeHiLink haxeSpecChrError Error
+ HaxeHiLink haxeString String
+ HaxeHiLink haxeSingleString Character
+
+ HaxeHiLink haxeEreg Number
+ HaxeHiLink haxeEregEscape Debug
+ HaxeHiLink haxeChr Character
+ HaxeHiLink haxeSpecChr SpecialChar
+ HaxeHiLink haxeNumber Number
+ HaxeHiLink haxeNumber2 Float
+ HaxeHiLink haxeSpecNum Boolean
+ HaxeHiLink haxeError Error
+ HaxeHiLink haxeStringError Debug
+ HaxeHiLink haxeStatement Statement
+ HaxeHiLink haxeOperator Operator
+ HaxeHiLink haxeComparison Repeat
+ HaxeHiLink haxeTraceFun SpecialComment
+ HaxeHiLink haxeTrace Comment
+ HaxeHiLink haxeDelimiter Delimiter
+
+ HaxeHiLink haxeCm Comment
+ HaxeHiLink haxeDocCm Comment
+ HaxeHiLink haxeLineCm Comment
+ HaxeHiLink haxeConstant Constant
+ HaxeHiLink haxeTypedef Typedef
+ HaxeHiLink haxeTypedef1 Typedef
+ HaxeHiLink haxeTodo Todo
+ HaxeHiLink haxeLangClass Special
+ HaxeHiLink haxeFlashClass Keyword
+ HaxeHiLink haxeFunction Function
+ HaxeHiLink haxeCmTitle Special
+ HaxeHiLink haxeDocTags SpecialComment
+ HaxeHiLink haxeProposedTags SpecialComment
+ HaxeHiLink haxeCmStar Comment
+
+ HaxeHiLink haxeDocParam Function
+ HaxeHiLink haxeCoreType Keyword
+ HaxeHiLink haxeType Type
+ HaxeHiLink haxeExternal Include
+ HaxeHiLink haxeDefine Define
+ HaxeHiLink htmlComment Special
+ HaxeHiLink htmlCommentPart Special
+ HaxeHiLink haxeSpaceError Error
+ HaxeHiLink haxeCondIf PreCondit
+ HaxeHiLink haxeCondElseIf PreCondit
+ HaxeHiLink haxeCondElse PreProc
+ HaxeHiLink haxeCondEnd PreProc
+
+ HaxeHiLink haxeCondError Error
+
+ HaxeHiLink haxeFlashTop PreProc
+ HaxeHiLink haxeFlashInner Macro
+ HaxeHiLink haxeFlashFinal Define
+ HaxeHiLink haxeFlash9Final Define
+
+ HaxeHiLink haxeOptionalVars Identifier
+endif
+
+delcommand HaxeHiLink
+let b:current_syntax = "haxe"
+if main_syntax == 'haxe'
+ unlet main_syntax
+endif
+let b:spell_options="contained"
diff --git a/nvim/syntax/jank.vim b/nvim/syntax/jank.vim
new file mode 100644
index 0000000..b22db5c
--- /dev/null
+++ b/nvim/syntax/jank.vim
@@ -0,0 +1,225 @@
+" Vim indent file
+" Language: Clojure
+" Maintainer: Alex Vear <alex@vear.uk>
+" Former Maintainers: Sung Pae <self@sungpae.com>
+" Meikel Brandmeyer <mb@kotka.de>
+" Toralf Wittner <toralf.wittner@gmail.com>
+" Contributors: Joel Holdbrooks <cjholdbrooks@gmail.com> (Regexp support, bug fixes)
+" URL: https://github.com/clojure-vim/clojure.vim
+" License: Vim (see :h license)
+" Last Change: 2022-03-24
+
+if exists("b:current_syntax")
+ finish
+endif
+
+let s:cpo_sav = &cpo
+set cpo&vim
+
+if has("folding") && exists("g:clojure_fold") && g:clojure_fold > 0
+ setlocal foldmethod=syntax
+endif
+
+" -*- KEYWORDS -*-
+" Generated from https://github.com/clojure-vim/clojure.vim/blob/fd280e33e84c88e97860930557dba3ff80b1a82d/clj/src/vim_clojure_static/generate.clj
+" Clojure version 1.11.0
+let s:clojure_syntax_keywords = {
+ \ 'clojureBoolean': ["false","true"],
+ \ 'clojureCond': ["case","case*","clojure.core/case","clojure.core/cond","clojure.core/cond->","clojure.core/cond->>","clojure.core/condp","clojure.core/if-let","clojure.core/if-not","clojure.core/if-some","clojure.core/when","clojure.core/when-first","clojure.core/when-let","clojure.core/when-not","clojure.core/when-some","cond","cond->","cond->>","condp","if","if-let","if-not","if-some","when","when-first","when-let","when-not","when-some"],
+ \ 'clojureConstant': ["nil"],
+ \ 'clojureDefine': ["clojure.core/definline","clojure.core/definterface","clojure.core/defmacro","clojure.core/defmethod","clojure.core/defmulti","clojure.core/defn","clojure.core/defn-","clojure.core/defonce","clojure.core/defprotocol","clojure.core/defrecord","clojure.core/defstruct","clojure.core/deftype","def","definline","definterface","defmacro","defmethod","defmulti","defn","defn-","defonce","defprotocol","defrecord","defstruct","deftype","deftype*"],
+ \ 'clojureException': ["catch","finally","throw","try"],
+ \ 'clojureFunc': ["*","*'","+","+'","-","-'","->ArrayChunk","->Eduction","->Vec","->VecNode","->VecSeq","-cache-protocol-fn","-reset-methods","/","<","<=","=","==",">",">=","NaN?","PrintWriter-on","StackTraceElement->vec","Throwable->map","abs","accessor","aclone","add-classpath","add-tap","add-watch","agent","agent-error","agent-errors","aget","alength","alias","all-ns","alter","alter-meta!","alter-var-root","ancestors","any?","apply","array-map","aset","aset-boolean","aset-byte","aset-char","aset-double","aset-float","aset-int","aset-long","aset-short","assoc","assoc!","assoc-in","associative?","atom","await","await-for","await1","bases","bean","bigdec","bigint","biginteger","bit-and","bit-and-not","bit-clear","bit-flip","bit-not","bit-or","bit-set","bit-shift-left","bit-shift-right","bit-test","bit-xor","boolean","boolean-array","boolean?","booleans","bound-fn*","bound?","bounded-count","butlast","byte","byte-array","bytes","bytes?","cast","cat","char","char-array","char?","chars","chunk","chunk-append","chunk-buffer","chunk-cons","chunk-first","chunk-next","chunk-rest","chunked-seq?","class","class?","clear-agent-errors","clojure-version","clojure.core/*","clojure.core/*'","clojure.core/+","clojure.core/+'","clojure.core/-","clojure.core/-'","clojure.core/->ArrayChunk","clojure.core/->Eduction","clojure.core/->Vec","clojure.core/->VecNode","clojure.core/->VecSeq","clojure.core/-cache-protocol-fn","clojure.core/-reset-methods","clojure.core//","clojure.core/<","clojure.core/<=","clojure.core/=","clojure.core/==","clojure.core/>","clojure.core/>=","clojure.core/NaN?","clojure.core/PrintWriter-on","clojure.core/StackTraceElement->vec","clojure.core/Throwable->map","clojure.core/abs","clojure.core/accessor","clojure.core/aclone","clojure.core/add-classpath","clojure.core/add-tap","clojure.core/add-watch","clojure.core/agent","clojure.core/agent-error","clojure.core/agent-errors","clojure.core/aget","clojure.core/alength","clojure.core/alias","clojure.core/all-ns","clojure.core/alter","clojure.core/alter-meta!","clojure.core/alter-var-root","clojure.core/ancestors","clojure.core/any?","clojure.core/apply","clojure.core/array-map","clojure.core/aset","clojure.core/aset-boolean","clojure.core/aset-byte","clojure.core/aset-char","clojure.core/aset-double","clojure.core/aset-float","clojure.core/aset-int","clojure.core/aset-long","clojure.core/aset-short","clojure.core/assoc","clojure.core/assoc!","clojure.core/assoc-in","clojure.core/associative?","clojure.core/atom","clojure.core/await","clojure.core/await-for","clojure.core/await1","clojure.core/bases","clojure.core/bean","clojure.core/bigdec","clojure.core/bigint","clojure.core/biginteger","clojure.core/bit-and","clojure.core/bit-and-not","clojure.core/bit-clear","clojure.core/bit-flip","clojure.core/bit-not","clojure.core/bit-or","clojure.core/bit-set","clojure.core/bit-shift-left","clojure.core/bit-shift-right","clojure.core/bit-test","clojure.core/bit-xor","clojure.core/boolean","clojure.core/boolean-array","clojure.core/boolean?","clojure.core/booleans","clojure.core/bound-fn*","clojure.core/bound?","clojure.core/bounded-count","clojure.core/butlast","clojure.core/byte","clojure.core/byte-array","clojure.core/bytes","clojure.core/bytes?","clojure.core/cast","clojure.core/cat","clojure.core/char","clojure.core/char-array","clojure.core/char?","clojure.core/chars","clojure.core/chunk","clojure.core/chunk-append","clojure.core/chunk-buffer","clojure.core/chunk-cons","clojure.core/chunk-first","clojure.core/chunk-next","clojure.core/chunk-rest","clojure.core/chunked-seq?","clojure.core/class","clojure.core/class?","clojure.core/clear-agent-errors","clojure.core/clojure-version","clojure.core/coll?","clojure.core/commute","clojure.core/comp","clojure.core/comparator","clojure.core/compare","clojure.core/compare-and-set!","clojure.core/compile","clojure.core/complement","clojure.core/completing","clojure.core/concat","clojure.core/conj","clojure.core/conj!","clojure.core/cons","clojure.core/constantly","clojure.core/construct-proxy","clojure.core/contains?","clojure.core/count","clojure.core/counted?","clojure.core/create-ns","clojure.core/create-struct","clojure.core/cycle","clojure.core/dec","clojure.core/dec'","clojure.core/decimal?","clojure.core/dedupe","clojure.core/delay?","clojure.core/deliver","clojure.core/denominator","clojure.core/deref","clojure.core/derive","clojure.core/descendants","clojure.core/destructure","clojure.core/disj","clojure.core/disj!","clojure.core/dissoc","clojure.core/dissoc!","clojure.core/distinct","clojure.core/distinct?","clojure.core/doall","clojure.core/dorun","clojure.core/double","clojure.core/double-array","clojure.core/double?","clojure.core/doubles","clojure.core/drop","clojure.core/drop-last","clojure.core/drop-while","clojure.core/eduction","clojure.core/empty","clojure.core/empty?","clojure.core/ensure","clojure.core/ensure-reduced","clojure.core/enumeration-seq","clojure.core/error-handler","clojure.core/error-mode","clojure.core/eval","clojure.core/even?","clojure.core/every-pred","clojure.core/every?","clojure.core/ex-cause","clojure.core/ex-data","clojure.core/ex-info","clojure.core/ex-message","clojure.core/extend","clojure.core/extenders","clojure.core/extends?","clojure.core/false?","clojure.core/ffirst","clojure.core/file-seq","clojure.core/filter","clojure.core/filterv","clojure.core/find","clojure.core/find-keyword","clojure.core/find-ns","clojure.core/find-protocol-impl","clojure.core/find-protocol-method","clojure.core/find-var","clojure.core/first","clojure.core/flatten","clojure.core/float","clojure.core/float-array","clojure.core/float?","clojure.core/floats","clojure.core/flush","clojure.core/fn?","clojure.core/fnext","clojure.core/fnil","clojure.core/force","clojure.core/format","clojure.core/frequencies","clojure.core/future-call","clojure.core/future-cancel","clojure.core/future-cancelled?","clojure.core/future-done?","clojure.core/future?","clojure.core/gensym","clojure.core/get","clojure.core/get-in","clojure.core/get-method","clojure.core/get-proxy-class","clojure.core/get-thread-bindings","clojure.core/get-validator","clojure.core/group-by","clojure.core/halt-when","clojure.core/hash","clojure.core/hash-combine","clojure.core/hash-map","clojure.core/hash-ordered-coll","clojure.core/hash-set","clojure.core/hash-unordered-coll","clojure.core/ident?","clojure.core/identical?","clojure.core/identity","clojure.core/ifn?","clojure.core/in-ns","clojure.core/inc","clojure.core/inc'","clojure.core/indexed?","clojure.core/infinite?","clojure.core/init-proxy","clojure.core/inst-ms","clojure.core/inst-ms*","clojure.core/inst?","clojure.core/instance?","clojure.core/int","clojure.core/int-array","clojure.core/int?","clojure.core/integer?","clojure.core/interleave","clojure.core/intern","clojure.core/interpose","clojure.core/into","clojure.core/into-array","clojure.core/ints","clojure.core/isa?","clojure.core/iterate","clojure.core/iteration","clojure.core/iterator-seq","clojure.core/juxt","clojure.core/keep","clojure.core/keep-indexed","clojure.core/key","clojure.core/keys","clojure.core/keyword","clojure.core/keyword?","clojure.core/last","clojure.core/line-seq","clojure.core/list","clojure.core/list*","clojure.core/list?","clojure.core/load","clojure.core/load-file","clojure.core/load-reader","clojure.core/load-string","clojure.core/loaded-libs","clojure.core/long","clojure.core/long-array","clojure.core/longs","clojure.core/macroexpand","clojure.core/macroexpand-1","clojure.core/make-array","clojure.core/make-hierarchy","clojure.core/map","clojure.core/map-entry?","clojure.core/map-indexed","clojure.core/map?","clojure.core/mapcat","clojure.core/mapv","clojure.core/max","clojure.core/max-key","clojure.core/memoize","clojure.core/merge","clojure.core/merge-with","clojure.core/meta","clojure.core/method-sig","clojure.core/methods","clojure.core/min","clojure.core/min-key","clojure.core/mix-collection-hash","clojure.core/mod","clojure.core/munge","clojure.core/name","clojure.core/namespace","clojure.core/namespace-munge","clojure.core/nat-int?","clojure.core/neg-int?","clojure.core/neg?","clojure.core/newline","clojure.core/next","clojure.core/nfirst","clojure.core/nil?","clojure.core/nnext","clojure.core/not","clojure.core/not-any?","clojure.core/not-empty","clojure.core/not-every?","clojure.core/not=","clojure.core/ns-aliases","clojure.core/ns-imports","clojure.core/ns-interns","clojure.core/ns-map","clojure.core/ns-name","clojure.core/ns-publics","clojure.core/ns-refers","clojure.core/ns-resolve","clojure.core/ns-unalias","clojure.core/ns-unmap","clojure.core/nth","clojure.core/nthnext","clojure.core/nthrest","clojure.core/num","clojure.core/number?","clojure.core/numerator","clojure.core/object-array","clojure.core/odd?","clojure.core/parents","clojure.core/parse-boolean","clojure.core/parse-double","clojure.core/parse-long","clojure.core/parse-uuid","clojure.core/partial","clojure.core/partition","clojure.core/partition-all","clojure.core/partition-by","clojure.core/pcalls","clojure.core/peek","clojure.core/persistent!","clojure.core/pmap","clojure.core/pop","clojure.core/pop!","clojure.core/pop-thread-bindings","clojure.core/pos-int?","clojure.core/pos?","clojure.core/pr","clojure.core/pr-str","clojure.core/prefer-method","clojure.core/prefers","clojure.core/print","clojure.core/print-ctor","clojure.core/print-dup","clojure.core/print-method","clojure.core/print-simple","clojure.core/print-str","clojure.core/printf","clojure.core/println","clojure.core/println-str","clojure.core/prn","clojure.core/prn-str","clojure.core/promise","clojure.core/proxy-call-with-super","clojure.core/proxy-mappings","clojure.core/proxy-name","clojure.core/push-thread-bindings","clojure.core/qualified-ident?","clojure.core/qualified-keyword?","clojure.core/qualified-symbol?","clojure.core/quot","clojure.core/rand","clojure.core/rand-int","clojure.core/rand-nth","clojure.core/random-sample","clojure.core/random-uuid","clojure.core/range","clojure.core/ratio?","clojure.core/rational?","clojure.core/rationalize","clojure.core/re-find","clojure.core/re-groups","clojure.core/re-matcher","clojure.core/re-matches","clojure.core/re-pattern","clojure.core/re-seq","clojure.core/read","clojure.core/read+string","clojure.core/read-line","clojure.core/read-string","clojure.core/reader-conditional","clojure.core/reader-conditional?","clojure.core/realized?","clojure.core/record?","clojure.core/reduce","clojure.core/reduce-kv","clojure.core/reduced","clojure.core/reduced?","clojure.core/reductions","clojure.core/ref","clojure.core/ref-history-count","clojure.core/ref-max-history","clojure.core/ref-min-history","clojure.core/ref-set","clojure.core/refer","clojure.core/release-pending-sends","clojure.core/rem","clojure.core/remove","clojure.core/remove-all-methods","clojure.core/remove-method","clojure.core/remove-ns","clojure.core/remove-tap","clojure.core/remove-watch","clojure.core/repeat","clojure.core/repeatedly","clojure.core/replace","clojure.core/replicate","clojure.core/require","clojure.core/requiring-resolve","clojure.core/reset!","clojure.core/reset-meta!","clojure.core/reset-vals!","clojure.core/resolve","clojure.core/rest","clojure.core/restart-agent","clojure.core/resultset-seq","clojure.core/reverse","clojure.core/reversible?","clojure.core/rseq","clojure.core/rsubseq","clojure.core/run!","clojure.core/satisfies?","clojure.core/second","clojure.core/select-keys","clojure.core/send","clojure.core/send-off","clojure.core/send-via","clojure.core/seq","clojure.core/seq-to-map-for-destructuring","clojure.core/seq?","clojure.core/seqable?","clojure.core/seque","clojure.core/sequence","clojure.core/sequential?","clojure.core/set","clojure.core/set-agent-send-executor!","clojure.core/set-agent-send-off-executor!","clojure.core/set-error-handler!","clojure.core/set-error-mode!","clojure.core/set-validator!","clojure.core/set?","clojure.core/short","clojure.core/short-array","clojure.core/shorts","clojure.core/shuffle","clojure.core/shutdown-agents","clojure.core/simple-ident?","clojure.core/simple-keyword?","clojure.core/simple-symbol?","clojure.core/slurp","clojure.core/some","clojure.core/some-fn","clojure.core/some?","clojure.core/sort","clojure.core/sort-by","clojure.core/sorted-map","clojure.core/sorted-map-by","clojure.core/sorted-set","clojure.core/sorted-set-by","clojure.core/sorted?","clojure.core/special-symbol?","clojure.core/spit","clojure.core/split-at","clojure.core/split-with","clojure.core/str","clojure.core/string?","clojure.core/struct","clojure.core/struct-map","clojure.core/subs","clojure.core/subseq","clojure.core/subvec","clojure.core/supers","clojure.core/swap!","clojure.core/swap-vals!","clojure.core/symbol","clojure.core/symbol?","clojure.core/tagged-literal","clojure.core/tagged-literal?","clojure.core/take","clojure.core/take-last","clojure.core/take-nth","clojure.core/take-while","clojure.core/tap>","clojure.core/test","clojure.core/the-ns","clojure.core/thread-bound?","clojure.core/to-array","clojure.core/to-array-2d","clojure.core/trampoline","clojure.core/transduce","clojure.core/transient","clojure.core/tree-seq","clojure.core/true?","clojure.core/type","clojure.core/unchecked-add","clojure.core/unchecked-add-int","clojure.core/unchecked-byte","clojure.core/unchecked-char","clojure.core/unchecked-dec","clojure.core/unchecked-dec-int","clojure.core/unchecked-divide-int","clojure.core/unchecked-double","clojure.core/unchecked-float","clojure.core/unchecked-inc","clojure.core/unchecked-inc-int","clojure.core/unchecked-int","clojure.core/unchecked-long","clojure.core/unchecked-multiply","clojure.core/unchecked-multiply-int","clojure.core/unchecked-negate","clojure.core/unchecked-negate-int","clojure.core/unchecked-remainder-int","clojure.core/unchecked-short","clojure.core/unchecked-subtract","clojure.core/unchecked-subtract-int","clojure.core/underive","clojure.core/unreduced","clojure.core/unsigned-bit-shift-right","clojure.core/update","clojure.core/update-in","clojure.core/update-keys","clojure.core/update-proxy","clojure.core/update-vals","clojure.core/uri?","clojure.core/use","clojure.core/uuid?","clojure.core/val","clojure.core/vals","clojure.core/var-get","clojure.core/var-set","clojure.core/var?","clojure.core/vary-meta","clojure.core/vec","clojure.core/vector","clojure.core/vector-of","clojure.core/vector?","clojure.core/volatile!","clojure.core/volatile?","clojure.core/vreset!","clojure.core/with-bindings*","clojure.core/with-meta","clojure.core/with-redefs-fn","clojure.core/xml-seq","clojure.core/zero?","clojure.core/zipmap","coll?","commute","comp","comparator","compare","compare-and-set!","compile","complement","completing","concat","conj","conj!","cons","constantly","construct-proxy","contains?","count","counted?","create-ns","create-struct","cycle","dec","dec'","decimal?","dedupe","delay?","deliver","denominator","deref","derive","descendants","destructure","disj","disj!","dissoc","dissoc!","distinct","distinct?","doall","dorun","double","double-array","double?","doubles","drop","drop-last","drop-while","eduction","empty","empty?","ensure","ensure-reduced","enumeration-seq","error-handler","error-mode","eval","even?","every-pred","every?","ex-cause","ex-data","ex-info","ex-message","extend","extenders","extends?","false?","ffirst","file-seq","filter","filterv","find","find-keyword","find-ns","find-protocol-impl","find-protocol-method","find-var","first","flatten","float","float-array","float?","floats","flush","fn?","fnext","fnil","force","format","frequencies","future-call","future-cancel","future-cancelled?","future-done?","future?","gensym","get","get-in","get-method","get-proxy-class","get-thread-bindings","get-validator","group-by","halt-when","hash","hash-combine","hash-map","hash-ordered-coll","hash-set","hash-unordered-coll","ident?","identical?","identity","ifn?","in-ns","inc","inc'","indexed?","infinite?","init-proxy","inst-ms","inst-ms*","inst?","instance?","int","int-array","int?","integer?","interleave","intern","interpose","into","into-array","ints","isa?","iterate","iteration","iterator-seq","juxt","keep","keep-indexed","key","keys","keyword","keyword?","last","line-seq","list","list*","list?","load","load-file","load-reader","load-string","loaded-libs","long","long-array","longs","macroexpand","macroexpand-1","make-array","make-hierarchy","map","map-entry?","map-indexed","map?","mapcat","mapv","max","max-key","memoize","merge","merge-with","meta","method-sig","methods","min","min-key","mix-collection-hash","mod","munge","name","namespace","namespace-munge","nat-int?","neg-int?","neg?","newline","next","nfirst","nil?","nnext","not","not-any?","not-empty","not-every?","not=","ns-aliases","ns-imports","ns-interns","ns-map","ns-name","ns-publics","ns-refers","ns-resolve","ns-unalias","ns-unmap","nth","nthnext","nthrest","num","number?","numerator","object-array","odd?","parents","parse-boolean","parse-double","parse-long","parse-uuid","partial","partition","partition-all","partition-by","pcalls","peek","persistent!","pmap","pop","pop!","pop-thread-bindings","pos-int?","pos?","pr","pr-str","prefer-method","prefers","print","print-ctor","print-dup","print-method","print-simple","print-str","printf","println","println-str","prn","prn-str","promise","proxy-call-with-super","proxy-mappings","proxy-name","push-thread-bindings","qualified-ident?","qualified-keyword?","qualified-symbol?","quot","rand","rand-int","rand-nth","random-sample","random-uuid","range","ratio?","rational?","rationalize","re-find","re-groups","re-matcher","re-matches","re-pattern","re-seq","read","read+string","read-line","read-string","reader-conditional","reader-conditional?","realized?","record?","reduce","reduce-kv","reduced","reduced?","reductions","ref","ref-history-count","ref-max-history","ref-min-history","ref-set","refer","release-pending-sends","rem","remove","remove-all-methods","remove-method","remove-ns","remove-tap","remove-watch","repeat","repeatedly","replace","replicate","require","requiring-resolve","reset!","reset-meta!","reset-vals!","resolve","rest","restart-agent","resultset-seq","reverse","reversible?","rseq","rsubseq","run!","satisfies?","second","select-keys","send","send-off","send-via","seq","seq-to-map-for-destructuring","seq?","seqable?","seque","sequence","sequential?","set","set-agent-send-executor!","set-agent-send-off-executor!","set-error-handler!","set-error-mode!","set-validator!","set?","short","short-array","shorts","shuffle","shutdown-agents","simple-ident?","simple-keyword?","simple-symbol?","slurp","some","some-fn","some?","sort","sort-by","sorted-map","sorted-map-by","sorted-set","sorted-set-by","sorted?","special-symbol?","spit","split-at","split-with","str","string?","struct","struct-map","subs","subseq","subvec","supers","swap!","swap-vals!","symbol","symbol?","tagged-literal","tagged-literal?","take","take-last","take-nth","take-while","tap>","test","the-ns","thread-bound?","to-array","to-array-2d","trampoline","transduce","transient","tree-seq","true?","type","unchecked-add","unchecked-add-int","unchecked-byte","unchecked-char","unchecked-dec","unchecked-dec-int","unchecked-divide-int","unchecked-double","unchecked-float","unchecked-inc","unchecked-inc-int","unchecked-int","unchecked-long","unchecked-multiply","unchecked-multiply-int","unchecked-negate","unchecked-negate-int","unchecked-remainder-int","unchecked-short","unchecked-subtract","unchecked-subtract-int","underive","unreduced","unsigned-bit-shift-right","update","update-in","update-keys","update-proxy","update-vals","uri?","use","uuid?","val","vals","var-get","var-set","var?","vary-meta","vec","vector","vector-of","vector?","volatile!","volatile?","vreset!","with-bindings*","with-meta","with-redefs-fn","xml-seq","zero?","zipmap"],
+ \ 'clojureMacro': ["->","->>","..","amap","and","areduce","as->","assert","binding","bound-fn","clojure.core/->","clojure.core/->>","clojure.core/..","clojure.core/amap","clojure.core/and","clojure.core/areduce","clojure.core/as->","clojure.core/assert","clojure.core/binding","clojure.core/bound-fn","clojure.core/comment","clojure.core/declare","clojure.core/delay","clojure.core/dosync","clojure.core/doto","clojure.core/extend-protocol","clojure.core/extend-type","clojure.core/for","clojure.core/future","clojure.core/gen-class","clojure.core/gen-interface","clojure.core/import","clojure.core/io!","clojure.core/lazy-cat","clojure.core/lazy-seq","clojure.core/locking","clojure.core/memfn","clojure.core/ns","clojure.core/or","clojure.core/proxy","clojure.core/proxy-super","clojure.core/pvalues","clojure.core/refer-clojure","clojure.core/reify","clojure.core/some->","clojure.core/some->>","clojure.core/sync","clojure.core/time","clojure.core/vswap!","clojure.core/with-bindings","clojure.core/with-in-str","clojure.core/with-loading-context","clojure.core/with-local-vars","clojure.core/with-open","clojure.core/with-out-str","clojure.core/with-precision","clojure.core/with-redefs","comment","declare","delay","dosync","doto","extend-protocol","extend-type","for","future","gen-class","gen-interface","import","io!","lazy-cat","lazy-seq","locking","memfn","ns","or","proxy","proxy-super","pvalues","refer-clojure","reify","some->","some->>","sync","time","vswap!","with-bindings","with-in-str","with-loading-context","with-local-vars","with-open","with-out-str","with-precision","with-redefs"],
+ \ 'clojureRepeat': ["clojure.core/doseq","clojure.core/dotimes","clojure.core/loop","clojure.core/while","doseq","dotimes","loop","loop*","recur","while"],
+ \ 'clojureSpecial': ["&",".","clojure.core/fn","clojure.core/import*","clojure.core/let","clojure.core/letfn","do","fn","fn*","let","let*","letfn","letfn*","monitor-enter","monitor-exit","new","quote","reify*","set!","var"],
+ \ 'clojureVariable': ["*1","*2","*3","*agent*","*allow-unresolved-vars*","*assert*","*clojure-version*","*command-line-args*","*compile-files*","*compile-path*","*compiler-options*","*data-readers*","*default-data-reader-fn*","*e","*err*","*file*","*flush-on-newline*","*fn-loader*","*in*","*math-context*","*ns*","*out*","*print-dup*","*print-length*","*print-level*","*print-meta*","*print-namespace-maps*","*print-readably*","*read-eval*","*reader-resolver*","*source-path*","*suppress-read*","*unchecked-math*","*use-context-classloader*","*verbose-defrecords*","*warn-on-reflection*","EMPTY-NODE","Inst","char-escape-string","char-name-string","clojure.core/*1","clojure.core/*2","clojure.core/*3","clojure.core/*agent*","clojure.core/*allow-unresolved-vars*","clojure.core/*assert*","clojure.core/*clojure-version*","clojure.core/*command-line-args*","clojure.core/*compile-files*","clojure.core/*compile-path*","clojure.core/*compiler-options*","clojure.core/*data-readers*","clojure.core/*default-data-reader-fn*","clojure.core/*e","clojure.core/*err*","clojure.core/*file*","clojure.core/*flush-on-newline*","clojure.core/*fn-loader*","clojure.core/*in*","clojure.core/*math-context*","clojure.core/*ns*","clojure.core/*out*","clojure.core/*print-dup*","clojure.core/*print-length*","clojure.core/*print-level*","clojure.core/*print-meta*","clojure.core/*print-namespace-maps*","clojure.core/*print-readably*","clojure.core/*read-eval*","clojure.core/*reader-resolver*","clojure.core/*source-path*","clojure.core/*suppress-read*","clojure.core/*unchecked-math*","clojure.core/*use-context-classloader*","clojure.core/*verbose-defrecords*","clojure.core/*warn-on-reflection*","clojure.core/EMPTY-NODE","clojure.core/Inst","clojure.core/char-escape-string","clojure.core/char-name-string","clojure.core/default-data-readers","clojure.core/primitives-classnames","clojure.core/print-dup","clojure.core/print-method","clojure.core/unquote","clojure.core/unquote-splicing","default-data-readers","primitives-classnames","print-dup","print-method","unquote","unquote-splicing"]
+ \ }
+
+function! s:syntax_keyword(dict)
+ for key in keys(a:dict)
+ execute 'syntax keyword' key join(a:dict[key], ' ')
+ endfor
+endfunction
+
+if exists('b:clojure_syntax_without_core_keywords') && b:clojure_syntax_without_core_keywords
+ " Only match language specials and primitives
+ for s:key in ['clojureBoolean', 'clojureConstant', 'clojureException', 'clojureSpecial']
+ execute 'syntax keyword' s:key join(s:clojure_syntax_keywords[s:key], ' ')
+ endfor
+else
+ call s:syntax_keyword(s:clojure_syntax_keywords)
+endif
+
+if exists('g:clojure_syntax_keywords')
+ call s:syntax_keyword(g:clojure_syntax_keywords)
+endif
+
+if exists('b:clojure_syntax_keywords')
+ call s:syntax_keyword(b:clojure_syntax_keywords)
+endif
+
+unlet! s:key
+delfunction s:syntax_keyword
+
+" Keywords are symbols:
+" static Pattern symbolPat = Pattern.compile("[:]?([\\D&&[^/]].*/)?([\\D&&[^/]][^/]*)");
+" But they:
+" * Must not end in a : or /
+" * Must not have two adjacent colons except at the beginning
+" * Must not contain any reader metacharacters except for ' and #
+syntax match clojureKeyword "\v<:{1,2}([^ \n\r\t()\[\]{}";@^`~\\/]+/)*[^ \n\r\t()\[\]{}";@^`~\\/]+:@1<!>"
+
+syntax match clojureStringEscape "\v\\%([\\btnfr"]|u\x{4}|[0-3]\o{2}|\o{1,2})" contained
+
+syntax region clojureString matchgroup=clojureStringDelimiter start=/"/ skip=/\\\\\|\\"/ end=/"/ contains=clojureStringEscape,@Spell
+
+syntax match clojureCharacter "\v\\%(o%([0-3]\o{2}|\o{1,2})|u\x{4}|newline|tab|space|return|backspace|formfeed|.)"
+
+syntax match clojureSymbol "\v%([a-zA-Z!$&*_+=|<.>?-]|[^\x00-\x7F])+%(:?%([a-zA-Z0-9!#$%&*_+=|'<.>/?-]|[^\x00-\x7F]))*[#:]@1<!"
+
+" NB. Correct matching of radix literals was removed for better performance.
+syntax match clojureNumber "\v<[-+]?%(%([2-9]|[12]\d|3[0-6])[rR][[:alnum:]]+|%(0\o*|0x\x+|[1-9]\d*)N?|%(0|[1-9]\d*|%(0|[1-9]\d*)\.\d*)%(M|[eE][-+]?\d+)?|%(0|[1-9]\d*)/%(0|[1-9]\d*))>"
+
+syntax match clojureQuote "\v['`]"
+syntax match clojureUnquote "\v\~\@?"
+syntax match clojureMeta "\^"
+syntax match clojureDeref "@"
+syntax match clojureDispatch "\v#[\^'=<_]?"
+
+" Clojure permits no more than 20 anonymous params.
+syntax match clojureAnonArg "%\(20\|1\d\|[1-9]\|&\)\?"
+
+syntax match clojureRegexpEscape "\v\\%([\\tnrfae.()\[\]{}^$*?+]|c\u|0[0-3]?\o{1,2}|x%(\x{2}|\{\x{1,6}\})|u\x{4})" contained display
+syntax region clojureRegexpQuoted start=/\\Q/ms=e+1 skip=/\\\\\|\\"/ end=/\\E/me=s-1 end=/"/me=s-1 contained
+syntax region clojureRegexpQuote start=/\\Q/ skip=/\\\\\|\\"/ end=/\\E/ end=/"/me=s-1 contains=clojureRegexpQuoted keepend contained
+
+" -*- CHARACTER PROPERTY CLASSES -*-
+" Generated from https://github.com/clojure-vim/clojure.vim/blob/fd280e33e84c88e97860930557dba3ff80b1a82d/clj/src/vim_clojure_static/generate.clj
+" Java version 17.0.2
+syntax match clojureRegexpPosixCharClass "\v\\[pP]\{%(Cntrl|A%(l%(pha|num)|SCII)|Space|Graph|Upper|P%(rint|unct)|Blank|XDigit|Digit|Lower)\}" contained display
+syntax match clojureRegexpJavaCharClass "\v\\[pP]\{java%(Whitespace|JavaIdentifier%(Part|Start)|SpaceChar|Mirrored|TitleCase|I%(SOControl|de%(ographic|ntifierIgnorable))|D%(efined|igit)|U%(pperCase|nicodeIdentifier%(Part|Start))|L%(etter%(OrDigit)?|owerCase)|Alphabetic)\}" contained display
+syntax match clojureRegexpUnicodeCharClass "\v\\[pP]\{\cIs%(l%(owercase|etter)|hex%(digit|_digit)|w%(hite%(_space|space)|ord)|noncharacter%(_code_point|codepoint)|p%(rint|unctuation)|ideographic|graph|a%(l%(num|phabetic)|ssigned)|uppercase|join%(control|_control)|titlecase|blank|digit|control)\}" contained display
+syntax match clojureRegexpUnicodeCharClass "\v\\[pP][NSCMZPL]" contained display
+syntax match clojureRegexpUnicodeCharClass "\v\\[pP]\{%(N[dlo]?|P[dcifeos]?|C[ncfos]?|M[nce]?|Z[lsp]?|S[mcko]?|L[muCDlto]?)\}" contained display
+syntax match clojureRegexpUnicodeCharClass "\v\\[pP]\{%(Is|gc\=|general_category\=)?%(N[dlo]?|P[dcifeos]?|C[ncfos]?|M[nce]?|Z[lsp]?|S[mcko]?|L[muCDlto]?)\}" contained display
+syntax match clojureRegexpUnicodeCharClass "\v\\[pP]\{\c%(Is|sc\=|script\=)%(k%(its|h%(oj%(ki)?|m%(r|er)|itan_small_script|udawadi|ar%(oshthi)?)|a%(li|n%(a|nada)|takana%(_or_hiragana)?|yah_li|ithi)|nda|thi)|r%(ohg|un%(ic|r)|ejang|jng)|l%(epc%(ha)?|i%(mbu?|n%([ab]|ear_[ab])|su)|y%([dc]i%(an)?)|a%(t%(n|in)|na|oo?))|t%(elu%(gu)?|ha%(i|a%(na)?)|i%(finagh|rh%(uta)?|b%(t|etan))|fng|glg|a%(i_%(le|tham|viet)|g%(alog|b%(anwa)?)|vt|kri?|ng%(ut)?|l[ue]|m%(il|l)))|vaii?|y%(i%(ii)?|ezi%(di)?)|e%(thi%(opic)?|l%(ym%(aic)?|ba%(san)?)|gyp%(tian_hieroglyphs)?)|u%(gar%(itic)?|nknown)|h%(ung|ira%(gana)?|rkt|mn[gp]|a%(n%(i%(fi_rohingya)?|unoo|o|g%(ul)?)?|tr%(an)?)|luw|ebr%(ew)?)|g%(r%(e%(k|ek)|an%(tha)?)|lag%(olitic)?|eor%(gian)?|o%(n[mg]|th%(ic)?)|u%(j%(arati|r)|r%(u|mukhi)|njala_gondi))|m%(lym|a%(n%(d%(aic)?|i%(chaean)?)|saram_gondi|h%(ajani|j)|ka%(sar)?|rc%(hen)?|layalam)|o%(di|ng%(olian)?)|e%(r%(c|o%(itic_%(hieroglyphs|cursive))?)|etei_mayek|nd%(e_kikakui)?|d%(f|efaidrin))|roo?|y%(anmar|mr)|tei|iao|ult%(ani)?)|d%(upl%(oyan)?|srt|i%(ak|ves_akuru)|ogra?|e%(seret|va%(nagari)?))|z%(an%(abazar_square|b)|inh|yyy|zzz)|n%(yiakeng_puachue_hmong|bat|koo?|ew%(_tai_lue|a)|ushu|shu|a%(bataean|rb|nd%(inagari)?))|s%(h%(rd|a%(vian|rada|w))|o%(yo%(mbo)?|g%(d%(ian)?|o)|ra%(_sompeng)?)|i%(n%(d|h%(ala)?)|dd%(ham)?|gnwriting)|a%(ur%(ashtra)?|m%(r|aritan)|rb)|y%(r%(c|iac)|lo%(ti_nagri)?)|und%(anese)?|gnw)|w%(cho|a%(ncho|ra%(ng_citi)?))|c%(y%(priot|r%(l|illic))|h%(er%(okee)?|a%(m|kma)|rs|orasmian)|a%(km|ucasian_albanian|n%(adian_aboriginal|s)|ri%(an)?)|prt|uneiform|o%(pt%(ic)?|mmon))|i%(n%(scriptional_pa%(rthian|hlavi)|herited)|mperial_aramaic|tal)|p%(h%(l[ip]|oenician|ag%(s_pa)?|nx)|a%(lm%(yrene)?|u%(_cin_hau|c)|hawh_hmong)|rti|salter_pahlavi|lrd|erm)|x%(peo|sux)|b%(eng%(ali)?|ra%(i%(lle)?|h%(mi)?)|opo%(mofo)?|u%(gi%(nese)?|h%(d|id))|h%(ks|aiksuki)|a%(ss%(a_vah)?|t%(ak|k)|li%(nese)?|mum?))|java%(nese)?|o%(g%(am|ham)|s%(age|ge|ma%(nya)?)|l%(d_%(hungarian|north_arabian|so%(gdian|uth_arabian)|per%(mic|sian)|italic|turkic)|ck|_chiki)|r%(iya|kh|ya))|a%(r%(ab%(ic)?|m%([ni]|enian))|dl%(m|am)|natolian_hieroglyphs|hom|v%(st|estan)|ghb))\}" contained display
+syntax match clojureRegexpUnicodeCharClass "\v\\[pP]\{\c%(In|blk\=|block\=)%(zanabazar%([ _]square|square)|javanese|h%(a%(lfwidth%( and fullwidth forms|andfullwidthforms|_and_fullwidth_forms)|tran|n%(unoo|gul%(compatibilityjamo|syllables|jamo%(extended\-[ab])?|_%(syllables|jamo%(_extended_[ab])?|compatibility_jamo)| %(syllables|compatibility jamo|jamo%( extended\-[ab])?))|ifi%([_ ]rohingya|rohingya)))|i%(ragana|gh%( %(private use surrogates|surrogates)|_%(private_use_surrogates|surrogates)|surrogates|privateusesurrogates))|ebrew)|i%(pa%([ _]extensions|extensions)|n%(scriptional%(%([ _]pa%(rthian|hlavi))|pa%(rthian|hlavi))|dic%(siyaqnumbers|_siyaq_numbers| siyaq numbers))|deographic%(symbolsandpunctuation|_%(description_characters|symbols_and_punctuation)| %(description characters|symbols and punctuation)|descriptioncharacters)|mperial%(aramaic|[_ ]aramaic))|c%(o%(ntrol%(pictures|[ _]pictures)|ptic%(epactnumbers|_epact_numbers| epact numbers)?|m%(mon%(_indic_number_forms|indicnumberforms| indic number forms)|bining%(halfmarks|_%(diacritical_marks%(_%(supplement|for_symbols|extended))?|marks_for_symbols|half_marks)| %(half marks|diacritical marks%( %(supplement|for symbols|extended))?|marks for symbols)|diacriticalmarks%(supplement|forsymbols|extended)?|marksforsymbols))|unting%( rod numerals|_rod_numerals|rodnumerals))|a%(rian|ucasian%([ _]albanian|albanian))|jk%(unifiedideographs%(extension[dgacfbe])?|s%(ymbolsandpunctuation|trokes)|_%(s%(trokes|ymbols_and_punctuation)|radicals_supplement|unified_ideographs%(_extension_[dgacfbe])?|compatibility%(_%(forms|ideographs%(_supplement)?))?)|compatibility%(forms|ideographs%(supplement)?)?|radicalssupplement| %(compatibility%( %(ideographs%( supplement)?|forms))?|unified ideographs%( extension [dgacfbe])?|radicals supplement|s%(ymbols and punctuation|trokes)))|y%(rillic%(supplement%(ary)?| %(supplement%(ary)?|extended\-[acb])|extended\-[acb]|_%(extended_[acb]|supplement%(ary)?))?|priot%(syllabary|[ _]syllabary))|u%(rrency%([_ ]symbols|symbols)|neiform%(_numbers_and_punctuation|numbersandpunctuation| numbers and punctuation)?)|h%(e%(ss%([_ ]symbols|symbols)|rokee%(supplement|[ _]supplement)?)|a%(m|kma)|orasmian))|g%(othic|u%(njala%(gondi|[_ ]gondi)|jarati|rmukhi)|lagolitic%(supplement|[ _]supplement)?|e%(o%(rgian%(supplement|%([_ ]%(supplement|extended))|extended)?|metric%( shapes%( extended)?|shapes%(extended)?|_shapes%(_extended)?))|neral%([_ ]punctuation|punctuation))|r%(eek%( %(and coptic|extended)|andcoptic|_%(and_coptic|extended)|extended)?|antha))|s%(h%(orthand%( format controls|_format_controls|formatcontrols)|a%(vian|rada))|u%(ndanese%(supplement|[ _]supplement)?|p%(erscripts%(_and_subscripts|andsubscripts| and subscripts)|plementa%(ry%(_private_use_area_[ab]|privateusearea\-[ab]| private use area\-[ab])|l%( %(mathematical operators|symbols and pictographs|punctuation|arrows\-[acb])|symbolsandpictographs|mathematicaloperators|punctuation|arrows\-[acb]|_%(arrows_[acb]|symbols_and_pictographs|mathematical_operators|punctuation))))|tton%(signwriting|[_ ]signwriting))|i%(nhala%( archaic numbers|archaicnumbers|_archaic_numbers)?|ddham)|y%(loti%([_ ]nagri|nagri)|mbols%( %(for legacy computing|and pictographs extended\-a)|forlegacycomputing|andpictographsextended\-a|_%(and_pictographs_extended_a|for_legacy_computing))|riac%(supplement|[ _]supplement)?)|p%(acing%(_modifier_letters| modifier letters|modifierletters)|ecials)|a%(maritan|urashtra)|o%(yombo|gdian|ra%(sompeng|[ _]sompeng))|mall%(kanaextension| %(kana extension|form variants)|_%(kana_extension|form_variants)|formvariants))|y%(i%(syllables|%([_ ]%(syllables|radicals))|radicals|jing%(hexagramsymbols| hexagram symbols|_hexagram_symbols))|ezidi)|p%(h%(o%(enician|netic%( extensions%( supplement)?|extensions%(supplement)?|_extensions%(_supplement)?))|a%(istos%([ _]disc|disc)|gs[_\-]pa))|laying%(cards|[_ ]cards)|rivate%(usearea| use area|_use_area)|a%(hawh%(hmong|[_ ]hmong)|u%(_cin_hau|cinhau| cin hau)|lmyrene)|salter%(pahlavi|[ _]pahlavi))|e%(l%(basan|ymaic)|arly%(_dynastic_cuneiform|dynasticcuneiform| dynastic cuneiform)|moticons|gyptian%(hieroglyph%(formatcontrols|s)| hieroglyph%( format controls|s)|_hieroglyph%(_format_controls|s))|nclosed%( %(cjk letters and months|ideographic supplement|alphanumeric%( supplement|s))|cjklettersandmonths|_%(ideographic_supplement|alphanumeric%(_supplement|s)|cjk_letters_and_months)|alphanumerics%(upplement)?|ideographicsupplement)|thiopic%(supplement|_%(supplement|extended%(_a)?)| %(supplement|extended%(\-a)?)|extended%(\-a)?)?)|r%(u%(nic|mi%(numeralsymbols| numeral symbols|_numeral_symbols))|ejang)|d%(o%(gra|mino%([ _]tiles|tiles))|e%(seret|vanagari%([ _]extended|extended)?)|uployan|i%(ngbats|ves%([_ ]akuru|akuru)))|m%(e%(defaidrin|nde%([ _]kikakui|kikakui)|etei%(mayek%(extensions)?|_mayek%(_extensions)?| mayek%( extensions)?)|roitic%(hieroglyphs|%([_ ]%(hieroglyphs|cursive))|cursive))|o%(ngolian%(supplement|[ _]supplement)?|di%(fier%(_tone_letters| tone letters|toneletters))?)|ro|u%(ltani|sical%([_ ]symbols|symbols))|i%(ao|scellaneous%(technical|symbols%(and%(pictographs|arrows))?|mathematicalsymbols\-[ab]| %(technical|mathematical symbols\-[ab]|symbols%( and %(pictographs|arrows))?)|_%(technical|symbols%(_and_%(pictographs|arrows))?|mathematical_symbols_[ab])))|yanmar%( extended\-[ab]|extended\-[ab]|_extended_[ab])?|a%(h%(ajani|jong%([ _]tiles|tiles))|rchen|n%(daic|ichaean)|yan%([_ ]numerals|numerals)|saram%(gondi|[_ ]gondi)|layalam|thematical%(alphanumericsymbols| %(alphanumeric symbols|operators)|_%(alphanumeric_symbols|operators)|operators)|kasar))|o%(s%(age|manya)|ttoman%(siyaqnumbers|_siyaq_numbers| siyaq numbers)|r%(namental%([ _]dingbats|dingbats)|iya)|ptical%( character recognition|_character_recognition|characterrecognition)|gham|l%([ _]chiki|d%(hungarian| %(hungarian|so%(uth arabian|gdian)|per%(mic|sian)|north arabian|italic|turkic)|per%(mic|sian)|so%(utharabian|gdian)|italic|turkic|_%(hungarian|north_arabian|so%(gdian|uth_arabian)|per%(mic|sian)|italic|turkic)|northarabian)|chiki))|n%(ew%(_tai_lue|a|tailue| tai lue)|ko|yiakeng%( puachue hmong|puachuehmong|_puachue_hmong)|a%(bataean|ndinagari)|u%(shu|mber%(forms|[ _]forms)))|b%(u%(ginese|hid)|a%(s%(sa%([ _]vah|vah)|ic%([ _]latin|latin))|linese|mum%(supplement|[ _]supplement)?|tak)|ra%(hmi|ille%(patterns|[_ ]patterns))|o%(x%([ _]drawing|drawing)|pomofo%([ _]extended|extended)?)|lock%([ _]elements|elements)|haiksuki|yzantine%( musical symbols|musicalsymbols|_musical_symbols)|engali)|l%(i%(mbu|near%(a| %(a|b %(ideograms|syllabary))|b%(ideograms|syllabary)|_%(a|b_%(ideograms|syllabary)))|su%(supplement|[ _]supplement)?)|a%(tin%(extended%(\-[dacbe]|additional)|_%(extended_%([dcbe]|a%(dditional)?)|1_supplement)|\-1%(supplement| supplement)| extended%(\-[dacbe]| additional))|o)|e%(tterlike%([_ ]symbols|symbols)|pcha)|ow%([_ ]surrogates|surrogates)|y[cd]ian)|k%(h%(aroshthi|ojki|mer%([_ ]symbols|symbols)?|udawadi|itan%( small script|smallscript|_small_script))|a%(takana%(_phonetic_extensions|phoneticextensions| phonetic extensions)?|n%(gxi%([_ ]radicals|radicals)|a%(extended\-a|supplement| %(extended\-a|supplement)|_%(supplement|extended_a))|bun|nada)|ithi|yah%([ _]li|li)))|wa%(ncho|rang%(citi|[ _]citi))|t%(elugu|ransport%( and map symbols|_and_map_symbols|andmapsymbols)|i%(rhuta|betan|finagh)|a%(mil%(supplement|[ _]supplement)?|kri|ngut%(supplement|%([ _]%(supplement|components))|components)?|i%(xuanjingsymbols|_%(le|xuan_jing_symbols|tham|viet)|le| %(xuan jing symbols|le|tham|viet)|tham|viet)|g%(alog|s|banwa))|ha%(i|ana))|a%(l%(chemical%([_ ]symbols|symbols)|phabetic%( presentation forms|_presentation_forms|presentationforms))|n%(cient%(_%(greek_%(musical_notation|numbers)|symbols)|greek%(numbers|musicalnotation)| %(greek %(numbers|musical notation)|symbols)|symbols)|atolian%([ _]hieroglyphs|hieroglyphs))|dlam|r%(menian|abic%(extended\-a|mathematicalalphabeticsymbols|supplement|_%(presentation_forms_[ab]|supplement|extended_a|mathematical_alphabetic_symbols)| %(extended\-a|mathematical alphabetic symbols|supplement|presentation forms\-[ab])|presentationforms\-[ab])?|rows)|egean%(numbers|[ _]numbers)|vestan|hom)|u%(garitic|nified%(canadianaboriginalsyllabics%(extended)?|_canadian_aboriginal_syllabics%(_extended)?| canadian aboriginal syllabics%( extended)?))|v%(a%(i|riation%( selectors%( supplement)?|selectors%(supplement)?|_selectors%(_supplement)?))|e%(rtical%(forms|[ _]forms)|dic%([ _]extensions|extensions))))\}" contained display
+
+syntax match clojureRegexpPredefinedCharClass "\v%(\\[dDsSwW]|\.)" contained display
+syntax cluster clojureRegexpCharPropertyClasses contains=clojureRegexpPosixCharClass,clojureRegexpJavaCharClass,clojureRegexpUnicodeCharClass
+syntax cluster clojureRegexpCharClasses contains=clojureRegexpPredefinedCharClass,clojureRegexpCharClass,@clojureRegexpCharPropertyClasses
+syntax region clojureRegexpCharClass start="\[" skip=/\\\\\|\\]/ end="]" contained contains=clojureRegexpPredefinedCharClass,@clojureRegexpCharPropertyClasses
+syntax match clojureRegexpBoundary "\\[bBAGZz]" contained display
+syntax match clojureRegexpBoundary "[$^]" contained display
+syntax match clojureRegexpQuantifier "[?*+][?+]\=" contained display
+syntax match clojureRegexpQuantifier "\v\{\d+%(,|,\d+)?}\??" contained display
+syntax match clojureRegexpOr "|" contained display
+syntax match clojureRegexpBackRef "\v\\%([1-9]\d*|k\<[[:alpha:]]+\>)" contained display
+
+" Mode modifiers, mode-modified spans, lookaround, regular and atomic
+" grouping, and named-capturing.
+syntax match clojureRegexpMod "\v\(@<=\?:" contained display
+syntax match clojureRegexpMod "\v\(@<=\?[xdsmiuU]*-?[xdsmiuU]+:?" contained display
+syntax match clojureRegexpMod "\v\(@<=\?%(\<?[=!]|\>)" contained display
+syntax match clojureRegexpMod "\v\(@<=\?\<[[:alpha:]]+\>" contained display
+
+syntax region clojureRegexpGroup start="(" skip=/\\\\\|\\)/ end=")" matchgroup=clojureRegexpGroup contained contains=clojureRegexpMod,clojureRegexpQuantifier,clojureRegexpBoundary,clojureRegexpEscape,@clojureRegexpCharClasses
+syntax region clojureRegexp matchgroup=clojureRegexpDelimiter start=/\#"/ skip=/\\\\\|\\"/ end=/"/ contains=@clojureRegexpCharClasses,clojureRegexpEscape,clojureRegexpQuote,clojureRegexpBoundary,clojureRegexpQuantifier,clojureRegexpOr,clojureRegexpBackRef,clojureRegexpGroup keepend
+
+syntax keyword clojureCommentTodo contained FIXME XXX TODO BUG NOTE HACK FIXME: XXX: TODO: BUG: NOTE: HACK:
+
+syntax match clojureComment ";.*$" contains=clojureCommentTodo,@Spell
+syntax match clojureComment "#!.*$"
+syntax match clojureComment ","
+
+" Comment out discarded forms. <https://clojure.org/guides/weird_characters#_discard>
+if exists('g:clojure_discard_macro') && g:clojure_discard_macro
+ syntax region clojureDiscard matchgroup=clojureDiscard start=/#_[ ,\t\n`'~]*/ end=/[, \t\n()\[\]{}";]/me=e-1
+ syntax region clojureDiscard matchgroup=clojureDiscard start=/#_[ ,\t\n`'~]*"/ skip=/\\[\\"]/ end=/"/
+ syntax region clojureDiscard matchgroup=clojureDiscard start=/#_[ ,\t\n`'~]*(/ end=/)/ contains=clojureDiscardForm
+ syntax region clojureDiscard matchgroup=clojureDiscard start=/#_[ ,\t\n`'~]*\[/ end=/\]/ contains=clojureDiscardForm
+ syntax region clojureDiscard matchgroup=clojureDiscard start=/#_[ ,\t\n`'~]*{/ end=/}/ contains=clojureDiscardForm
+
+ syntax region clojureDiscardForm start="(" end=")" contained contains=clojureDiscardForm
+ syntax region clojureDiscardForm start="{" end="}" contained contains=clojureDiscardForm
+ syntax region clojureDiscardForm start="\[" end="\]" contained contains=clojureDiscardForm
+endif
+
+" -*- TOP CLUSTER -*-
+" Generated from https://github.com/clojure-vim/clojure.vim/blob/fd280e33e84c88e97860930557dba3ff80b1a82d/clj/src/vim_clojure_static/generate.clj
+syntax cluster clojureTop contains=@Spell,clojureAnonArg,clojureBoolean,clojureCharacter,clojureComment,clojureCond,clojureConstant,clojureDefine,clojureDeref,clojureDiscard,clojureDispatch,clojureError,clojureException,clojureFunc,clojureKeyword,clojureMacro,clojureMap,clojureMeta,clojureNumber,clojureQuote,clojureRegexp,clojureRepeat,clojureSexp,clojureSpecial,clojureString,clojureSymbol,clojureUnquote,clojureVariable,clojureVector,jankNativeRaw
+
+syntax region clojureSexp matchgroup=clojureParen start="(" end=")" contains=@clojureTop fold
+syntax region clojureVector matchgroup=clojureParen start="\[" end="]" contains=@clojureTop fold
+syntax region clojureMap matchgroup=clojureParen start="{" end="}" contains=@clojureTop fold
+
+" Highlight superfluous closing parens, brackets and braces.
+syntax match clojureError "]\|}\|)"
+
+syn include @CPP syntax/cpp.vim
+"syntax region jankNativeRawString start=+"+ end=+"+ contained contains=@CPP
+"syn match jankNativeRawString +"\zs[^"]*\ze"+ contains=@CPP
+syn match jankNativeRawString +"\zs\_.\{-}\ze"+ contains=@CPP
+"syn match jankNativeRawString +"\zs[^\"]\{-}\ze"+ contains=@CPP
+syntax region jankNativeRaw matchgroup=Special start=+(native/raw+ end=+)+ contains=jankNativeRawString
+
+syntax sync fromstart
+
+highlight default link clojureConstant Constant
+highlight default link clojureBoolean Boolean
+highlight default link clojureCharacter Character
+highlight default link clojureKeyword Keyword
+highlight default link clojureNumber Number
+highlight default link clojureString String
+highlight default link clojureStringDelimiter String
+highlight default link clojureStringEscape Character
+
+highlight default link clojureRegexp Constant
+highlight default link clojureRegexpDelimiter Constant
+highlight default link clojureRegexpEscape Character
+highlight default link clojureRegexpCharClass SpecialChar
+highlight default link clojureRegexpPosixCharClass clojureRegexpCharClass
+highlight default link clojureRegexpJavaCharClass clojureRegexpCharClass
+highlight default link clojureRegexpUnicodeCharClass clojureRegexpCharClass
+highlight default link clojureRegexpPredefinedCharClass clojureRegexpCharClass
+highlight default link clojureRegexpBoundary SpecialChar
+highlight default link clojureRegexpQuantifier SpecialChar
+highlight default link clojureRegexpMod SpecialChar
+highlight default link clojureRegexpOr SpecialChar
+highlight default link clojureRegexpBackRef SpecialChar
+highlight default link clojureRegexpGroup clojureRegexp
+highlight default link clojureRegexpQuoted clojureString
+highlight default link clojureRegexpQuote clojureRegexpBoundary
+
+highlight default link clojureVariable Identifier
+highlight default link clojureCond Conditional
+highlight default link clojureDefine Define
+highlight default link clojureException Exception
+highlight default link clojureFunc Function
+highlight default link clojureMacro Macro
+highlight default link clojureRepeat Repeat
+
+highlight default link clojureSpecial Special
+highlight default link clojureQuote SpecialChar
+highlight default link clojureUnquote SpecialChar
+highlight default link clojureMeta SpecialChar
+highlight default link clojureDeref SpecialChar
+highlight default link clojureAnonArg SpecialChar
+highlight default link clojureDispatch SpecialChar
+
+highlight default link clojureComment Comment
+highlight default link clojureCommentTodo Todo
+highlight default link clojureDiscard clojureComment
+highlight default link clojureDiscardForm clojureDiscard
+
+highlight default link clojureError Error
+
+highlight default link clojureParen Delimiter
+
+let b:current_syntax = "jank"
+
+let &cpo = s:cpo_sav
+unlet! s:cpo_sav
+
+" vim:sts=8:sw=8:ts=8:noet \ No newline at end of file
diff --git a/tmux/.DS_Store b/tmux/.DS_Store
new file mode 100644
index 0000000..585b8d1
--- /dev/null
+++ b/tmux/.DS_Store
Binary files differ
diff --git a/tmux/.tmux.conf b/tmux/.tmux.conf
new file mode 100644
index 0000000..94e91f1
--- /dev/null
+++ b/tmux/.tmux.conf
@@ -0,0 +1,49 @@
+set -g base-index 1
+set -g pane-base-index 1
+set-window-option -g pane-base-index 1
+set-option -g renumber-windows on
+set -g status-interval 1
+set -sg escape-time 0
+
+set -g mouse on
+set-window-option -g xterm-keys on
+
+bind-key Up select-pane -U
+bind-key Down select-pane -D
+bind-key Left select-pane -L
+bind-key Right select-pane -R
+
+bind -n 'M-Up' select-pane -U
+bind -n 'M-Down' select-pane -D
+bind -n 'M-Left' select-pane -L
+bind -n 'M-Right' select-pane -R
+
+set -g mouse on
+set -g renumber-windows on
+set -g set-titles off
+set -g status-position bottom
+set -g status on
+set -g default-terminal "xterm-256color"
+set -g terminal-overrides "xterm-256color:Tc"
+
+set -g @plugin 'tmux-plugins/tpm'
+set -g @plugin 'xamut/tmux-weather'
+set -g @plugin 'tmux-plugins/tmux-sensible'
+set -g @plugin 'tmux-plugins/tmux-yank'
+set -g @plugin 'robhurring/tmux-spotify'
+set -g @plugin 'tmux-plugins/tmux-battery'
+set -g @plugin 'tukaloff/tmux-kanso'
+set -g @plugin 'tmux-plugins/tmux-cpu'
+set -g @plugin 'jamesoff/tmux-loadavg'
+
+# set -g @kanso_flavor "pearl"
+set -g @kanso_window_status_style "basic"
+set -g @kanso_window_current_text " #W"
+set -g @kanso_window_text " #W"
+# set -g @kanso_window_current_number_color "#22262D"
+
+run '~/.tmux/plugins/tpm/tpm'
+
+set -g pane-border-status bottom
+set -g pane-border-style "fg=#090E13"
+set -g pane-active-border-style "fg=#090E13"
diff --git a/tmux/bore.tmux b/tmux/bore.tmux
new file mode 100644
index 0000000..ab6ff26
--- /dev/null
+++ b/tmux/bore.tmux
@@ -0,0 +1,52 @@
+#!/bin/sh
+
+set -g @left_separator "\ue0b0"
+set -g @left_alt_separator "\ue0b1"
+set -g @right_separator "\ue0b2"
+set -g @right_alt_separator "\ue0b3"
+
+set -g @base0 "#101010"
+set -g @base1 "#131313"
+set -g @base2 "#171717"
+set -g @base3 "#1b1b1b"
+set -g @base4 "#202020"
+set -g @base5 "#2b2b2b"
+set -g @base6 "#2d2d2d"
+set -g @base7 "#3a3a3a"
+set -g @base8 "#404040"
+
+set -g @gabriel0 "#0E0E0E"
+set -g @gabriel1 "#ac616a"
+set -g @gabriel2 "#98b386"
+set -g @gabriel3 "#bfa86b"
+set -g @gabriel4 "#7ba2c3"
+set -g @gabriel5 "#999dd4"
+set -g @gabriel6 "#8ac6c7"
+set -g @gabriel7 "#7F8080"
+set -g @gabrielwhite "#ffffff"
+set -g @gabriel8 "#2b2b2b"
+set -g @gabriel9 "#b3646e"
+set -g @gabriel10 "#a0bc8d"
+set -g @gabriel11 "#c9b16f"
+set -g @gabriel12 "#7fa7c9"
+set -g @gabriel13 "#a2a6d4"
+set -g @gabriel14 "#91cecf"
+set -g @gabriel15 "#91cecf"
+
+set -g pane-border-style fg="colour0"
+set -g pane-active-border-style fg="colour8"
+
+set -g status-justify centre
+set -g status-style bg="#0E0E0E",fg="colour0"
+
+set -g status-left-length 20
+set -g status-right-length 150
+set -g window-status-separator " "
+
+set -g window-status-format "#[fg=#{@gabriel7}]#W"
+set -g window-status-current-format "#[fg=#{@base0},bg=#{@gabrielwhite},bold] #W "
+
+set -g status-left "#[fg=#{@gabrielwhite},bold]  "
+#set -g status-right "#[fg=#{@gabriel7},nobold] %H:%M %y-%m-%d | #(uptime | cut -f 4-5 -d ' ' | cut -f 1 -d ',') uptime | 💻 #[fg=#{@gabriel7}]#h "
+#set -g status-right "#[fg=#{@gabriel7},nobold] 📅 %H:%M %y-%m-%d | 🎧 #{music_status} #{artist}: #{track} "
+set -g status-right "#[fg=#{@gabriel7},nobold] 📅 %H:%M %y-%m-%d "
diff --git a/tmux/theme.tmux b/tmux/theme.tmux
new file mode 100644
index 0000000..b100070
--- /dev/null
+++ b/tmux/theme.tmux
@@ -0,0 +1,34 @@
+# theme.tmux — static segments with powerline arrows
+
+set -g status "on"
+set -g status-justify "left"
+
+set -g status-style "none,bg=#eee8d5"
+set -g status-left-style "none"
+set -g status-right-style "none"
+set -g status-left-length "100"
+set -g status-right-length "100"
+
+set -g pane-border-style "fg=#eee8d5"
+set -g pane-active-border-style "fg=#eee8d5"
+set -g message-style "fg=#073642,bg=#eee8d5"
+set -g message-command-style "fg=#073642,bg=#eee8d5"
+
+setw -g window-status-separator ""
+setw -g window-status-style "none,fg=#586e75,bg=#eee8d5"
+setw -g window-status-activity-style "none"
+
+# Status left/right with arrows (unchanged conceptually)
+set -g status-left "#[fg=#eee8d5,bg=#073642] #S #[fg=#073642,bg=#eee8d5,nobold,nounderscore,noitalics]"
+set -g status-right "#[fg=#eee8d5,bg=#eee8d5,nobold,nounderscore,noitalics]#[fg=#073642,bg=#eee8d5] %Y-%m-%d  %H:%M #[fg=#073642,bg=#eee8d5,nobold,nounderscore,noitalics]#[fg=#eee8d5,bg=#073642] #h "
+
+# Powerline-style window segments, but identical width structure for normal and current
+# We add a left arrow from the status bg (#eee8d5) into the window segment bg (#eee8d5) — same bg, so it visually keeps spacing consistent
+# Then the content block, then a right arrow back to the status bg — both formats have the same arrows.
+
+# Normal window
+setw -g window-status-format "#[fg=#eee8d5,bg=#eee8d5,nobold,nounderscore,noitalics]#[fg=#586e75,bg=#eee8d5] #I  #W #[fg=#eee8d5,bg=#eee8d5,nobold,nounderscore,noitalics]"
+
+# Current window (only fg/bold changes; arrows and backgrounds are identical)
+setw -g window-status-current-format "#[fg=#eee8d5,bg=#eee8d5,nobold,nounderscore,noitalics]#[fg=#073642,bg=#eee8d5,bold] #I  #W #[fg=#eee8d5,bg=#eee8d5,nobold,nounderscore,noitalics]"
+