summaryrefslogtreecommitdiff
path: root/.vim/syntax/git.vim
diff options
context:
space:
mode:
Diffstat (limited to '.vim/syntax/git.vim')
-rw-r--r--.vim/syntax/git.vim36
1 files changed, 36 insertions, 0 deletions
diff --git a/.vim/syntax/git.vim b/.vim/syntax/git.vim
new file mode 100644
index 0000000..81cddb8
--- /dev/null
+++ b/.vim/syntax/git.vim
@@ -0,0 +1,36 @@
+" Vim syntax file
+" Language: git commit message
+
+" Quit when a (custom) syntax file was already loaded
+if exists("b:current_syntax")
+ finish
+endif
+
+syn region gitSignedOff start=/^Signed-off-by:/ end=/$/ contains=gitAuthor,gitEmail
+syn region gitAuthor contained start=/\s/ end=/$/
+
+syn region gitLine start=/^#/ end=/$/
+syn region gitCommit start=/^# Changes to be committed:$/ end=/^#$/ contains=gitHead,gitCommitFile
+syn region gitHead contained start=/^# (.*)/ end=/^#$/
+syn region gitChanged start=/^# Changed but not updated:/ end=/^#$/ contains=gitHead,gitChangedFile
+syn region gitUntracked start=/^# Untracked files:/ end=/^#$/ contains=gitHead,gitUntrackedFile
+
+syn match gitCommitFile contained /^#\t.*/hs=s+2
+syn match gitChangedFile contained /^#\t.*/hs=s+2
+syn match gitUntrackedFile contained /^#\t.*/hs=s+2
+
+hi def link gitSignedOff Keyword
+hi def link gitAuthor Normal
+
+hi def link gitLine Comment
+hi def link gitCommit Comment
+hi def link gitChanged Comment
+hi def link gitHead Comment
+hi def link gitUntracked Comment
+hi def link gitCommitFile Type
+hi def link gitChangedFile Constant
+hi def link gitUntrackedFile Constant
+
+let b:current_syntax = "git"
+
+" vim: ts=8 sw=2