Files
nix-config/.config/nvim/colors/lumberjack.vim
2020-07-15 09:28:34 -04:00

135 lines
5.6 KiB
VimL

" \
" / ^ ^ ^ ^ ^ ^ ^
" \ /_\ /_\ /_\ /_\ /_\ /_\ /_\
" / | | | | | | |
" \
" / _ __ _ _ __
" \ | | _ _ _ _| | ___ __ |_| __ ___ | |/ /
" / | |_| || | \/ | _ | __| \ _ / _\/ _|| |
" \ |___|____|____|___|___|_|\_\ |____\____|_|\_\
" / | |
" \ | |
" / | | /|
" \ | | /||
" / |_|/ ||
" \ |___ ||
" / |_|\ ||
" \ \||
" / \|
"
" Copyright (c) 2015 Davy Duperron
"
" MIT License
"
" 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.
" Reset syntax highlighting
set background=dark
hi clear
if exists('syntax_on')
syntax reset
endif
" Go with 256 colors term if not in GUI
if !has('gui_running')
set t_Co=256
end
" Thou shalt always carry your axe around with you
let g:colors_name='lumberjack'
" Rendering
let s:none='NONE'
function! s:r(group, style)
execute 'hi' a:group
\'gui=' (has_key(a:style, 'gui') ? a:style.gui : s:none)
\'guifg=' (has_key(a:style, 'fg') ? a:style.fg.gui : s:none)
\'guibg=' (has_key(a:style, 'bg') ? a:style.bg.gui : s:none)
\'cterm=' (has_key(a:style, 'cterm') ? a:style.cterm : s:none)
\'ctermfg=' (has_key(a:style, 'fg') ? a:style.fg.cterm : s:none)
\'ctermbg=' (has_key(a:style, 'bg') ? a:style.bg.cterm : s:none)
endfunction
" Lumberjack colors
let s:grey1 = { 'gui': '#1a1a1a', 'cterm': '0' }
let s:grey2 = { 'gui': '#212121', 'cterm': '8' }
let s:grey3 = { 'gui': '#2e2e2e', 'cterm': '6' }
let s:grey4 = { 'gui': '#303030', 'cterm': '13' }
let s:grey5 = { 'gui': '#757475', 'cterm': '14' }
let s:grey6 = { 'gui': '#858585', 'cterm': '12' }
let s:red = { 'gui': '#bd2a2a', 'cterm': '1' }
let s:brown1 = { 'gui': '#b56124', 'cterm': '5' }
let s:brown2 = { 'gui': '#947463', 'cterm': '3' }
let s:brown3 = { 'gui': '#c76440', 'cterm': '9' }
let s:green1 = { 'gui': '#5d875d', 'cterm': '2' }
let s:green2 = { 'gui': '#9acd32', 'cterm': '10' }
let s:blue = { 'gui': '#9bcbeb', 'cterm': '4' }
let s:yellow = { 'gui': '#f0e95d', 'cterm': '11' }
let s:white1 = { 'gui': '#fffefc', 'cterm': '7' }
let s:white2 = { 'gui': '#ffffff', 'cterm': '15' }
" Generate the highlight groups
call s:r('Boolean', { 'fg': s:green2 })
call s:r('Character', { 'fg': s:blue })
call s:r('Comment', { 'fg': s:grey4 })
call s:r('Constant', { 'fg': s:yellow })
call s:r('Conditional', { 'fg': s:red })
call s:r('Cursor', { 'bg': s:blue, 'fg': s:grey1 })
call s:r('CursorLine', { 'bg': s:grey2 })
call s:r('CursorLineNR', { 'fg': s:yellow })
call s:r('ColorColumn', { 'bg': s:grey2, 'fg': s:white2 })
call s:r('Delimiter', { 'fg': s:blue })
call s:r('Directory', { 'fg': s:brown3 })
call s:r('Error', { 'fg': s:red })
call s:r('Exception', { 'fg': s:yellow })
call s:r('Folded', { 'bg': s:grey2, 'fg': s:yellow })
call s:r('Function', { 'fg': s:blue })
call s:r('Identifier', { 'fg': s:brown1 })
call s:r('IncSearch', { 'bg': s:blue, 'fg': s:grey1 })
call s:r('Keyword', { 'fg': s:red })
call s:r('Label', { 'fg': s:blue })
call s:r('LineNr', { 'fg': s:grey3 })
call s:r('MatchParen', { 'fg': s:red })
call s:r('Normal', { 'bg': s:grey1, 'fg': s:grey6 })
call s:r('NonText', { 'fg': s:grey4 })
call s:r('Number', { 'fg': s:green1 })
call s:r('Operator', { 'fg': s:green2 })
call s:r('PreProc', { 'fg': s:brown3 })
call s:r('Repeat', { 'fg': s:brown2 })
call s:r('Search', { 'bg': s:blue, 'fg': s:grey1 })
call s:r('SignColumn', { 'fg': s:yellow })
call s:r('Statement', { 'fg': s:red })
call s:r('Special', { 'fg': s:grey5 })
call s:r('SpecialComment', { 'fg': s:grey5 })
call s:r('SpecialChar', { 'fg': s:grey6 })
call s:r('SpecialKey', { 'fg': s:green2 })
call s:r('StatusLine', { 'bg': s:grey2, 'fg': s:grey6 })
call s:r('StatusLineNC', { 'bg': s:grey2, 'fg': s:grey6 })
call s:r('StorageClass', { 'fg': s:yellow })
call s:r('String', { 'fg': s:yellow })
call s:r('Tag', { 'fg': s:white1 })
call s:r('Title', { 'fg': s:green1 })
call s:r('Todo', { 'fg': s:white1 })
call s:r('Type', { 'fg': s:blue })
call s:r('Underlined', { 'bg': s:green1, 'fg': s:grey1 })
call s:r('VertSplit', { 'bg': s:grey2, 'fg': s:grey2 })
call s:r('Visual', { 'bg': s:grey2, 'fg': s:green1 })