Bram Moolenaar | 864207d | 2008-06-24 22:14:38 +0000 | [diff] [blame] | 1 | " Vim syntax file |
| 2 | " Language: git config file |
Bram Moolenaar | 5c73622 | 2010-01-06 20:54:52 +0100 | [diff] [blame] | 3 | " Maintainer: Tim Pope <vimNOSPAM@tpope.org> |
Bram Moolenaar | 864207d | 2008-06-24 22:14:38 +0000 | [diff] [blame] | 4 | " Filenames: gitconfig, .gitconfig, *.git/config |
Bram Moolenaar | c08ee74 | 2019-12-05 22:47:25 +0100 | [diff] [blame] | 5 | " Last Change: 2019 Dec 05 |
Bram Moolenaar | 864207d | 2008-06-24 22:14:38 +0000 | [diff] [blame] | 6 | |
| 7 | if exists("b:current_syntax") |
Bram Moolenaar | 7a32991 | 2010-05-21 12:05:36 +0200 | [diff] [blame] | 8 | finish |
Bram Moolenaar | 864207d | 2008-06-24 22:14:38 +0000 | [diff] [blame] | 9 | endif |
| 10 | |
Bram Moolenaar | 864207d | 2008-06-24 22:14:38 +0000 | [diff] [blame] | 11 | syn case ignore |
| 12 | syn sync minlines=10 |
| 13 | |
Bram Moolenaar | 5be4cee | 2019-09-27 19:34:08 +0200 | [diff] [blame] | 14 | syn match gitconfigComment "[#;].*" contains=@Spell |
Bram Moolenaar | 864207d | 2008-06-24 22:14:38 +0000 | [diff] [blame] | 15 | syn match gitconfigSection "\%(^\s*\)\@<=\[[a-z0-9.-]\+\]" |
| 16 | syn match gitconfigSection '\%(^\s*\)\@<=\[[a-z0-9.-]\+ \+\"\%([^\\"]\|\\.\)*"\]' |
Bram Moolenaar | c08ee74 | 2019-12-05 22:47:25 +0100 | [diff] [blame] | 17 | syn match gitconfigVariable "\%(^\s*\)\@<=\a[a-z0-9-]*\%(\s*\%([=#;]\|$\)\)\@=" nextgroup=gitconfigAssignment skipwhite |
Bram Moolenaar | 864207d | 2008-06-24 22:14:38 +0000 | [diff] [blame] | 18 | syn region gitconfigAssignment matchgroup=gitconfigNone start=+=\s*+ skip=+\\+ end=+\s*$+ contained contains=gitconfigBoolean,gitconfigNumber,gitConfigString,gitConfigEscape,gitConfigError,gitconfigComment keepend |
| 19 | syn keyword gitconfigBoolean true false yes no contained |
Bram Moolenaar | c08ee74 | 2019-12-05 22:47:25 +0100 | [diff] [blame] | 20 | syn match gitconfigNumber "\<\d\+\>" contained |
Bram Moolenaar | 864207d | 2008-06-24 22:14:38 +0000 | [diff] [blame] | 21 | syn region gitconfigString matchgroup=gitconfigDelim start=+"+ skip=+\\+ end=+"+ matchgroup=gitconfigError end=+[^\\"]\%#\@!$+ contained contains=gitconfigEscape,gitconfigEscapeError |
| 22 | syn match gitconfigError +\\.+ contained |
| 23 | syn match gitconfigEscape +\\[\\"ntb]+ contained |
| 24 | syn match gitconfigEscape +\\$+ contained |
| 25 | |
| 26 | hi def link gitconfigComment Comment |
| 27 | hi def link gitconfigSection Keyword |
| 28 | hi def link gitconfigVariable Identifier |
| 29 | hi def link gitconfigBoolean Boolean |
| 30 | hi def link gitconfigNumber Number |
| 31 | hi def link gitconfigString String |
| 32 | hi def link gitconfigDelim Delimiter |
Bram Moolenaar | c08ee74 | 2019-12-05 22:47:25 +0100 | [diff] [blame] | 33 | hi def link gitconfigEscape Special |
Bram Moolenaar | 864207d | 2008-06-24 22:14:38 +0000 | [diff] [blame] | 34 | hi def link gitconfigError Error |
| 35 | |
| 36 | let b:current_syntax = "gitconfig" |