xref: /vim-8.2.3635/runtime/syntax/gitconfig.vim (revision 2387773d)
1" Vim syntax file
2" Language:	git config file
3" Maintainer:	Tim Pope <[email protected]>
4" Filenames:	gitconfig, .gitconfig, *.git/config
5" Last Change:	2019 Dec 05
6
7if exists("b:current_syntax")
8  finish
9endif
10
11syn case ignore
12syn sync minlines=10
13
14syn match   gitconfigComment	"[#;].*" contains=@Spell
15syn match   gitconfigSection	"\%(^\s*\)\@<=\[[a-z0-9.-]\+\]"
16syn match   gitconfigSection	'\%(^\s*\)\@<=\[[a-z0-9.-]\+ \+\"\%([^\\"]\|\\.\)*"\]'
17syn match   gitconfigVariable	"\%(^\s*\)\@<=\a[a-z0-9-]*\%(\s*\%([=#;]\|$\)\)\@=" nextgroup=gitconfigAssignment skipwhite
18syn 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
20syn match   gitconfigNumber  "\<\d\+\>" contained
21syn 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
33hi def link gitconfigEscape		Special
34hi def link gitconfigError		Error
35
36let b:current_syntax = "gitconfig"
37