xref: /vim-8.2.3635/runtime/syntax/gitcommit.vim (revision e37d50a5)
1" Vim syntax file
2" Language:	git commit file
3" Maintainer:	Tim Pope <[email protected]>
4" Filenames:	*.git/COMMIT_EDITMSG
5" Last Change:	2008 Apr 09
6
7if exists("b:current_syntax")
8    finish
9endif
10
11syn case match
12syn sync minlines=50
13
14if has("spell")
15    syn spell toplevel
16endif
17
18syn include @gitcommitDiff syntax/diff.vim
19syn region gitcommitDiff start=/\%(^diff --git \)\@=/ end=/^$\|^#\@=/ contains=@gitcommitDiff
20
21syn match   gitcommitFirstLine	"\%^[^#].*"  nextgroup=gitcommitBlank skipnl
22syn match   gitcommitSummary  	"^.\{0,50\}" contained containedin=gitcommitFirstLine nextgroup=gitcommitOverflow contains=@Spell
23syn match   gitcommitOverflow	".*" contained contains=@Spell
24syn match   gitcommitBlank	"^[^#].*" contained contains=@Spell
25syn match   gitcommitComment	"^#.*"
26syn region  gitcommitHead	start=/^#   / end=/^#$/ contained transparent
27syn match   gitcommitOnBranch	"\%(^# \)\@<=On branch" contained containedin=gitcommitComment nextgroup=gitcommitBranch skipwhite
28syn match   gitcommitBranch	"\S\+" contained
29syn match   gitcommitHeader	"\%(^# \)\@<=.*:$"	contained containedin=gitcommitComment
30
31syn region  gitcommitUntracked	start=/^# Untracked files:/ end=/^#$\|^#\@!/ contains=gitcommitHeader,gitcommitHead,gitcommitUntrackedFile fold
32syn match   gitcommitUntrackedFile  "\t\@<=.*"	contained
33
34syn region  gitcommitDiscarded	start=/^# Changed but not updated:/ end=/^#$\|^#\@!/ contains=gitcommitHeader,gitcommitHead,gitcommitDiscardedType fold
35syn region  gitcommitSelected	start=/^# Changes to be committed:/ end=/^#$\|^#\@!/ contains=gitcommitHeader,gitcommitHead,gitcommitSelectedType fold
36
37syn match   gitcommitDiscardedType	"\t\@<=[a-z][a-z ]*[a-z]: "he=e-2	contained containedin=gitcommitComment nextgroup=gitcommitDiscardedFile skipwhite
38syn match   gitcommitSelectedType	"\t\@<=[a-z][a-z ]*[a-z]: "he=e-2	contained containedin=gitcommitComment nextgroup=gitcommitSelectedFile skipwhite
39syn match   gitcommitDiscardedFile	".\{-\}\%($\| -> \)\@=" contained nextgroup=gitcommitDiscardedArrow
40syn match   gitcommitSelectedFile	".\{-\}\%($\| -> \)\@=" contained nextgroup=gitcommitSelectedArrow
41syn match   gitcommitDiscardedArrow	" -> " contained nextgroup=gitcommitDiscardedFile
42syn match   gitcommitSelectedArrow	" -> " contained nextgroup=gitcommitSelectedFile
43
44hi def link gitcommitSummary		Keyword
45hi def link gitcommitComment		Comment
46hi def link gitcommitUntracked		gitcommitComment
47hi def link gitcommitDiscarded		gitcommitComment
48hi def link gitcommitSelected		gitcommitComment
49hi def link gitcommitOnBranch		Comment
50hi def link gitcommitBranch		Special
51hi def link gitcommitDiscardedType	gitcommitType
52hi def link gitcommitSelectedType	gitcommitType
53hi def link gitcommitType		Type
54hi def link gitcommitHeader		PreProc
55hi def link gitcommitUntrackedFile	gitcommitFile
56hi def link gitcommitDiscardedFile	gitcommitFile
57hi def link gitcommitSelectedFile	gitcommitFile
58hi def link gitcommitFile		Constant
59hi def link gitcommitDiscardedArrow	gitcommitArrow
60hi def link gitcommitSelectedArrow	gitcommitArrow
61hi def link gitcommitArrow		gitcommitComment
62"hi def link gitcommitOverflow		Error
63hi def link gitcommitBlank		Error
64
65let b:current_syntax = "gitcommit"
66