vim-monochrome

My fork of github.com/fxn/vim-monochrome
git clone https://git.sr.ht/~jbauer/vim-monochrome
Log | Files | Refs | README | LICENSE

commit 795ea1ea4c6121710c42d5be066ceb8d80849080
parent 289ae279c58e413d80d869b42104368f4efbb56b
Author: Jake Bauer <jbauer@paritybit.ca>
Date:   Fri, 26 Aug 2022 18:44:50 -0400

Add light version

Diffstat:
Acolors/monochrome-light.vim | 212+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 212 insertions(+), 0 deletions(-)

diff --git a/colors/monochrome-light.vim b/colors/monochrome-light.vim @@ -0,0 +1,212 @@ +" monochrome.vim +" +" Original Author: Xavier Noria <fxn@hashref.com> +" License: MIT +" Modified By: Jake Bauer <jbauer@paritybit.ca> + +set background=light + +hi clear +if exists('syntax_on') + syntax reset +endif + +let g:colors_name = 'monochrome-light' + +let s:black = ['#1C1C1C', 234] +let s:red = ['#B21818', 1] +let s:green = ['#18B218', 2] +let s:yellow = ['#B26818', 3] +let s:cyan = ['#18B2B2', 6] +let s:white = ['#EEEEEE', 255] +let s:accent = ['#6C6C6C', 242] +let s:cursorline = ['#E4E4E4', 254] +let s:comment = ['#585858', 240] +let s:faded = ['#BCBCBC', 250] + +let s:default_fg = s:black +let s:default_bg = s:white + +let s:italic = 'italic' +let s:bold = 'bold' +let s:underline = 'underline' +let s:none = 'NONE' + +let s:default_lst = [] +let s:default_str = '' + +let s:comment_attr = s:italic + +function! s:hi(...) + let group = a:1 + let fg = get(a:, 2, s:default_fg) + let bg = get(a:, 3, s:default_bg) + let attr = get(a:, 4, s:default_str) + + let cmd = ['hi', group] + + if fg != s:default_lst + call add(cmd, 'guifg='.fg[0]) + call add(cmd, 'ctermfg='.fg[1]) + endif + + if bg != s:default_lst && bg != s:default_bg + call add(cmd, 'guibg='.bg[0]) + call add(cmd, 'ctermbg='.bg[1]) + endif + + if attr != s:default_str + call add(cmd, 'gui='.attr) + call add(cmd, 'cterm='.attr) + endif + + exec "hi clear " group + exec join(cmd, ' ') +endfunction + + +" --- Vim interface ------------------------------------------------------------ +call s:hi('Normal') +call s:hi('Cursor', s:white, s:black) +call s:hi('CursorLine', s:black, s:cursorline, s:none) +call s:hi('CursorLineNr', s:black, s:default_bg, s:bold) +call s:hi('ColorColumn', s:accent, s:faded) +call s:hi('Search', s:black, s:faded) +call s:hi('Visual', s:white, s:accent) +call s:hi('ErrorMsg', s:black, s:red) + +" Tildes at the bottom of a buffer, etc. +call s:hi('NonText', s:faded) + +" Folding. +call s:hi('FoldColumn', s:faded) +call s:hi('Folded') + +" Line numbers gutter. +call s:hi('LineNr', s:black) + +" Small arrow used for tabs. +call s:hi('SpecialKey', s:accent, s:default_bg, s:bold) + +" File browsers. +call s:hi('Directory', s:black, s:default_bg, s:bold) + +" Help. +call s:hi('helpSpecial') +call s:hi('helpHyperTextJump', s:accent, s:default_bg, s:underline) +call s:hi('helpNote') + +" Popup menu. +call s:hi('Pmenu', s:black, s:accent) +call s:hi('PmenuSel', s:accent, s:black) + +" Notes. +call s:hi('Todo', s:black, s:default_bg, s:bold) + +" Signs. +call s:hi('SignColumn') + +" --- Programming languages ---------------------------------------------------- +call s:hi('Statement', s:black, s:default_bg, s:bold) +call s:hi('PreProc', s:black, s:default_bg, s:bold) +call s:hi('String', s:accent) +call s:hi('Comment', s:comment, s:default_bg, s:comment_attr) +call s:hi('Constant', s:black, s:default_bg, s:bold) +call s:hi('Number', s:accent) +call s:hi('Type', s:black, s:default_bg, s:bold) +call s:hi('Function', s:black) +call s:hi('Identifier', s:default_fg, s:default_bg, s:none) +call s:hi('Special') +call s:hi('MatchParen', s:black, s:faded, s:underline) +call s:hi('Error', s:red, s:white, s:bold) + +" --- VimL --------------------------------------------------------------------- +call s:hi('vimOption') +call s:hi('vimGroup') +call s:hi('vimHiClear') +call s:hi('vimHiGroup') +call s:hi('vimHiAttrib') +call s:hi('vimHiGui') +call s:hi('vimHiGuiFgBg') +call s:hi('vimHiCTerm') +call s:hi('vimHiCTermFgBg') +call s:hi('vimSynType') +hi link vimCommentTitle Comment + +" --- Ruby --------------------------------------------------------------------- +call s:hi('rubyConstant') +call s:hi('rubySharpBang', s:comment) +call s:hi('rubyStringDelimiter', s:accent) +call s:hi('rubyStringEscape', s:accent) +call s:hi('rubyRegexpEscape', s:accent) +call s:hi('rubyRegexpAnchor', s:accent) +call s:hi('rubyRegexpSpecial', s:accent) + +" --- Elixir ------------------------------------------------------------------- +call s:hi('elixirAlias', s:default_fg, s:default_bg, s:none) +call s:hi('elixirDelimiter', s:accent) +call s:hi('elixirSelf', s:default_fg, s:default_bg, s:none) + +" For ||, ->, etc. +call s:hi('elixirOperator') + +" Module attributes like @doc or @type. +hi link elixirVariable Statement + +" While rendered as comments in other languages, docstrings are strings, +" experimental. +hi link elixirDocString String +hi link elixirDocTest String +hi link elixirStringDelimiter String + +" --- Perl --------------------------------------------------------------------- +call s:hi('perlSharpBang', s:comment) +call s:hi('perlStringStartEnd', s:accent) +call s:hi('perlStringEscape', s:accent) +call s:hi('perlMatchStartEnd', s:accent) + +" --- Python ------------------------------------------------------------------- +call s:hi('pythonEscape', s:accent) + +" --- JavaScript --------------------------------------------------------------- +call s:hi('javaScriptFunction', s:black, s:default_bg, s:bold) + +" --- Diffs -------------------------------------------------------------------- +call s:hi('diffFile', s:faded) +call s:hi('diffNewFile', s:faded) +call s:hi('diffIndexLine', s:comment) +call s:hi('diffLine', s:yellow) +call s:hi('diffSubname', s:faded) +call s:hi('diffAdded', s:green) +call s:hi('diffRemoved', s:red) + +" --- Markdown ----------------------------------------------------------------- +call s:hi('Title', s:black, s:default_bg, s:bold) +call s:hi('markdownHeadingDelimiter', s:black, s:default_bg, s:bold) +call s:hi('markdownHeadingRule', s:black, s:default_bg, s:bold) +call s:hi('markdownLinkText', s:cyan, s:default_bg, s:underline) + +" --- HTML --------------------------------------------------------------------- +call s:hi('htmlLink', s:cyan, s:default_bg, s:underline) +call s:hi('htmlArg', s:default_fg, s:default_bg) + +" --- Gemini ------------------------------------------------------------------- +" Based off of the following plugin: https://tildegit.org/sloum/gemini-vim-syntax +call s:hi('gmiHeader', s:black, s:default_bg, s:bold) +call s:hi('gmiLinkStart', s:black, s:default_bg, s:bold) +call s:hi('gmiLinkURL', s:cyan, s:default_bg, s:underline) +call s:hi('gmiLinkTitle', s:accent, s:default_bg, s:none) +call s:hi('gmiMono', s:accent, s:default_bg, s:bold) +call s:hi('gmiQuoteLine', s:accent, s:default_bg, s:bold) + +" --- Spelling ----------------------------------------------------------------- +call s:hi('SpellBad', s:red, s:default_bg, s:bold, s:underline) +call s:hi('SpellCap', s:black, s:default_bg, s:bold) +call s:hi('SpellLocal', s:default_fg, s:default_bg, s:none) +call s:hi('SpellRare', s:default_fg, s:default_bg, s:none) + +" --- Diff Mode ---------------------------------------------------------------- +call s:hi('DiffAdd', s:green, s:default_bg) +call s:hi('DiffDelete', s:red, s:default_bg) +call s:hi('DiffChange', s:black, s:default_bg) +call s:hi('DiffText', s:yellow, s:default_bg)