99 lines
5.6 KiB
VimL
99 lines
5.6 KiB
VimL
" Vim syntax file
|
|
" Language: Custom git log output
|
|
" Maintainer: Greg Sexton <gregsexton@gmail.com>
|
|
" Last Change: 2011-04-08
|
|
"
|
|
|
|
if exists("b:current_syntax")
|
|
finish
|
|
endif
|
|
|
|
"set conceallevel=2
|
|
"set concealcursor=n
|
|
|
|
syn match gitvSubject /.*/
|
|
|
|
syn match gitvDate /\(\d\+ years\?, \)\?\d\+ \%(second\|seconds\|minute\|minutes\|hour\|hours\|day\|days\|week\|weeks\|month\|months\|year\) ago/ contained containedin=gitvSubject
|
|
syn match gitvHash /\[[0-9a-f]\{7}\]$/ contained containedin=gitvSubject
|
|
|
|
syn match gitvGraphEdge9 /_\?\(|\|-\(-\|\.\)\|\/|\?\|\\\|\*\|+\|=\)\s\?/ nextgroup=gitvGraphEdge0,gitvRef,gitvSubject skipwhite
|
|
syn match gitvGraphEdge8 /_\?\(|\|-\(-\|\.\)\|\/|\?\|\\\|\*\|+\|=\)\s\?/ nextgroup=gitvGraphEdge9,gitvRef,gitvSubject skipwhite
|
|
syn match gitvGraphEdge7 /_\?\(|\|-\(-\|\.\)\|\/|\?\|\\\|\*\|+\|=\)\s\?/ nextgroup=gitvGraphEdge8,gitvRef,gitvSubject skipwhite
|
|
syn match gitvGraphEdge6 /_\?\(|\|-\(-\|\.\)\|\/|\?\|\\\|\*\|+\|=\)\s\?/ nextgroup=gitvGraphEdge7,gitvRef,gitvSubject skipwhite
|
|
syn match gitvGraphEdge5 /_\?\(|\|-\(-\|\.\)\|\/|\?\|\\\|\*\|+\|=\)\s\?/ nextgroup=gitvGraphEdge6,gitvRef,gitvSubject skipwhite
|
|
syn match gitvGraphEdge4 /_\?\(|\|-\(-\|\.\)\|\/|\?\|\\\|\*\|+\|=\)\s\?/ nextgroup=gitvGraphEdge5,gitvRef,gitvSubject skipwhite
|
|
syn match gitvGraphEdge3 /_\?\(|\|-\(-\|\.\)\|\/|\?\|\\\|\*\|+\|=\)\s\?/ nextgroup=gitvGraphEdge4,gitvRef,gitvSubject skipwhite
|
|
syn match gitvGraphEdge2 /_\?\(|\|-\(-\|\.\)\|\/|\?\|\\\|\*\|+\|=\)\s\?/ nextgroup=gitvGraphEdge3,gitvRef,gitvSubject skipwhite
|
|
syn match gitvGraphEdge1 /_\?\(|\|-\(-\|\.\)\|\/|\?\|\\\|\*\|+\|=\)\s\?/ nextgroup=gitvGraphEdge2,gitvRef,gitvSubject skipwhite
|
|
syn match gitvGraphEdge0 /_\?\(|\|-\(-\|\.\)\|\/|\?\|\\\|\*\|+\|=\)\s\?/ nextgroup=gitvGraphEdge1,gitvRef,gitvSubject skipwhite
|
|
syn match gitvGraphEdgeH /_/ contained containedin=gitvGraphEdge0,gitvGraphEdge1,gitvGraphEdge2,gitvGraphEdge3,gitvGraphEdge4,gitvGraphEdge5,gitvGraphEdge6,gitvGraphEdge7,gitvGraphEdge8,gitvGraphEdge9
|
|
|
|
syn match gitvRef /\s*(.\{-})/ nextgroup=gitvSubject skipwhite
|
|
syn match gitvRefTag /t:\zs.\{-}\ze\(, \|)\)/ contained containedin=gitvRef
|
|
syn match gitvRefRemote /r:\zs.\{-}\ze\(, \|)\)/ contained containedin=gitvRef
|
|
syn match gitvRefHead /HEAD/ contained containedin=gitvRef
|
|
|
|
syn match gitvLoadMore /^-- Load More --$/
|
|
syn match gitvWorkingCopy /^-- \[.*\] --$/
|
|
|
|
syn match gitvRange /^-- Showing .* in the range:$/
|
|
syn match gitvRangeFromTo /^-- \/.*\/$/
|
|
|
|
syn match gitvLocalUncommit /Local uncommitted changes, not checked in to index\.$/ contained containedin=gitvSubject
|
|
syn match gitvLocalCommited /Local changes checked in to index but not committed\.$/ contained containedin=gitvSubject
|
|
syn match gitvLocalCommitedNode /+/ contained containedin=gitvGraphEdge0,gitvGraphEdge1,gitvGraphEdge2,gitvGraphEdge3,gitvGraphEdge4,gitvGraphEdge5,gitvGraphEdge6,gitvGraphEdge7,gitvGraphEdge8,gitvGraphEdge9
|
|
syn match gitvLocalUncommitNode /=/ contained containedin=gitvGraphEdge0,gitvGraphEdge1,gitvGraphEdge2,gitvGraphEdge3,gitvGraphEdge4,gitvGraphEdge5,gitvGraphEdge6,gitvGraphEdge7,gitvGraphEdge8,gitvGraphEdge9
|
|
|
|
syn match gitvAddedMarks /|\s\+\d\+ \zs+*-*\ze$/ contained containedin=gitvSubject
|
|
syn match gitvAddedMarks /|\s\+Bin \zs\d\+ -> \d\+\ze bytes$/ contained containedin=gitvSubject
|
|
syn match gitvRemovedMarks /-*$/ contained containedin=gitvAddedMarks
|
|
syn match gitvRemovedMarks /\d\+\ze ->/ contained containedin=gitvAddedMarks
|
|
syn match gitvSeperatorMarks /\s\+->\s\+/ contained containedin=gitvAddedMarks
|
|
|
|
hi def link gitvHash Number
|
|
hi def link gitvRef Directory
|
|
hi def link gitvRefTag String
|
|
hi def link gitvRefRemote Statement
|
|
hi def link gitvRefHead Special
|
|
hi def link gitvDate Statement
|
|
hi def link gitvSubject Normal
|
|
hi def link gitvLoadMore Question
|
|
hi def link gitvWorkingCopy Question
|
|
hi def link gitvRange ModeMsg
|
|
hi def link gitvRangeFromTo Function
|
|
|
|
hi def link gitvAddedMarks diffAdded
|
|
hi def link gitvRemovedMarks diffRemoved
|
|
hi def link gitvSeperatorMarks Normal
|
|
|
|
hi def link gitvGraphEdge0 Delimiter
|
|
|
|
if &background == "dark"
|
|
highlight default gitvGraphEdge1 ctermfg=magenta guifg=green1
|
|
highlight default gitvGraphEdge2 ctermfg=green guifg=yellow1
|
|
highlight default gitvGraphEdge3 ctermfg=yellow guifg=orange1
|
|
highlight default gitvGraphEdge4 ctermfg=cyan guifg=greenyellow
|
|
highlight default gitvGraphEdge5 ctermfg=red guifg=springgreen1
|
|
highlight default gitvGraphEdge6 ctermfg=yellow guifg=cyan1
|
|
highlight default gitvGraphEdge7 ctermfg=green guifg=slateblue1
|
|
highlight default gitvGraphEdge8 ctermfg=cyan guifg=magenta1
|
|
highlight default gitvGraphEdge9 ctermfg=magenta guifg=purple1
|
|
else
|
|
highlight default gitvGraphEdge1 ctermfg=darkyellow guifg=orangered3
|
|
highlight default gitvGraphEdge2 ctermfg=darkgreen guifg=orange2
|
|
highlight default gitvGraphEdge3 ctermfg=blue guifg=yellow3
|
|
highlight default gitvGraphEdge4 ctermfg=darkmagenta guifg=olivedrab4
|
|
highlight default gitvGraphEdge5 ctermfg=red guifg=green4
|
|
highlight default gitvGraphEdge6 ctermfg=darkyellow guifg=paleturquoise3
|
|
highlight default gitvGraphEdge7 ctermfg=darkgreen guifg=deepskyblue4
|
|
highlight default gitvGraphEdge8 ctermfg=blue guifg=darkslateblue
|
|
highlight default gitvGraphEdge9 ctermfg=darkmagenta guifg=darkviolet
|
|
endif
|
|
|
|
highlight default gitvLocalCommitedNode ctermfg=green guifg=green
|
|
highlight default gitvLocalUncommitNode ctermfg=red guifg=red
|
|
highlight default gitvLocalCommited gui=bold
|
|
highlight default gitvLocalUncommit gui=bold
|
|
|
|
let b:current_syntax = "gitv"
|