66 lines
3.1 KiB
VimL
66 lines
3.1 KiB
VimL
|
" Vim syntax file
|
||
|
" Language: git commit file
|
||
|
" Maintainer: Tim Pope <vimNOSPAM@tpope.info>
|
||
|
" 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"
|