blob: e5eaf10f94c6f8b2fc03138aac23ddfeb9ca246f [file] [log] [blame]
Bram Moolenaar864207d2008-06-24 22:14:38 +00001" Vim syntax file
2" Language: git config file
Bram Moolenaar5c736222010-01-06 20:54:52 +01003" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
Bram Moolenaar864207d2008-06-24 22:14:38 +00004" Filenames: gitconfig, .gitconfig, *.git/config
Bram Moolenaarc08ee742019-12-05 22:47:25 +01005" Last Change: 2019 Dec 05
Bram Moolenaar864207d2008-06-24 22:14:38 +00006
7if exists("b:current_syntax")
Bram Moolenaar7a329912010-05-21 12:05:36 +02008 finish
Bram Moolenaar864207d2008-06-24 22:14:38 +00009endif
10
Bram Moolenaar864207d2008-06-24 22:14:38 +000011syn case ignore
12syn sync minlines=10
13
Bram Moolenaar5be4cee2019-09-27 19:34:08 +020014syn match gitconfigComment "[#;].*" contains=@Spell
Bram Moolenaar864207d2008-06-24 22:14:38 +000015syn match gitconfigSection "\%(^\s*\)\@<=\[[a-z0-9.-]\+\]"
16syn match gitconfigSection '\%(^\s*\)\@<=\[[a-z0-9.-]\+ \+\"\%([^\\"]\|\\.\)*"\]'
Bram Moolenaarc08ee742019-12-05 22:47:25 +010017syn match gitconfigVariable "\%(^\s*\)\@<=\a[a-z0-9-]*\%(\s*\%([=#;]\|$\)\)\@=" nextgroup=gitconfigAssignment skipwhite
Bram Moolenaar864207d2008-06-24 22:14:38 +000018syn region gitconfigAssignment matchgroup=gitconfigNone start=+=\s*+ skip=+\\+ end=+\s*$+ contained contains=gitconfigBoolean,gitconfigNumber,gitConfigString,gitConfigEscape,gitConfigError,gitconfigComment keepend
19syn keyword gitconfigBoolean true false yes no contained
Bram Moolenaarc08ee742019-12-05 22:47:25 +010020syn match gitconfigNumber "\<\d\+\>" contained
Bram Moolenaar864207d2008-06-24 22:14:38 +000021syn region gitconfigString matchgroup=gitconfigDelim start=+"+ skip=+\\+ end=+"+ matchgroup=gitconfigError end=+[^\\"]\%#\@!$+ contained contains=gitconfigEscape,gitconfigEscapeError
22syn match gitconfigError +\\.+ contained
23syn match gitconfigEscape +\\[\\"ntb]+ contained
24syn match gitconfigEscape +\\$+ contained
25
26hi def link gitconfigComment Comment
27hi def link gitconfigSection Keyword
28hi def link gitconfigVariable Identifier
29hi def link gitconfigBoolean Boolean
30hi def link gitconfigNumber Number
31hi def link gitconfigString String
32hi def link gitconfigDelim Delimiter
Bram Moolenaarc08ee742019-12-05 22:47:25 +010033hi def link gitconfigEscape Special
Bram Moolenaar864207d2008-06-24 22:14:38 +000034hi def link gitconfigError Error
35
36let b:current_syntax = "gitconfig"