vim-monochrome

A custom monochromatic Vim colourscheme.
git clone https://git.jaderune.net/jbauer/vim-monochrome
Log | Files | Refs | README | LICENSE

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)