" Vim syntax file " Language: git commit file " Maintainer: Tim Pope " Filenames: *.git/COMMIT_EDITMSG " Last Change: 2008 Apr 09 if exists("b:current_syntax") finish endif syn case match syn sync minlines=50 if has("spell") syn spell toplevel endif syn include @gitcommitDiff syntax/diff.vim syn region gitcommitDiff start=/\%(^diff --git \)\@=/ end=/^$\|^#\@=/ contains=@gitcommitDiff syn match gitcommitFirstLine "\%^[^#].*" nextgroup=gitcommitBlank skipnl syn match gitcommitSummary "^.\{0,50\}" contained containedin=gitcommitFirstLine nextgroup=gitcommitOverflow contains=@Spell syn match gitcommitOverflow ".*" contained contains=@Spell syn match gitcommitBlank "^[^#].*" contained contains=@Spell syn match gitcommitComment "^#.*" syn region gitcommitHead start=/^# / end=/^#$/ contained transparent syn match gitcommitOnBranch "\%(^# \)\@<=On branch" contained containedin=gitcommitComment nextgroup=gitcommitBranch skipwhite syn match gitcommitBranch "\S\+" contained syn match gitcommitHeader "\%(^# \)\@<=.*:$" contained containedin=gitcommitComment syn region gitcommitUntracked start=/^# Untracked files:/ end=/^#$\|^#\@!/ contains=gitcommitHeader,gitcommitHead,gitcommitUntrackedFile fold syn match gitcommitUntrackedFile "\t\@<=.*" contained syn region gitcommitDiscarded start=/^# Changed but not updated:/ end=/^#$\|^#\@!/ contains=gitcommitHeader,gitcommitHead,gitcommitDiscardedType fold syn region gitcommitSelected start=/^# Changes to be committed:/ end=/^#$\|^#\@!/ contains=gitcommitHeader,gitcommitHead,gitcommitSelectedType fold syn match gitcommitDiscardedType "\t\@<=[a-z][a-z ]*[a-z]: "he=e-2 contained containedin=gitcommitComment nextgroup=gitcommitDiscardedFile skipwhite syn match gitcommitSelectedType "\t\@<=[a-z][a-z ]*[a-z]: "he=e-2 contained containedin=gitcommitComment nextgroup=gitcommitSelectedFile skipwhite syn match gitcommitDiscardedFile ".\{-\}\%($\| -> \)\@=" contained nextgroup=gitcommitDiscardedArrow syn match gitcommitSelectedFile ".\{-\}\%($\| -> \)\@=" contained nextgroup=gitcommitSelectedArrow syn match gitcommitDiscardedArrow " -> " contained nextgroup=gitcommitDiscardedFile syn match gitcommitSelectedArrow " -> " contained nextgroup=gitcommitSelectedFile hi def link gitcommitSummary Keyword hi def link gitcommitComment Comment hi def link gitcommitUntracked gitcommitComment hi def link gitcommitDiscarded gitcommitComment hi def link gitcommitSelected gitcommitComment hi def link gitcommitOnBranch Comment hi def link gitcommitBranch Special hi def link gitcommitDiscardedType gitcommitType hi def link gitcommitSelectedType gitcommitType hi def link gitcommitType Type hi def link gitcommitHeader PreProc hi def link gitcommitUntrackedFile gitcommitFile hi def link gitcommitDiscardedFile gitcommitFile hi def link gitcommitSelectedFile gitcommitFile hi def link gitcommitFile Constant hi def link gitcommitDiscardedArrow gitcommitArrow hi def link gitcommitSelectedArrow gitcommitArrow hi def link gitcommitArrow gitcommitComment "hi def link gitcommitOverflow Error hi def link gitcommitBlank Error let b:current_syntax = "gitcommit"