Mercurial > vim
comparison runtime/syntax/git.vim @ 2034:7bc41231fbc7
Update runtime files.
author | Bram Moolenaar <bram@zimbu.org> |
---|---|
date | Wed, 06 Jan 2010 20:54:52 +0100 |
parents | 18ee39301b82 |
children | f7579a31705c |
comparison
equal
deleted
inserted
replaced
2033:de5a43c5eedc | 2034:7bc41231fbc7 |
---|---|
1 " Vim syntax file | 1 " Vim syntax file |
2 " Language: generic git output | 2 " Language: generic git output |
3 " Maintainer: Tim Pope <vimNOSPAM@tpope.info> | 3 " Maintainer: Tim Pope <vimNOSPAM@tpope.org> |
4 " Last Change: 2008 Mar 21 | 4 " Last Change: 2009 Dec 24 |
5 | 5 |
6 if exists("b:current_syntax") | 6 if exists("b:current_syntax") |
7 finish | 7 finish |
8 endif | 8 endif |
9 | 9 |
11 syn sync minlines=50 | 11 syn sync minlines=50 |
12 | 12 |
13 syn include @gitDiff syntax/diff.vim | 13 syn include @gitDiff syntax/diff.vim |
14 | 14 |
15 syn region gitHead start=/\%^/ end=/^$/ | 15 syn region gitHead start=/\%^/ end=/^$/ |
16 syn region gitHead start=/\%(^commit \x\{40\}$\)\@=/ end=/^$/ | 16 syn region gitHead start=/\%(^commit \x\{40\}\%(\s*(.*)\)\=$\)\@=/ end=/^$/ |
17 | 17 |
18 " For git reflog and git show ...^{tree}, avoid sync issues | 18 " For git reflog and git show ...^{tree}, avoid sync issues |
19 syn match gitHead /^\d\{6\} \%(\w\{4} \)\=\x\{40\}\%( [0-3]\)\=\t.*/ | 19 syn match gitHead /^\d\{6\} \%(\w\{4} \)\=\x\{40\}\%( [0-3]\)\=\t.*/ |
20 syn match gitHead /^\x\{40\} \x\{40}\t.*/ | 20 syn match gitHead /^\x\{40\} \x\{40}\t.*/ |
21 | 21 |
22 syn region gitDiff start=/^\%(diff --git \)\@=/ end=/^\%(diff --git \|$\)\@=/ contains=@gitDiff fold | 22 syn region gitDiff start=/^\%(diff --git \)\@=/ end=/^\%(diff --\|$\)\@=/ contains=@gitDiff fold |
23 syn region gitDiff start=/^\%(@@ -\)\@=/ end=/^\%(diff --git \|$\)\@=/ contains=@gitDiff | 23 syn region gitDiff start=/^\%(@@ -\)\@=/ end=/^\%(diff --\%(git\|cc\|combined\) \|$\)\@=/ contains=@gitDiff |
24 | |
25 syn region gitDiffMerge start=/^\%(diff --\%(cc\|combined\) \)\@=/ end=/^\%(diff --\|$\)\@=/ contains=@gitDiff | |
26 syn region gitDiffMerge start=/^\%(@@@@* -\)\@=/ end=/^\%(diff --\|$\)\@=/ contains=@gitDiff | |
27 syn match gitDiffAdded "^ \++.*" contained containedin=gitDiffMerge | |
28 syn match gitDiffRemoved "^ \+-.*" contained containedin=gitDiffMerge | |
24 | 29 |
25 syn match gitKeyword /^\%(object\|type\|tag\|commit\|tree\|parent\|encoding\)\>/ contained containedin=gitHead nextgroup=gitHash,gitType skipwhite | 30 syn match gitKeyword /^\%(object\|type\|tag\|commit\|tree\|parent\|encoding\)\>/ contained containedin=gitHead nextgroup=gitHash,gitType skipwhite |
26 syn match gitKeyword /^\%(tag\>\|ref:\)/ contained containedin=gitHead nextgroup=gitReference skipwhite | 31 syn match gitKeyword /^\%(tag\>\|ref:\)/ contained containedin=gitHead nextgroup=gitReference skipwhite |
27 syn match gitKeyword /^Merge:/ contained containedin=gitHead nextgroup=gitHashAbbrev skipwhite | 32 syn match gitKeyword /^Merge:/ contained containedin=gitHead nextgroup=gitHashAbbrev skipwhite |
28 syn match gitMode /^\d\{6\}/ contained containedin=gitHead nextgroup=gitType,gitHash skipwhite | 33 syn match gitMode /^\d\{6\}/ contained containedin=gitHead nextgroup=gitType,gitHash skipwhite |
29 syn match gitIdentityKeyword /^\%(author\|committer\|tagger\)\>/ contained containedin=gitHead nextgroup=gitIdentity skipwhite | 34 syn match gitIdentityKeyword /^\%(author\|committer\|tagger\)\>/ contained containedin=gitHead nextgroup=gitIdentity skipwhite |
30 syn match gitIdentityHeader /^\%(Author\|Commit\|Tagger\):/ contained containedin=gitHead nextgroup=gitIdentity skipwhite | 35 syn match gitIdentityHeader /^\%(Author\|Commit\|Tagger\):/ contained containedin=gitHead nextgroup=gitIdentity skipwhite |
31 syn match gitDateHeader /^\%(AuthorDate\|CommitDate\|Date\):/ contained containedin=gitHead nextgroup=gitDate skipwhite | 36 syn match gitDateHeader /^\%(AuthorDate\|CommitDate\|Date\):/ contained containedin=gitHead nextgroup=gitDate skipwhite |
32 syn match gitIdentity /\S.\{-\} <[^>]*>/ contained nextgroup=gitDate skipwhite | |
33 syn region gitEmail matchgroup=gitEmailDelimiter start=/</ end=/>/ keepend oneline contained containedin=gitIdentity | |
34 | 37 |
35 syn match gitReflogHeader /^Reflog:/ contained containedin=gitHead nextgroup=gitReflogMiddle skipwhite | 38 syn match gitReflogHeader /^Reflog:/ contained containedin=gitHead nextgroup=gitReflogMiddle skipwhite |
36 syn match gitReflogHeader /^Reflog message:/ contained containedin=gitHead skipwhite | 39 syn match gitReflogHeader /^Reflog message:/ contained containedin=gitHead skipwhite |
37 syn match gitReflogMiddle /\S\+@{\d\+} (/he=e-2 nextgroup=gitIdentity | 40 syn match gitReflogMiddle /\S\+@{\d\+} (/he=e-2 nextgroup=gitIdentity |
38 | 41 |
40 syn match gitDate /-\=\d\+ [+-]\d\d\d\d\>/ contained | 43 syn match gitDate /-\=\d\+ [+-]\d\d\d\d\>/ contained |
41 syn match gitDate /\<\d\+ \l\+ ago\>/ contained | 44 syn match gitDate /\<\d\+ \l\+ ago\>/ contained |
42 syn match gitType /\<\%(tag\|commit\|tree\|blob\)\>/ contained nextgroup=gitHash skipwhite | 45 syn match gitType /\<\%(tag\|commit\|tree\|blob\)\>/ contained nextgroup=gitHash skipwhite |
43 syn match gitStage /\<\d\t\@=/ contained | 46 syn match gitStage /\<\d\t\@=/ contained |
44 syn match gitReference /\S\+\S\@!/ contained | 47 syn match gitReference /\S\+\S\@!/ contained |
45 syn match gitHash /\<\x\{40\}\>/ contained nextgroup=gitIdentity,gitStage skipwhite | 48 syn match gitHash /\<\x\{40\}\>/ contained nextgroup=gitIdentity,gitStage,gitHash skipwhite |
46 syn match gitHash /^\<\x\{40\}\>/ containedin=gitHead contained nextgroup=gitHash skipwhite | 49 syn match gitHash /^\<\x\{40\}\>/ containedin=gitHead contained nextgroup=gitHash skipwhite |
50 syn match gitHashAbbrev /\<\x\{4,40\}\>/ contained nextgroup=gitHashAbbrev skipwhite | |
47 syn match gitHashAbbrev /\<\x\{4,39\}\.\.\./he=e-3 contained nextgroup=gitHashAbbrev skipwhite | 51 syn match gitHashAbbrev /\<\x\{4,39\}\.\.\./he=e-3 contained nextgroup=gitHashAbbrev skipwhite |
48 syn match gitHashAbbrev /\<\x\{40\}\>/ contained nextgroup=gitHashAbbrev skipwhite | 52 |
53 syn match gitIdentity /\S.\{-\} <[^>]*>/ contained nextgroup=gitDate skipwhite | |
54 syn region gitEmail matchgroup=gitEmailDelimiter start=/</ end=/>/ keepend oneline contained containedin=gitIdentity | |
55 | |
56 syn match gitNotesHeader /^Notes:\ze\n / | |
49 | 57 |
50 hi def link gitDateHeader gitIdentityHeader | 58 hi def link gitDateHeader gitIdentityHeader |
51 hi def link gitIdentityHeader gitIdentityKeyword | 59 hi def link gitIdentityHeader gitIdentityKeyword |
52 hi def link gitIdentityKeyword Label | 60 hi def link gitIdentityKeyword Label |
61 hi def link gitNotesHeader gitKeyword | |
53 hi def link gitReflogHeader gitKeyword | 62 hi def link gitReflogHeader gitKeyword |
54 hi def link gitKeyword Keyword | 63 hi def link gitKeyword Keyword |
55 hi def link gitIdentity String | 64 hi def link gitIdentity String |
56 hi def link gitEmailDelimiter Delimiter | 65 hi def link gitEmailDelimiter Delimiter |
57 hi def link gitEmail Special | 66 hi def link gitEmail Special |
61 hi def link gitHash Identifier | 70 hi def link gitHash Identifier |
62 hi def link gitReflogMiddle gitReference | 71 hi def link gitReflogMiddle gitReference |
63 hi def link gitReference Function | 72 hi def link gitReference Function |
64 hi def link gitStage gitType | 73 hi def link gitStage gitType |
65 hi def link gitType Type | 74 hi def link gitType Type |
75 hi def link gitDiffAdded diffAdded | |
76 hi def link gitDiffRemoved diffRemoved | |
66 | 77 |
67 let b:current_syntax = "git" | 78 let b:current_syntax = "git" |