Last active
December 6, 2018 07:32
-
-
Save zhengkai/6edd09b813c4b9a3fc634584e37d6ad9 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
" Vim syntax file | |
" Language: git commit file | |
" Maintainer: Tim Pope <vimNOSPAM@tpope.org> | |
" Filenames: *.git/COMMIT_EDITMSG | |
" Last Change: 2018 Dec 4 | |
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\|cc\|combined\) \)\@=/ end=/^\%(diff --\|$\|#\)\@=/ fold 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 match gitcommitHead "^\%(# .*\n\)\+#$" contained transparent | |
syn match gitcommitOnBranch "\%(^# \)\@<=On branch" contained containedin=gitcommitComment nextgroup=gitcommitBranch skipwhite | |
syn match gitcommitOnBranch "\%(^# \)\@<=Your branch .\{-\} '" contained containedin=gitcommitComment nextgroup=gitcommitBranch skipwhite | |
syn match gitcommitBranch "[^ ']\+" contained | |
syn match gitcommitNoBranch "\%(^# \)\@<=Not currently on any branch." contained containedin=gitcommitComment | |
syn match gitcommitHeader "\%(^# \)\@<=.*:$" contained containedin=gitcommitComment | |
syn region gitcommitAuthor matchgroup=gitCommitHeader start=/\%(^# \)\@<=\%(Author\|Committer\):/ end=/$/ keepend oneline contained containedin=gitcommitComment transparent | |
syn match gitcommitNoChanges "\%(^# \)\@<=No changes$" contained containedin=gitcommitComment | |
syn region gitcommitUntracked start=/^# Untracked files:/ end=/^#$\|^#\@!/ contains=gitcommitHeader,gitcommitHead,gitcommitUntrackedFile fold | |
syn match gitcommitUntrackedFile "\t\@<=.*" contained | |
syn region gitcommitDiscarded start=/^# Change\%(s not staged for commit\|d but not updated\):/ end=/^#$\|^#\@!/ contains=gitcommitHeader,gitcommitHead,gitcommitDiscardedType fold | |
syn region gitcommitSelected start=/^# Changes to be committed:/ end=/^#$\|^#\@!/ contains=gitcommitHeader,gitcommitHead,gitcommitSelectedType,gitcommitNewFileType,gitcommitModifiedFileType,gitcommitDeletedFileType fold | |
syn region gitcommitUnmerged start=/^# Unmerged paths:/ end=/^#$\|^#\@!/ contains=gitcommitHeader,gitcommitHead,gitcommitUnmergedType fold | |
syn match gitcommitDiscardedType "\t\@<=[[:lower:]][^:]*[[:lower:]]: "he=e-2 contained containedin=gitcommitComment nextgroup=gitcommitDiscardedFile skipwhite | |
syn match gitcommitSelectedType "\t\@<=[[:lower:]][^:]*[[:lower:]]: "he=e-2 contained containedin=gitcommitComment nextgroup=gitcommitSelectedFile skipwhite | |
syn match gitcommitUnmergedType "\t\@<=[[:lower:]][^:]*[[:lower:]]: "he=e-2 contained containedin=gitcommitComment nextgroup=gitcommitUnmergedFile skipwhite | |
syn match gitcommitNewFileType "\t\@<=new file: "he=e-2 contained containedin=gitcommitComment nextgroup=gitcommitNewFile skipwhite | |
syn match gitcommitModifiedFileType "\t\@<=modified: "he=e-2 contained containedin=gitcommitComment nextgroup=gitcommitModifiedFile skipwhite | |
syn match gitcommitDeletedFileType "\t\@<=deleted: "he=e-2 contained containedin=gitcommitComment nextgroup=gitcommitDeletedFile skipwhite | |
syn match gitcommitNewFile ".\{-\}\%($\| -> \)\@=" contained nextgroup=gitcommitSelectedArrow | |
syn match gitcommitModifiedFile ".\{-\}\%($\| -> \)\@=" contained nextgroup=gitcommitSelectedArrow | |
syn match gitcommitDeletedFile ".\{-\}\%($\| -> \)\@=" contained nextgroup=gitcommitSelectedArrow | |
syn match gitcommitDiscardedFile ".\{-\}\%($\| -> \)\@=" contained nextgroup=gitcommitDiscardedArrow | |
syn match gitcommitSelectedFile ".\{-\}\%($\| -> \)\@=" contained nextgroup=gitcommitSelectedArrow | |
syn match gitcommitUnmergedFile ".\{-\}\%($\| -> \)\@=" contained nextgroup=gitcommitSelectedArrow | |
syn match gitcommitDiscardedArrow " -> " contained nextgroup=gitcommitDiscardedFile | |
syn match gitcommitSelectedArrow " -> " contained nextgroup=gitcommitSelectedFile | |
syn match gitcommitUnmergedArrow " -> " contained nextgroup=gitcommitSelectedFile | |
syn match gitcommitWarning "\%^[^#].*: needs merge$" nextgroup=gitcommitWarning skipnl | |
syn match gitcommitWarning "^[^#].*: needs merge$" nextgroup=gitcommitWarning skipnl contained | |
syn match gitcommitWarning "^\%(no changes added to commit\|nothing \%(added \)\=to commit\)\>.*\%$" | |
hi def link gitcommitNewFileType gitcommitNewFile | |
hi def link gitcommitModifiedFileType gitcommitModifiedFile | |
hi def link gitcommitDeletedFileType gitcommitDeletedFile | |
hi def link gitcommitNewFile Question | |
hi def link gitcommitModifiedFile Function | |
hi def link gitcommitDeletedFile Constant | |
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 gitcommitUnmerged gitcommitComment | |
hi def link gitcommitOnBranch Comment | |
hi def link gitcommitBranch Special | |
hi def link gitcommitNoBranch gitCommitBranch | |
hi def link gitcommitDiscardedType gitcommitType | |
hi def link gitcommitSelectedType gitcommitType | |
hi def link gitcommitUnmergedType gitcommitType | |
hi def link gitcommitType Type | |
hi def link gitcommitNoChanges gitcommitHeader | |
hi def link gitcommitHeader PreProc | |
hi def link gitcommitUntrackedFile gitcommitFile | |
hi def link gitcommitDiscardedFile gitcommitFile | |
hi def link gitcommitSelectedFile gitcommitFile | |
hi def link gitcommitUnmergedFile gitcommitFile | |
hi def link gitcommitFile Constant | |
hi def link gitcommitDiscardedArrow gitcommitArrow | |
hi def link gitcommitSelectedArrow gitcommitArrow | |
hi def link gitcommitUnmergedArrow gitcommitArrow | |
hi def link gitcommitArrow gitcommitComment | |
"hi def link gitcommitOverflow Error | |
hi def link gitcommitBlank Error | |
let b:current_syntax = "gitcommit" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment