" ============================================================================ " File: autoload/gitstatus/job.vim " Description: git status indicator syntax highlighting " Maintainer: Xuyuan Pang " License: This program is free software. It comes without any warranty, " to the extent permitted by applicable law. You can redistribute " it and/or modify it under the terms of the Do What The Fuck You " Want To Public License, Version 2, as published by Sam Hocevar. " See http://sam.zoy.org/wtfpl/COPYING for more details. " ============================================================================ if !get(g:, 'NERDTreeGitStatusEnable', 0) finish endif function! s:getIndicator(status) abort return gitstatus#getIndicator(a:status) endfunction if gitstatus#shouldConceal() " Hide the backets syntax match hideBracketsInNerdTreeL "\]" contained conceal containedin=NERDTreeFlags syntax match hideBracketsInNerdTreeR "\[" contained conceal containedin=NERDTreeFlags setlocal conceallevel=3 setlocal concealcursor=nvic endif function! s:highlightFromGroup(group) abort let l:synid = synIDtrans(hlID(a:group)) let [l:ctermfg, l:guifg] = [synIDattr(l:synid, 'fg', 'cterm'), synIDattr(l:synid, 'fg', 'gui')] return 'cterm=NONE ctermfg=' . l:ctermfg . ' ctermbg=NONE gui=NONE guifg=' . l:guifg . ' guibg=NONE' endfunction function! s:setHightlighting() abort let l:synlist = [ \ ['Unmerged', 'Function'], \ ['Modified', 'Special'], \ ['Staged', 'Function'], \ ['Renamed', 'Title'], \ ['Unmerged', 'Label'], \ ['Untracked', 'Comment'], \ ['Dirty', 'Tag'], \ ['Deleted', 'Operator'], \ ['Ignored', 'SpecialKey'], \ ['Clean', 'Method'], \ ] for [l:name, l:group] in l:synlist let l:indicator = escape(s:getIndicator(l:name), '\#-*.$') let l:synname = 'NERDTreeGitStatus' . l:name execute 'silent! syntax match ' . l:synname . ' #\m\C\zs[' . l:indicator . ']\ze[^\]]*\]# containedin=NERDTreeFlags' let l:hipat = get(get(g:, 'NERDTreeGitStatusHighlightingCustom', {}), \ l:name, \ s:highlightFromGroup(l:group)) execute 'silent! highlight ' . l:synname . ' ' . l:hipat endfor endfunction silent! call s:setHightlighting()