commit 1554baec5dc062c777b94f0bf1cba625100a8677
parent 7219dd47d509a01e100922371b5900440fb52653
Author: Alex Balgavy <a.balgavy@gmail.com>
Date: Mon, 9 Mar 2020 12:06:44 +0100
vim colorscheme changes
Former-commit-id: b4234f918935152030a41f866dd4b8c89eec4e8d
Diffstat:
4 files changed, 201 insertions(+), 121 deletions(-)
diff --git a/vim/colors/jokull.schemer b/vim/colors/jokull.schemer
@@ -11,7 +11,8 @@ palette:
lightgreen #d7f1e0,
offwhite #e5e5e5,
justblue #0000FF,
- justyellow #FFFF00.
+ justyellow #FFFF00,
+ softred #ff949b.
" group fg_color, bg_color attribute
Normal text, bg
@@ -33,7 +34,7 @@ Preproc NONE
Vertsplit NONE
Todo justblue, justyellow
Nontext #81A1C1
-Statusline NONE, #7abecd
+StatusLine NONE, #7abecd
Statuslinenc NONE, lightblue
Visual NONE, #a8caff
Title #225555. bold
@@ -41,7 +42,7 @@ Matchparen lightgreen, lightblue
QfFileName #0076ff
Delimiter #5f5f00
Comment #5f5f5f. italic
-
+ErrorMsg text, softred. bold
" link group1,group2,... target group
link tabline tablinefill
@@ -55,12 +56,13 @@ link netrwdir func
link netrwexe title
link netrwMarkFile incsearch
link spellbad todo
-link spellocal,spellrare,spellcap,markdownUrl string
+link spellocal,spellrare,spellcap,markdownUrl,modemsg string
link markdowncode,mkdlink,vimwikilink type
link pmenu statuslinenc
link pmenusel statusline
+link error errormsg
Diffadd NONE, #a5ffa5
Diffdelete NONE, #ffa5a5
Diffchange text, #c0beff
-Difftext NONE, #a0aeff. bold
+Diftext NONE, #a0aeff. bold
diff --git a/vim/colors/jokull.vim b/vim/colors/jokull.vim
@@ -6,6 +6,7 @@ if version > 580
endif
endif
let g:colors_name = "jokull"
+" Highlight group definitions
hi Normal guifg=#2c2625 guibg=#e4e4e4 ctermfg=0 ctermbg=254 cterm=NONE gui=NONE
hi Cursorline guifg=NONE guibg=#d0d0d0 ctermfg=NONE ctermbg=252 cterm=NONE gui=NONE
hi String guifg=#009051 guibg=NONE ctermfg=29 ctermbg=NONE cterm=italic gui=italic
@@ -25,7 +26,7 @@ hi Preproc guifg=NONE guibg=NONE ctermfg=NONE ctermbg=NONE cterm=NONE gui=NONE
hi Vertsplit guifg=NONE guibg=NONE ctermfg=NONE ctermbg=NONE cterm=NONE gui=NONE
hi Todo guifg=#0000FF guibg=#FFFF00 ctermfg=21 ctermbg=11 cterm=NONE gui=NONE
hi Nontext guifg=#81A1C1 guibg=NONE ctermfg=109 ctermbg=NONE cterm=NONE gui=NONE
-hi Statusline guifg=NONE guibg=#7abecd ctermfg=NONE ctermbg=110 cterm=NONE gui=NONE
+hi StatusLine guifg=NONE guibg=#7abecd ctermfg=NONE ctermbg=110 cterm=NONE gui=NONE
hi Statuslinenc guifg=NONE guibg=#a8dbfd ctermfg=NONE ctermbg=153 cterm=NONE gui=NONE
hi Visual guifg=NONE guibg=#a8caff ctermfg=NONE ctermbg=153 cterm=NONE gui=NONE
hi Title guifg=#225555 guibg=NONE ctermfg=23 ctermbg=NONE cterm=bold gui=bold
@@ -33,10 +34,12 @@ hi Matchparen guifg=#d7f1e0 guibg=#a8dbfd ctermfg=194 ctermbg=153 cterm=NONE gui
hi QfFileName guifg=#0076ff guibg=NONE ctermfg=33 ctermbg=NONE cterm=NONE gui=NONE
hi Delimiter guifg=#5f5f00 guibg=NONE ctermfg=58 ctermbg=NONE cterm=NONE gui=NONE
hi Comment guifg=#5f5f5f guibg=NONE ctermfg=59 ctermbg=NONE cterm=italic gui=italic
+hi ErrorMsg guifg=#2c2625 guibg=#ff949b ctermfg=0 ctermbg=210 cterm=bold gui=bold
hi Diffadd guifg=NONE guibg=#a5ffa5 ctermfg=NONE ctermbg=157 cterm=NONE gui=NONE
hi Diffdelete guifg=NONE guibg=#ffa5a5 ctermfg=NONE ctermbg=217 cterm=NONE gui=NONE
hi Diffchange guifg=#2c2625 guibg=#c0beff ctermfg=0 ctermbg=147 cterm=NONE gui=NONE
-hi Difftext guifg=NONE guibg=#a0aeff ctermfg=NONE ctermbg=147 cterm=bold gui=bold
+hi Diftext guifg=NONE guibg=#a0aeff ctermfg=NONE ctermbg=147 cterm=bold gui=bold
+" Link definitions
hi! link precondit include
hi! link tag delimiter
hi! link spellocal string
@@ -51,6 +54,7 @@ hi! link spellcap string
hi! link spellrare string
hi! link netrwMarkFile incsearch
hi! link markdownUrl string
+hi! link error errormsg
hi! link spellbad todo
hi! link number delimiter
hi! link define include
@@ -60,6 +64,7 @@ hi! link specialcomment delimiter
hi! link pmenu statuslinenc
hi! link macro include
hi! link pmenusel statusline
+hi! link modemsg string
hi! link character constant
hi! link repeat statement
hi! link cursorlinenr delimiter
@@ -69,3 +74,33 @@ hi! link label structure
hi! link operator statement
hi! link vimwikilink type
hi! link specialchar delimiter
+" Code to clear any groups that are not defined
+let s:DefinedColors=['precondit', 'tag', 'spellocal', 'conditional', 'markdowncode', 'netrwdir', 'netrwexe', 'tabline', 'mkdlink', 'signcolumn', 'spellcap', 'spellrare', 'netrwmarkfile', 'markdownurl', 'error', 'spellbad', 'number', 'define', 'typedef', 'storageclass', 'specialcomment', 'pmenu', 'macro', 'pmenusel', 'modemsg', 'character', 'repeat', 'cursorlinenr', 'debug', 'special', 'label', 'operator', 'vimwikilink', 'specialchar', 'normal', 'cursorline', 'string', 'identifier', 'function', 'statement', 'include', 'type', 'search', 'incsearch', 'folded', 'tablinefill', 'tablinesel', 'wildmenu', 'linenr', 'preproc', 'vertsplit', 'todo', 'nontext', 'statusline', 'statuslinenc', 'visual', 'title', 'matchparen', 'qffilename', 'delimiter', 'comment', 'errormsg', 'diffadd', 'diffdelete', 'diffchange', 'diftext']
+function! s:ClearUndefinedColors(colors)
+ let undefined_groups = filter(a:colors->keys()->map('tolower(v:val)'), 'index(s:DefinedColors, tolower(v:val)) < 0')
+ call map(undefined_groups, "execute('highlight' . ' ' . v:val . ' ' . 'NONE')")
+endfunction
+function! s:GetHighlights()
+ let highlights = execute('highlight')
+ let highlights = substitute(highlights, '\n\s\+', ' ', 'g')
+ let highlights = split(highlights, '\n')
+ call map(highlights, "split(v:val, '\\s\\+xxx\\s\\+')")
+ call map(highlights, "[copy(v:val)[0], split(copy(v:val)[1])]")
+ return highlights
+endfunction
+function! s:GetColors()
+ let colors = {}
+ for [group, values] in <SID>GetHighlights()
+ let attributes = {}
+ if values[0] ==# 'links'
+ let attributes['links'] = values[-1]
+ elseif values[0] !=# 'cleared'
+ call map(values, "split(v:val, '=')")
+ call map(values, "len(v:val) == 2 ? {v:val[0]: v:val[1]} : {v:val[0] : v:val[0]}")
+ call map(values, "extend(attributes, v:val)")
+ endif
+ let colors[group] = attributes
+ endfor
+ return colors
+endfunction
+call <SID>ClearUndefinedColors(<SID>GetColors())
diff --git a/vim/colors/junipero.schemer b/vim/colors/junipero.schemer
@@ -1,3 +1,6 @@
+" This scheme will have a dark background
+background dark
+
" Set the palette
palette:
text #969696,
@@ -6,75 +9,78 @@ palette:
lightblue #2de3e6,
whitepink #bebebe,
whiteyellow #f0e0b2,
- offwhite #f0e2e2.
-
-" This scheme will have a dark background
-background dark
+ offwhite #f0e2e2,
+ darkblue #101124.
-" Group fg_color, bg_color attribute(s)
-Normal text, bg
-Cursorline NONE, #222222
-Structure #0490e8, NONE. bold
-Constant #5c78f0, NONE. NONE
-String lightblue, NONE. italic
-Float #4580b4, NONE. NONE
-Boolean #fca8ad, NONE. NONE
-Identifier #5094c4, NONE. NONE
-Function #f9c60e, bg. bold
-Number #339aff, NONE. NONE
-Conditional #d0688d, bg. NONE
-Operator #e8cdc0, bg. NONE
-Exception #d0a8ad, bg. bold
-Statement #ff6c11, NONE. NONE
-Repeat #e06070, bg. NONE
-Keyword whitepink, bg. bold
-PreProc #ae15eb, NONE. NONE
-Include #ba75cf, NONE. NONE
-Type #ff3863, NONE. bold
-Delimiter #aaaaca, NONE. NONE
-Comment #349d58, bg. italic
-NonText #382920, bg. NONE
-Ignore #666666, NONE. NONE
-SpecialKey #90dcb0, NONE. NONE
-Underlined #bac5ba, NONE. NONE
-Error NONE, #b03452. NONE
-Todo #ffd500, #5c0d43. NONE
-MatchParen #001122, #7b5a55. NONE
-Cursor #0000aa, #cad5c0. NONE
-Visual #102030, #80a0f0. NONE
-VisualNOS #201a30, #a3a5FF. NONE
-LineNr #2069a9, #101124. NONE
-Search lightblue, #6b5469. NONE
-IncSearch #babeaa, #3a4520. NONE
-WildMenu #000000, #804000. NONE
-VertSplit #223355, #22253c. NONE
-TabLineSel #6079c9, #363649. NONE
-Title #fff7fa, NONE. NONE
-PmenuSel whiteyellow, #4a85ba. NONE
-PmenuThumb NONE, #000000. NONE
-PmenuSbar NONE, #0000ff. NONE
-Pmenu #bdbdbd, #915623. NONE
-Folded whitepink, #171235. NONE
-FoldColumn #dbcaa5, #0a0a18. NONE
-Directory #bbd0df, NONE. NONE
-DiffDelete #300845, #200845. NONE
-DiffText #f5f5f5, #423f00. NONE
-DiffAdd #e0e3e3, #003802. NONE
-DiffChange #fcfcfc, #2e032e. NONE
-ModeMsg #00AACC, NONE. NONE
-Question #AABBCC, #130445. NONE
-MoreMsg #2e8b57, NONE. NONE
-ErrorMsg offwhite, #ff4545. NONE
-WarningMsg #fa8072, NONE. NONE
-StatusLine #4079a9, #101130. bold
+" Group fg_color, bg_color attribute(s)
+Boolean #fca8ad, NONE. NONE
+Comment #349d58, bg. italic
+Conditional #d0688d, bg. NONE
+Constant #5c78f0, NONE. NONE
+Cursor #0000aa, #cad5c0. NONE
+CursorLinenr #ffb500, darkblue. bold
+Cursorline NONE, #222222. NONE
+Delimiter #aaaaca, NONE. NONE
+DiffAdd #e0e3e3, #003802. NONE
+DiffChange #fcfcfc, #2e032e. NONE
+DiffDelete #300845, #200845. NONE
+DiffText #f5f5f5, #423f00. NONE
+Directory #bbd0df, NONE. NONE
+Error NONE, #b03452. NONE
+ErrorMsg offwhite, #ff4545. NONE
+Exception #d0a8ad, bg. bold
+Float #4580b4, NONE. NONE
+FoldColumn #dbcaa5, #0a0a18. NONE
+Folded whitepink, #171235. NONE
+Function #f9c60e, bg. bold
+Identifier #5094c4, NONE. NONE
+Ignore #666666, NONE. NONE
+IncSearch #babeaa, #3a4520. NONE
+Include #ba75cf, NONE. NONE
+Keyword whitepink, bg. bold
+LineNr #2069a9, darkblue. NONE
+MatchParen #001122, #7b5a55. NONE
+ModeMsg #00AACC, NONE. NONE
+MoreMsg #2e8b57, NONE. NONE
+NonText #382920, bg. NONE
+Normal text, bg
+Number #339aff, NONE. NONE
+Operator #e8cdc0, bg. NONE
+Pmenu #bdbdbd, #915623. NONE
+PmenuSbar NONE, #0000ff. NONE
+PmenuSel whiteyellow, #4a85ba. NONE
+PmenuThumb NONE, #000000. NONE
+PreProc #ae15eb, NONE. NONE
+Question #AABBCC, #130445. NONE
+Repeat #e06070, bg. NONE
+Search lightblue, #6b5469. NONE
+SpecialKey #90dcb0, NONE. NONE
+Statement #ff6c11, NONE. NONE
+StatusLine #4079a9, #101130. bold
+String lightblue, NONE. italic
+Structure #0490e8, NONE. bold
+TabLineSel #6079c9, #363649. NONE
+Title #fff7fa, NONE. NONE
+Todo #ffd500, #5c0d43. NONE
+Type #ff3863, NONE. bold
+Underlined #bac5ba, NONE. NONE
+VertSplit #223355, #22253c. NONE
+Visual #102030, #80a0f0. NONE
+VisualNOS #201a30, #a3a5FF. NONE
+WarningMsg #fa8072, NONE. NONE
+WildMenu #000000, #804000. NONE
+GitGutterAdd #007822, darkblue. NONE
+GitGutterChange #8e830e, darkblue. NONE
+GitGutterDelete #6e032e, darkblue. NONE
+GitGutterChangeDelete #80537e, darkblue. NONE
-link Label,StorageClass,Typedef Structure
-link ConId,Character,VimwikiLink Constant
-link Define,Macro,PreCondit Include
-link Debug,Special,SpecialChar,SpecialComment,Tag Delimiter
-link StatusLineNC,TabLine,TabLineFill,SignColumn,netrwDir LineNr
-link NetrwExe Title
-link SpellBad Todo
-link SpelLocal,SpellRare,SpellCap String
-link MkdLink Type
-link adaBegin,adaEnd Function
+link Label,StorageClass,Typedef Structure
+link ConId,Character,VimwikiLink Constant
+link Define,Macro,PreCondit Include
+link Debug,Special,SpecialChar,SpecialComment,Tag Delimiter
+link StatusLineNC,TabLine,TabLineFill,SignColumn,netrwDir LineNr
+link NetrwExe Title
+link SpellBad Todo
+link SpelLocal,SpellRare,SpellCap String
+link MkdLink Type
+link adaBegin,adaEnd Function
diff --git a/vim/colors/junipero.vim b/vim/colors/junipero.vim
@@ -6,61 +6,68 @@ if version > 580
endif
endif
let g:colors_name = "junipero"
-hi Normal guifg=#969696 guibg=#11121A ctermfg=246 ctermbg=0 cterm=NONE gui=NONE
-hi Cursorline guifg=NONE guibg=#222222 ctermfg=NONE ctermbg=234 cterm=NONE gui=NONE
-hi Structure guifg=#0490e8 guibg=NONE ctermfg=32 ctermbg=NONE cterm=bold gui=bold
+" Highlight group definitions
+hi Boolean guifg=#fca8ad guibg=NONE ctermfg=217 ctermbg=NONE cterm=NONE gui=NONE
+hi Comment guifg=#349d58 guibg=#11121A ctermfg=71 ctermbg=0 cterm=italic gui=italic
+hi Conditional guifg=#d0688d guibg=#11121A ctermfg=168 ctermbg=0 cterm=NONE gui=NONE
hi Constant guifg=#5c78f0 guibg=NONE ctermfg=69 ctermbg=NONE cterm=NONE gui=NONE
-hi String guifg=#2de3e6 guibg=NONE ctermfg=6 ctermbg=NONE cterm=italic gui=italic
+hi Cursor guifg=#0000aa guibg=#cad5c0 ctermfg=19 ctermbg=187 cterm=NONE gui=NONE
+hi CursorLinenr guifg=#ffb500 guibg=#101124 ctermfg=214 ctermbg=0 cterm=bold gui=bold
+hi Cursorline guifg=NONE guibg=#222222 ctermfg=NONE ctermbg=234 cterm=NONE gui=NONE
+hi Delimiter guifg=#aaaaca guibg=NONE ctermfg=146 ctermbg=NONE cterm=NONE gui=NONE
+hi DiffAdd guifg=#e0e3e3 guibg=#003802 ctermfg=188 ctermbg=22 cterm=NONE gui=NONE
+hi DiffChange guifg=#fcfcfc guibg=#2e032e ctermfg=15 ctermbg=0 cterm=NONE gui=NONE
+hi DiffDelete guifg=#300845 guibg=#200845 ctermfg=53 ctermbg=17 cterm=NONE gui=NONE
+hi DiffText guifg=#f5f5f5 guibg=#423f00 ctermfg=15 ctermbg=58 cterm=NONE gui=NONE
+hi Directory guifg=#bbd0df guibg=NONE ctermfg=152 ctermbg=NONE cterm=NONE gui=NONE
+hi Error guifg=NONE guibg=#b03452 ctermfg=NONE ctermbg=131 cterm=NONE gui=NONE
+hi ErrorMsg guifg=#f0e2e2 guibg=#ff4545 ctermfg=224 ctermbg=203 cterm=NONE gui=NONE
+hi Exception guifg=#d0a8ad guibg=#11121A ctermfg=181 ctermbg=0 cterm=bold gui=bold
hi Float guifg=#4580b4 guibg=NONE ctermfg=67 ctermbg=NONE cterm=NONE gui=NONE
-hi Boolean guifg=#fca8ad guibg=NONE ctermfg=217 ctermbg=NONE cterm=NONE gui=NONE
-hi Identifier guifg=#5094c4 guibg=NONE ctermfg=68 ctermbg=NONE cterm=NONE gui=NONE
+hi FoldColumn guifg=#dbcaa5 guibg=#0a0a18 ctermfg=187 ctermbg=0 cterm=NONE gui=NONE
+hi Folded guifg=#bebebe guibg=#171235 ctermfg=250 ctermbg=17 cterm=NONE gui=NONE
hi Function guifg=#f9c60e guibg=#11121A ctermfg=220 ctermbg=0 cterm=bold gui=bold
+hi Identifier guifg=#5094c4 guibg=NONE ctermfg=68 ctermbg=NONE cterm=NONE gui=NONE
+hi Ignore guifg=#666666 guibg=NONE ctermfg=241 ctermbg=NONE cterm=NONE gui=NONE
+hi IncSearch guifg=#babeaa guibg=#3a4520 ctermfg=145 ctermbg=58 cterm=NONE gui=NONE
+hi Include guifg=#ba75cf guibg=NONE ctermfg=140 ctermbg=NONE cterm=NONE gui=NONE
+hi Keyword guifg=#bebebe guibg=#11121A ctermfg=250 ctermbg=0 cterm=bold gui=bold
+hi LineNr guifg=#2069a9 guibg=#101124 ctermfg=25 ctermbg=0 cterm=NONE gui=NONE
+hi MatchParen guifg=#001122 guibg=#7b5a55 ctermfg=0 ctermbg=95 cterm=NONE gui=NONE
+hi ModeMsg guifg=#00AACC guibg=NONE ctermfg=38 ctermbg=NONE cterm=NONE gui=NONE
+hi MoreMsg guifg=#2e8b57 guibg=NONE ctermfg=29 ctermbg=NONE cterm=NONE gui=NONE
+hi NonText guifg=#382920 guibg=#11121A ctermfg=1 ctermbg=0 cterm=NONE gui=NONE
+hi Normal guifg=#969696 guibg=#11121A ctermfg=246 ctermbg=0 cterm=NONE gui=NONE
hi Number guifg=#339aff guibg=NONE ctermfg=12 ctermbg=NONE cterm=NONE gui=NONE
-hi Conditional guifg=#d0688d guibg=#11121A ctermfg=168 ctermbg=0 cterm=NONE gui=NONE
hi Operator guifg=#e8cdc0 guibg=#11121A ctermfg=187 ctermbg=0 cterm=NONE gui=NONE
-hi Exception guifg=#d0a8ad guibg=#11121A ctermfg=181 ctermbg=0 cterm=bold gui=bold
-hi Statement guifg=#ff6c11 guibg=NONE ctermfg=202 ctermbg=NONE cterm=NONE gui=NONE
-hi Repeat guifg=#e06070 guibg=#11121A ctermfg=167 ctermbg=0 cterm=NONE gui=NONE
-hi Keyword guifg=#bebebe guibg=#11121A ctermfg=250 ctermbg=0 cterm=bold gui=bold
+hi Pmenu guifg=#bdbdbd guibg=#915623 ctermfg=250 ctermbg=94 cterm=NONE gui=NONE
+hi PmenuSbar guifg=NONE guibg=#0000ff ctermfg=NONE ctermbg=21 cterm=NONE gui=NONE
+hi PmenuSel guifg=#f0e0b2 guibg=#4a85ba ctermfg=223 ctermbg=67 cterm=NONE gui=NONE
+hi PmenuThumb guifg=NONE guibg=#000000 ctermfg=NONE ctermbg=0 cterm=NONE gui=NONE
hi PreProc guifg=#ae15eb guibg=NONE ctermfg=5 ctermbg=NONE cterm=NONE gui=NONE
-hi Include guifg=#ba75cf guibg=NONE ctermfg=140 ctermbg=NONE cterm=NONE gui=NONE
-hi Type guifg=#ff3863 guibg=NONE ctermfg=203 ctermbg=NONE cterm=bold gui=bold
-hi Delimiter guifg=#aaaaca guibg=NONE ctermfg=146 ctermbg=NONE cterm=NONE gui=NONE
-hi Comment guifg=#349d58 guibg=#11121A ctermfg=71 ctermbg=0 cterm=italic gui=italic
-hi NonText guifg=#382920 guibg=#11121A ctermfg=1 ctermbg=0 cterm=NONE gui=NONE
-hi Ignore guifg=#666666 guibg=NONE ctermfg=241 ctermbg=NONE cterm=NONE gui=NONE
+hi Question guifg=#AABBCC guibg=#130445 ctermfg=146 ctermbg=17 cterm=NONE gui=NONE
+hi Repeat guifg=#e06070 guibg=#11121A ctermfg=167 ctermbg=0 cterm=NONE gui=NONE
+hi Search guifg=#2de3e6 guibg=#6b5469 ctermfg=6 ctermbg=59 cterm=NONE gui=NONE
hi SpecialKey guifg=#90dcb0 guibg=NONE ctermfg=115 ctermbg=NONE cterm=NONE gui=NONE
-hi Underlined guifg=#bac5ba guibg=NONE ctermfg=151 ctermbg=NONE cterm=NONE gui=NONE
-hi Error guifg=NONE guibg=#b03452 ctermfg=NONE ctermbg=131 cterm=NONE gui=NONE
+hi Statement guifg=#ff6c11 guibg=NONE ctermfg=202 ctermbg=NONE cterm=NONE gui=NONE
+hi StatusLine guifg=#4079a9 guibg=#101130 ctermfg=67 ctermbg=17 cterm=bold gui=bold
+hi String guifg=#2de3e6 guibg=NONE ctermfg=6 ctermbg=NONE cterm=italic gui=italic
+hi Structure guifg=#0490e8 guibg=NONE ctermfg=32 ctermbg=NONE cterm=bold gui=bold
+hi TabLineSel guifg=#6079c9 guibg=#363649 ctermfg=68 ctermbg=59 cterm=NONE gui=NONE
+hi Title guifg=#fff7fa guibg=NONE ctermfg=15 ctermbg=NONE cterm=NONE gui=NONE
hi Todo guifg=#ffd500 guibg=#5c0d43 ctermfg=220 ctermbg=53 cterm=NONE gui=NONE
-hi MatchParen guifg=#001122 guibg=#7b5a55 ctermfg=0 ctermbg=95 cterm=NONE gui=NONE
-hi Cursor guifg=#0000aa guibg=#cad5c0 ctermfg=19 ctermbg=187 cterm=NONE gui=NONE
+hi Type guifg=#ff3863 guibg=NONE ctermfg=203 ctermbg=NONE cterm=bold gui=bold
+hi Underlined guifg=#bac5ba guibg=NONE ctermfg=151 ctermbg=NONE cterm=NONE gui=NONE
+hi VertSplit guifg=#223355 guibg=#22253c ctermfg=23 ctermbg=17 cterm=NONE gui=NONE
hi Visual guifg=#102030 guibg=#80a0f0 ctermfg=17 ctermbg=111 cterm=NONE gui=NONE
hi VisualNOS guifg=#201a30 guibg=#a3a5FF ctermfg=17 ctermbg=147 cterm=NONE gui=NONE
-hi LineNr guifg=#2069a9 guibg=#101124 ctermfg=25 ctermbg=0 cterm=NONE gui=NONE
-hi Search guifg=#2de3e6 guibg=#6b5469 ctermfg=6 ctermbg=59 cterm=NONE gui=NONE
-hi IncSearch guifg=#babeaa guibg=#3a4520 ctermfg=145 ctermbg=58 cterm=NONE gui=NONE
-hi WildMenu guifg=#000000 guibg=#804000 ctermfg=0 ctermbg=94 cterm=NONE gui=NONE
-hi VertSplit guifg=#223355 guibg=#22253c ctermfg=23 ctermbg=17 cterm=NONE gui=NONE
-hi TabLineSel guifg=#6079c9 guibg=#363649 ctermfg=68 ctermbg=59 cterm=NONE gui=NONE
-hi Title guifg=#fff7fa guibg=NONE ctermfg=15 ctermbg=NONE cterm=NONE gui=NONE
-hi PmenuSel guifg=#f0e0b2 guibg=#4a85ba ctermfg=223 ctermbg=67 cterm=NONE gui=NONE
-hi PmenuThumb guifg=NONE guibg=#000000 ctermfg=NONE ctermbg=0 cterm=NONE gui=NONE
-hi PmenuSbar guifg=NONE guibg=#0000ff ctermfg=NONE ctermbg=21 cterm=NONE gui=NONE
-hi Pmenu guifg=#bdbdbd guibg=#915623 ctermfg=250 ctermbg=94 cterm=NONE gui=NONE
-hi Folded guifg=#bebebe guibg=#171235 ctermfg=250 ctermbg=17 cterm=NONE gui=NONE
-hi FoldColumn guifg=#dbcaa5 guibg=#0a0a18 ctermfg=187 ctermbg=0 cterm=NONE gui=NONE
-hi Directory guifg=#bbd0df guibg=NONE ctermfg=152 ctermbg=NONE cterm=NONE gui=NONE
-hi DiffDelete guifg=#300845 guibg=#200845 ctermfg=53 ctermbg=17 cterm=NONE gui=NONE
-hi DiffText guifg=#f5f5f5 guibg=#423f00 ctermfg=15 ctermbg=58 cterm=NONE gui=NONE
-hi DiffAdd guifg=#e0e3e3 guibg=#003802 ctermfg=188 ctermbg=22 cterm=NONE gui=NONE
-hi DiffChange guifg=#fcfcfc guibg=#2e032e ctermfg=15 ctermbg=0 cterm=NONE gui=NONE
-hi ModeMsg guifg=#00AACC guibg=NONE ctermfg=38 ctermbg=NONE cterm=NONE gui=NONE
-hi Question guifg=#AABBCC guibg=#130445 ctermfg=146 ctermbg=17 cterm=NONE gui=NONE
-hi MoreMsg guifg=#2e8b57 guibg=NONE ctermfg=29 ctermbg=NONE cterm=NONE gui=NONE
-hi ErrorMsg guifg=#f0e2e2 guibg=#ff4545 ctermfg=224 ctermbg=203 cterm=NONE gui=NONE
hi WarningMsg guifg=#fa8072 guibg=NONE ctermfg=209 ctermbg=NONE cterm=NONE gui=NONE
-hi StatusLine guifg=#4079a9 guibg=#101130 ctermfg=67 ctermbg=17 cterm=bold gui=bold
+hi WildMenu guifg=#000000 guibg=#804000 ctermfg=0 ctermbg=94 cterm=NONE gui=NONE
+hi GitGutterAdd guifg=#007822 guibg=#101124 ctermfg=28 ctermbg=0 cterm=NONE gui=NONE
+hi GitGutterChange guifg=#8e830e guibg=#101124 ctermfg=100 ctermbg=0 cterm=NONE gui=NONE
+hi GitGutterDelete guifg=#6e032e guibg=#101124 ctermfg=52 ctermbg=0 cterm=NONE gui=NONE
+hi GitGutterChangeDelete guifg=#80537e guibg=#101124 ctermfg=96 ctermbg=0 cterm=NONE gui=NONE
+" Link definitions
hi! link PreCondit Include
hi! link Tag Delimiter
hi! link Define Include
@@ -88,3 +95,33 @@ hi! link ConId Constant
hi! link SpellBad Todo
hi! link netrwDir LineNr
hi! link SpecialChar Delimiter
+" Code to clear any groups that are not defined
+let s:DefinedColors=['precondit', 'tag', 'define', 'mkdlink', 'typedef', 'spellocal', 'vimwikilink', 'signcolumn', 'macro', 'tabline', 'character', 'debug', 'spellcap', 'special', 'tablinefill', 'spellrare', 'label', 'statuslinenc', 'adabegin', 'storageclass', 'specialcomment', 'netrwexe', 'adaend', 'conid', 'spellbad', 'netrwdir', 'specialchar', 'boolean', 'comment', 'conditional', 'constant', 'cursor', 'cursorlinenr', 'cursorline', 'delimiter', 'diffadd', 'diffchange', 'diffdelete', 'difftext', 'directory', 'error', 'errormsg', 'exception', 'float', 'foldcolumn', 'folded', 'function', 'identifier', 'ignore', 'incsearch', 'include', 'keyword', 'linenr', 'matchparen', 'modemsg', 'moremsg', 'nontext', 'normal', 'number', 'operator', 'pmenu', 'pmenusbar', 'pmenusel', 'pmenuthumb', 'preproc', 'question', 'repeat', 'search', 'specialkey', 'statement', 'statusline', 'string', 'structure', 'tablinesel', 'title', 'todo', 'type', 'underlined', 'vertsplit', 'visual', 'visualnos', 'warningmsg', 'wildmenu', 'gitgutteradd', 'gitgutterchange', 'gitgutterdelete', 'gitgutterchangedelete']
+function! s:ClearUndefinedColors(colors)
+ let undefined_groups = filter(a:colors->keys()->map('tolower(v:val)'), 'index(s:DefinedColors, tolower(v:val)) < 0')
+ call map(undefined_groups, "execute('highlight' . ' ' . v:val . ' ' . 'NONE')")
+endfunction
+function! s:GetHighlights()
+ let highlights = execute('highlight')
+ let highlights = substitute(highlights, '\n\s\+', ' ', 'g')
+ let highlights = split(highlights, '\n')
+ call map(highlights, "split(v:val, '\\s\\+xxx\\s\\+')")
+ call map(highlights, "[copy(v:val)[0], split(copy(v:val)[1])]")
+ return highlights
+endfunction
+function! s:GetColors()
+ let colors = {}
+ for [group, values] in <SID>GetHighlights()
+ let attributes = {}
+ if values[0] ==# 'links'
+ let attributes['links'] = values[-1]
+ elseif values[0] !=# 'cleared'
+ call map(values, "split(v:val, '=')")
+ call map(values, "len(v:val) == 2 ? {v:val[0]: v:val[1]} : {v:val[0] : v:val[0]}")
+ call map(values, "extend(attributes, v:val)")
+ endif
+ let colors[group] = attributes
+ endfor
+ return colors
+endfunction
+call <SID>ClearUndefinedColors(<SID>GetColors())