mirror of
https://github.com/davegallant/nix-config
synced 2025-08-06 11:23:40 +00:00
364 lines
8.5 KiB
VimL
364 lines
8.5 KiB
VimL
"vimbrains
|
|
|
|
hi clear
|
|
|
|
if exists("syntax_on")
|
|
syntax reset
|
|
endif
|
|
|
|
let g:colors_name='vimbrains'
|
|
|
|
if !has('gui_running') && &t_Co != 256
|
|
finish
|
|
endif
|
|
|
|
" Palette
|
|
|
|
let s:bg = ["#1C1B19", 234]
|
|
let s:bg2 = ["#2D2C29", 235]
|
|
let s:fg = ["#FCE8C3", 223]
|
|
let s:muted = ["#918175", 240] "131
|
|
let s:key1 = ['#ce7828', 172]
|
|
let s:key2 = ["#FBB829", 3]
|
|
let s:string = ["#698857", 65]
|
|
let s:special = ["#6796bd", 67]
|
|
|
|
let s:annotation= ["#9975ab", 103]
|
|
let s:variable = ["#6c6c6c", 67]
|
|
|
|
|
|
" Setup Variables:
|
|
|
|
let s:none = ['NONE', 'NONE']
|
|
|
|
if !exists('g:vimbrains_bold')
|
|
let g:vimbrains_bold=1
|
|
endif
|
|
|
|
if !exists('g:vimbrains_italic')
|
|
if has('gui_running') || $TERM_ITALICS == 'true'
|
|
let g:vimbrains_italic=1
|
|
else
|
|
let g:vimbrains_italic=0
|
|
endif
|
|
endif
|
|
|
|
if !exists('g:vimbrains_undercurl')
|
|
let g:vimbrains_undercurl=1
|
|
endif
|
|
|
|
if !exists('g:vimbrains_underline')
|
|
let g:vimbrains_underline=1
|
|
endif
|
|
|
|
if !exists('g:vimbrains_inverse')
|
|
let g:vimbrains_inverse=1
|
|
endif
|
|
|
|
" Setup Emphasis:
|
|
|
|
let s:bold = 'bold,'
|
|
if g:vimbrains_bold == 0
|
|
let s:bold = ''
|
|
endif
|
|
|
|
let s:italic = 'italic,'
|
|
if g:vimbrains_italic == 0
|
|
let s:italic = ''
|
|
endif
|
|
|
|
let s:underline = 'underline,'
|
|
if g:vimbrains_underline == 0
|
|
let s:underline = ''
|
|
endif
|
|
|
|
let s:undercurl = 'undercurl,'
|
|
if g:vimbrains_undercurl == 0
|
|
let s:undercurl = ''
|
|
endif
|
|
|
|
let s:inverse = 'inverse,'
|
|
if g:vimbrains_inverse == 0
|
|
let s:inverse = ''
|
|
endif
|
|
|
|
" Highlighting Function:
|
|
|
|
function! s:HL(group, fg, ...)
|
|
" Arguments: group, guifg, guibg, gui, guisp
|
|
|
|
" foreground
|
|
let fg = a:fg
|
|
|
|
" background
|
|
if a:0 >= 1
|
|
let bg = a:1
|
|
else
|
|
let bg = s:none
|
|
endif
|
|
|
|
" emphasis
|
|
if a:0 >= 2 && strlen(a:2)
|
|
let emstr = a:2
|
|
else
|
|
let emstr = 'NONE,'
|
|
endif
|
|
|
|
let histring = [ 'hi', a:group,
|
|
\ 'guifg=' . fg[0], 'ctermfg=' . fg[1],
|
|
\ 'guibg=' . bg[0], 'ctermbg=' . bg[1],
|
|
\ 'gui=' . emstr[:-2], 'cterm=' . emstr[:-2]
|
|
\ ]
|
|
|
|
" special
|
|
if a:0 >= 3
|
|
call add(histring, 'guisp=' . a:3[0])
|
|
endif
|
|
|
|
execute join(histring, ' ')
|
|
endfunction
|
|
|
|
" Color definitions
|
|
call s:HL('Normal', s:fg, s:bg)
|
|
|
|
if version >= 700
|
|
call s:HL('CursorLine', s:none, s:bg2)
|
|
|
|
" Tab pages line filler
|
|
call s:HL('TabLineFill', s:bg, s:bg)
|
|
" Active tab page label
|
|
call s:HL('TabLineSel', s:bg, s:bg, s:bold)
|
|
" Not active tab page label
|
|
hi! link TabLine TabLineFill
|
|
|
|
" Match paired bracket under the cursor
|
|
call s:HL('MatchParen', s:key2, s:bg2, s:bold)
|
|
endif
|
|
|
|
if version >= 703
|
|
" Highlighted screen columns
|
|
call s:HL('ColorColumn', s:none, s:bg)
|
|
|
|
" Concealed element: \lambda → λ
|
|
call s:HL('Conceal', s:special, s:none)
|
|
|
|
" Line number of CursorLine
|
|
call s:HL('CursorLineNr', s:key2, s:bg)
|
|
endif
|
|
|
|
call s:HL('NonText', s:muted)
|
|
call s:HL('SpecialKey', s:muted)
|
|
|
|
call s:HL('Visual', s:fg, s:bg, s:inverse)
|
|
|
|
call s:HL('Search', s:bg, s:key2)
|
|
call s:HL('IncSearch', s:bg, s:key2)
|
|
|
|
call s:HL('Underlined', s:special, s:none, s:underline)
|
|
|
|
call s:HL('StatusLine', s:fg, s:bg2)
|
|
call s:HL('StatusLineNC', s:bg2, s:bg, s:underline)
|
|
|
|
" The column separating vertically split windows
|
|
call s:HL('VertSplit', s:fg, s:bg)
|
|
|
|
" Current match in wildmenu completion
|
|
call s:HL('WildMenu', s:key1, s:bg2, s:bold)
|
|
|
|
" Error messages on the command line
|
|
call s:HL('ErrorMsg', s:fg, s:key1)
|
|
call s:HL('MoreMsg', s:key2)
|
|
|
|
" Current mode message: -- INSERT --
|
|
call s:HL('ModeMsg', s:fg, s:bg)
|
|
" 'Press enter' prompt and yes/no questions
|
|
hi! link Question MoreMsg
|
|
" Warning messages
|
|
hi! link WarningMsg ErrorMsg
|
|
|
|
" Line number for :number and :# commands
|
|
call s:HL('LineNr', s:muted)
|
|
|
|
" Column where signs are displayed
|
|
call s:HL('SignColumn', s:none, s:bg)
|
|
|
|
" Line used for closed folds
|
|
call s:HL('Folded', s:muted, s:bg, s:italic)
|
|
" Column where folds are displayed
|
|
call s:HL('FoldColumn', s:muted, s:bg)
|
|
|
|
" Character under cursor
|
|
call s:HL('Cursor', s:fg, s:none, s:inverse)
|
|
|
|
"""" Syntax
|
|
"Dont highlight to much
|
|
call s:HL('Special', s:fg)
|
|
|
|
call s:HL('Comment', s:muted, s:none, s:italic)
|
|
"TODO
|
|
call s:HL('Todo', s:fg, s:bg, s:bold)
|
|
call s:HL('Error', s:key1, s:bg, s:bold . s:inverse)
|
|
|
|
|
|
" String constant: "this is a string"
|
|
call s:HL('String', s:string)
|
|
call s:HL('EscSequence', s:fg, s:none, s:bold)
|
|
|
|
call s:HL('Statement', s:key1)
|
|
" if, then, else, endif, swicth, etc.
|
|
hi! link Conditional Statement
|
|
" for, do, while, etc.
|
|
hi! link Repeat Statement
|
|
" case, default, etc.
|
|
hi! link Label Statement
|
|
" try, catch, throw
|
|
hi! link Exception Statement
|
|
" sizeof, "+", "*", etc.
|
|
""" MF
|
|
hi! link Operator Statement
|
|
" Any other keyword
|
|
hi! link Keyword Statement
|
|
|
|
call s:HL('Identifier', s:key1)
|
|
call s:HL('Function', s:annotation)
|
|
|
|
" Generic preprocessor
|
|
call s:HL('PreProc', s:key1)
|
|
|
|
" Preprocessor #include
|
|
hi! link Include PreProc
|
|
" Preprocessor #define
|
|
hi! link Define PreProc
|
|
" Same as Define
|
|
hi! link Macro PreProc
|
|
" Preprocessor #if, #else, #endif, etc.
|
|
hi! link PreCondit PreProc
|
|
|
|
" Generic constant
|
|
call s:HL('Constant', s:key2)
|
|
|
|
" Character constant: 'c', '/n'
|
|
hi! link Character Constant
|
|
" Boolean constant: TRUE, false
|
|
hi! link Boolean Constant
|
|
" Number constant: 234, 0xff
|
|
hi! link Number Constant
|
|
" Floating point constant: 2.3e10
|
|
hi! link Float Constant
|
|
|
|
" Generic type
|
|
call s:HL('Type', s:key1)
|
|
" static, register, volatile, etc
|
|
call s:HL('StorageClass', s:key1)
|
|
" struct, union, enum, etc.
|
|
call s:HL('Structure', s:key1)
|
|
" typedef
|
|
call s:HL('Typedef', s:key1)
|
|
|
|
if version >= 700
|
|
" Popup menu: normal item
|
|
""" MF
|
|
call s:HL('Pmenu', s:fg, s:bg2)
|
|
" Popup menu: selected item
|
|
call s:HL('PmenuSel', s:bg, s:special, s:bold)
|
|
" Popup menu: scrollbar
|
|
call s:HL('PmenuSbar', s:none, s:bg)
|
|
" Popup menu: scrollbar thumb
|
|
call s:HL('PmenuThumb', s:none, s:bg)
|
|
endif
|
|
|
|
" Spelling
|
|
|
|
if has("spell")
|
|
" Not capitalised word, or compile warnings
|
|
call s:HL('SpellCap', s:special, s:none, s:bold . s:italic)
|
|
" Not recognized word
|
|
call s:HL('SpellBad', s:none, s:none, s:undercurl, s:key1)
|
|
" Wrong spelling for selected region
|
|
call s:HL('SpellLocal', s:none, s:none, s:undercurl, s:key2)
|
|
" Rare word
|
|
call s:HL('SpellRare', s:none, s:none, s:undercurl, s:special)
|
|
endif
|
|
|
|
" Diff
|
|
|
|
call s:HL('DiffDelete', s:key1, s:bg, s:inverse)
|
|
call s:HL('DiffAdd', s:string, s:bg, s:inverse)
|
|
|
|
" Alternative setting
|
|
call s:HL('DiffChange', s:special, s:bg, s:inverse)
|
|
call s:HL('DiffText', s:key2, s:bg, s:inverse)
|
|
|
|
" HTML
|
|
call s:HL('htmlLink', s:fg, s:none, s:underline)
|
|
call s:HL('htmlTitle', s:fg, s:none, s:bold)
|
|
|
|
call s:HL('htmlTag', s:key1, s:none)
|
|
call s:HL('htmlTagName', s:key1, s:none)
|
|
call s:HL('htmlArg', s:key2, s:none)
|
|
|
|
call s:HL('htmlSpecialChar', s:key2, s:none, s:underline)
|
|
|
|
call s:HL('htmlBold', s:fg, s:bg, s:bold)
|
|
call s:HL('htmlBoldUnderline', s:fg, s:bg, s:bold . s:underline)
|
|
call s:HL('htmlBoldItalic', s:fg, s:bg, s:bold . s:italic)
|
|
call s:HL('htmlBoldUnderlineItalic', s:fg, s:bg, s:bold . s:underline . s:italic)
|
|
|
|
call s:HL('htmlUnderline', s:fg, s:bg, s:underline)
|
|
call s:HL('htmlUnderlineItalic', s:fg, s:bg, s:underline . s:italic)
|
|
call s:HL('htmlItalic', s:fg, s:bg, s:italic)
|
|
|
|
" Markdown
|
|
call s:HL('markdownH1', s:key1, s:bg, s:bold)
|
|
hi! link markdownH2 markdownH1
|
|
hi! link markdownH3 markdownH1
|
|
hi! link markdownH4 markdownH1
|
|
hi! link markdownH5 markdownH1
|
|
|
|
" Python
|
|
call s:HL('pythonDecorator', s:annotation, s:bg)
|
|
call s:HL('pythonInclude', s:key1, s:bg)
|
|
call s:HL('pythonImport', s:key1, s:bg)
|
|
call s:HL('pythonBoolean', s:key2, s:bg)
|
|
call s:HL('pythonFunction', s:fg, s:bg)
|
|
call s:HL('pythonBuiltin', s:key2, s:bg)
|
|
call s:HL('pythonStatement', s:key1, s:bg)
|
|
hi! link pythonCoding Comment
|
|
hi! link pythonBytesEscape EscSequence
|
|
|
|
" Scala
|
|
call s:HL('scalaAnnotation', s:annotation, s:bg)
|
|
call s:HL('scalaNameDefinition', s:variable, s:bg)
|
|
call s:HL('scalaSquareBracketsBrackets', s:fg, s:bg)
|
|
call s:HL('scalaTypeDeclaration', s:fg, s:bg)
|
|
call s:HL('scalaKeywordModifier', s:key1, s:bg)
|
|
call s:HL('scalaSpecial', s:key2, s:bg)
|
|
|
|
"Vim
|
|
call s:HL('vimBracket', s:key2, s:bg)
|
|
hi! link vimNotation vimBracket
|
|
hi! link vimMapModKey vimBracket
|
|
hi! link vimCommentTitle Todo
|
|
|
|
"C
|
|
hi! link cSpecial EscSequence
|
|
|
|
"D
|
|
hi! link dEscSequence EscSequence
|
|
|
|
" NERDTree
|
|
call s:HL('NERDTreeDir', s:string, s:bg)
|
|
hi! link pythonCoding Comment
|
|
call s:HL('NERDTreeClosable', s:fg, s:bg)
|
|
call s:HL('NERDTreeOpenable', s:fg, s:bg)
|
|
call s:HL('NERDTreeDirSlash', s:fg, s:bg)
|
|
call s:HL('NERDTreeUp', s:fg, s:bg)
|
|
|
|
hi Title guifg=gold gui=bold cterm=bold ctermfg=yellow
|
|
hi Ignore guifg=grey40 cterm=bold ctermfg=7
|
|
hi Directory ctermfg=darkcyan
|
|
hi VisualNOS cterm=bold,underline
|
|
hi SpellErrors cterm=bold ctermfg=7 ctermbg=1 gui=undercurl,bold
|
|
|
|
|