gitconfig.vim 1.6 KB

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