monochrome-light.vim (7104B)
1 " monochrome.vim 2 " 3 " Original Author: Xavier Noria <fxn@hashref.com> 4 " License: MIT 5 " Modified By: Jake Bauer <jbauer@paritybit.ca> 6 7 set background=light 8 9 hi clear 10 if exists('syntax_on') 11 syntax reset 12 endif 13 14 let g:colors_name = 'monochrome-light' 15 16 let s:black = ['#000000', 16] 17 let s:red = ['#870000', 88] 18 let s:green = ['#008700', 28] 19 let s:blue = ['#005FAF', 25] 20 let s:yellow = ['#AF8700', 136] 21 let s:white = ['#EEEEEE', 255] 22 let s:accent = ['#6C6C6C', 242] 23 let s:cursorline = ['#DADADA', 253] 24 let s:comment = ['#585858', 240] 25 let s:faded = ['#D0D0D0', 252] 26 let s:menu = ['#9E9E9E', 247] 27 let s:menusel = ['#BCBCBC', 250] 28 29 let s:default_fg = s:black 30 let s:default_bg = s:white 31 32 let s:italic = 'italic' 33 let s:bold = 'bold' 34 let s:underline = 'underline' 35 let s:none = 'NONE' 36 37 let s:default_lst = [] 38 let s:default_str = '' 39 40 let s:comment_attr = s:italic 41 42 function! s:hi(...) 43 let group = a:1 44 let fg = get(a:, 2, s:default_fg) 45 let bg = get(a:, 3, s:default_bg) 46 let attr = get(a:, 4, s:default_str) 47 48 let cmd = ['hi', group] 49 50 if fg != s:default_lst 51 call add(cmd, 'guifg='.fg[0]) 52 call add(cmd, 'ctermfg='.fg[1]) 53 endif 54 55 if bg != s:default_lst 56 call add(cmd, 'guibg='.bg[0]) 57 call add(cmd, 'ctermbg='.bg[1]) 58 endif 59 60 if attr != s:default_str 61 call add(cmd, 'gui='.attr) 62 call add(cmd, 'cterm='.attr) 63 endif 64 65 exec "hi clear " group 66 exec join(cmd, ' ') 67 endfunction 68 69 70 " --- Vim interface ------------------------------------------------------------ 71 call s:hi('Normal', s:black, s:white, s:none) 72 call s:hi('Cursor', s:white, s:black) 73 call s:hi('CursorLine', s:black, s:cursorline, s:none) 74 call s:hi('CursorLineNr', s:black, s:default_bg, s:bold) 75 call s:hi('ColorColumn', s:black, s:faded) 76 call s:hi('Search', s:black, s:faded) 77 call s:hi('Visual', s:black, s:faded) 78 call s:hi('ErrorMsg', s:red, s:default_bg) 79 80 " Status bar 81 call s:hi('StatusLine', s:black, s:faded) 82 call s:hi('StatusLineNC', s:black, s:faded) 83 84 " Tabs 85 call s:hi('TabLine', s:black, s:menusel) 86 call s:hi('TabLineSel', s:black, s:faded, s:bold) 87 call s:hi('TabLineFill', s:black, s:menu) 88 89 " Tildes at the bottom of a buffer, etc. 90 call s:hi('NonText', s:accent) 91 92 " Folding. 93 call s:hi('FoldColumn', s:faded) 94 call s:hi('Folded') 95 96 " Line numbers gutter. 97 call s:hi('LineNr', s:black, s:faded) 98 99 " Small arrow used for tabs. 100 call s:hi('SpecialKey', s:accent, s:default_bg, s:bold) 101 102 " File browsers. 103 call s:hi('Directory', s:black, s:default_bg, s:bold) 104 105 " Help. 106 call s:hi('helpSpecial') 107 call s:hi('helpHyperTextJump', s:accent, s:default_bg, s:underline) 108 call s:hi('helpNote') 109 110 " Popup menu. 111 call s:hi('Pmenu', s:black, s:menu) 112 call s:hi('PmenuSel', s:black, s:menusel, s:bold) 113 114 " Notes. 115 call s:hi('Todo', s:black, s:default_bg, s:bold) 116 117 " Signs. 118 call s:hi('SignColumn') 119 120 " --- Diff Mode ---------------------------------------------------------------- 121 call s:hi('DiffAdd', s:green, s:default_bg) 122 call s:hi('DiffDelete', s:red, s:default_bg) 123 call s:hi('DiffChange', s:black, s:default_bg) 124 call s:hi('DiffText', s:yellow, s:default_bg) 125 126 " --- Programming languages ---------------------------------------------------- 127 call s:hi('Statement', s:black, s:default_bg, s:bold) 128 call s:hi('PreProc', s:black, s:default_bg, s:bold) 129 call s:hi('String', s:accent) 130 call s:hi('Comment', s:comment, s:default_bg, s:comment_attr) 131 call s:hi('Constant', s:black, s:default_bg, s:bold) 132 call s:hi('Number', s:accent) 133 call s:hi('Type', s:black, s:default_bg, s:bold) 134 call s:hi('Function', s:black) 135 call s:hi('Identifier', s:default_fg, s:default_bg, s:none) 136 call s:hi('Special') 137 call s:hi('MatchParen', s:black, s:faded, s:underline) 138 call s:hi('Error', s:red, s:white, s:bold) 139 140 " --- VimL --------------------------------------------------------------------- 141 call s:hi('vimOption') 142 call s:hi('vimGroup') 143 call s:hi('vimHiClear') 144 call s:hi('vimHiGroup') 145 call s:hi('vimHiAttrib') 146 call s:hi('vimHiGui') 147 call s:hi('vimHiGuiFgBg') 148 call s:hi('vimHiCTerm') 149 call s:hi('vimHiCTermFgBg') 150 call s:hi('vimSynType') 151 hi link vimCommentTitle Comment 152 153 " --- Ruby --------------------------------------------------------------------- 154 call s:hi('rubyConstant') 155 call s:hi('rubySharpBang', s:comment) 156 call s:hi('rubyStringDelimiter', s:accent) 157 call s:hi('rubyStringEscape', s:accent) 158 call s:hi('rubyRegexpEscape', s:accent) 159 call s:hi('rubyRegexpAnchor', s:accent) 160 call s:hi('rubyRegexpSpecial', s:accent) 161 162 " --- Elixir ------------------------------------------------------------------- 163 call s:hi('elixirAlias', s:default_fg, s:default_bg, s:none) 164 call s:hi('elixirDelimiter', s:accent) 165 call s:hi('elixirSelf', s:default_fg, s:default_bg, s:none) 166 167 " For ||, ->, etc. 168 call s:hi('elixirOperator') 169 170 " Module attributes like @doc or @type. 171 hi link elixirVariable Statement 172 173 " While rendered as comments in other languages, docstrings are strings, 174 " experimental. 175 hi link elixirDocString String 176 hi link elixirDocTest String 177 hi link elixirStringDelimiter String 178 179 " --- Perl --------------------------------------------------------------------- 180 call s:hi('perlSharpBang', s:comment) 181 call s:hi('perlStringStartEnd', s:accent) 182 call s:hi('perlStringEscape', s:accent) 183 call s:hi('perlMatchStartEnd', s:accent) 184 185 " --- Python ------------------------------------------------------------------- 186 call s:hi('pythonEscape', s:accent) 187 188 " --- JavaScript --------------------------------------------------------------- 189 call s:hi('javaScriptFunction', s:black, s:default_bg, s:bold) 190 191 " --- Diffs -------------------------------------------------------------------- 192 call s:hi('diffFile', s:faded) 193 call s:hi('diffNewFile', s:faded) 194 call s:hi('diffIndexLine', s:comment) 195 call s:hi('diffLine', s:yellow) 196 call s:hi('diffSubname', s:faded) 197 call s:hi('diffAdded', s:green) 198 call s:hi('diffRemoved', s:red) 199 200 " --- Markdown ----------------------------------------------------------------- 201 call s:hi('Title', s:black, s:default_bg, s:bold) 202 call s:hi('markdownHeadingDelimiter', s:black, s:default_bg, s:bold) 203 call s:hi('markdownHeadingRule', s:black, s:default_bg, s:bold) 204 call s:hi('markdownLinkText', s:blue, s:default_bg, s:underline) 205 206 " --- HTML --------------------------------------------------------------------- 207 call s:hi('htmlLink', s:blue, s:default_bg, s:underline) 208 call s:hi('htmlArg', s:default_fg, s:default_bg) 209 210 " --- Gemini ------------------------------------------------------------------- 211 " Based on this plugin: https://tildegit.org/sloum/gemini-vim-syntax 212 call s:hi('gmiHeader', s:black, s:default_bg, s:bold) 213 call s:hi('gmiLinkStart', s:black, s:default_bg, s:bold) 214 call s:hi('gmiLinkURL', s:blue, s:default_bg, s:underline) 215 call s:hi('gmiLinkTitle', s:accent, s:default_bg, s:none) 216 call s:hi('gmiMono', s:accent, s:default_bg, s:bold) 217 call s:hi('gmiQuoteLine', s:accent, s:default_bg, s:bold) 218 219 " --- Spelling ----------------------------------------------------------------- 220 call s:hi('SpellBad', s:red, s:default_bg, s:bold, s:underline) 221 call s:hi('SpellCap', s:black, s:default_bg, s:bold) 222 call s:hi('SpellLocal', s:default_fg, s:default_bg, s:none) 223 call s:hi('SpellRare', s:default_fg, s:default_bg, s:none)