11514667aSBram Moolenaar" Vim syntax file 21514667aSBram Moolenaar" Language: gitolite configuration 3*01164a65SBram Moolenaar" URL: https://github.com/sitaramc/gitolite/blob/master/contrib/vim/syntax/gitolite.vim 4*01164a65SBram Moolenaar" (https://raw.githubusercontent.com/sitaramc/gitolite/master/contrib/vim/syntax/gitolite.vim) 5*01164a65SBram Moolenaar" Maintainer: Sitaram Chamarty <[email protected]> 6*01164a65SBram Moolenaar" (former Maintainer: Teemu Matilainen <[email protected]>) 7*01164a65SBram Moolenaar" Last Change: 2017 Oct 05 81514667aSBram Moolenaar 91514667aSBram Moolenaarif exists("b:current_syntax") 101514667aSBram Moolenaar finish 111514667aSBram Moolenaarendif 121514667aSBram Moolenaar 13b6b046b2SBram Moolenaarlet s:cpo_save = &cpo 14b6b046b2SBram Moolenaarset cpo&vim 15b6b046b2SBram Moolenaar 16*01164a65SBram Moolenaar" this seems to be the best way, for now. 17*01164a65SBram Moolenaarsyntax sync fromstart 18*01164a65SBram Moolenaar 19*01164a65SBram Moolenaar" ---- common stuff 20*01164a65SBram Moolenaar 21*01164a65SBram Moolenaarsyn match gitoliteGroup '@\S\+' 22*01164a65SBram Moolenaar 23*01164a65SBram Moolenaarsyn match gitoliteComment '#.*' contains=gitoliteTodo 241514667aSBram Moolenaarsyn keyword gitoliteTodo TODO FIXME XXX NOT contained 251514667aSBram Moolenaar 26*01164a65SBram Moolenaar" ---- main section 271514667aSBram Moolenaar 28*01164a65SBram Moolenaar" catch template-data syntax appearing outside template-data section 29*01164a65SBram Moolenaarsyn match gitoliteRepoError '^\s*repo.*=' 30*01164a65SBram Moolenaarsyn match gitoliteRepoError '^\s*\S\+\s*=' " this gets overridden later when first word is a perm, don't worry 311514667aSBram Moolenaar 32*01164a65SBram Moolenaar" normal gitolite group and repo lines 33*01164a65SBram Moolenaarsyn match gitoliteGroupLine '^\s*@\S\+\s*=\s*\S.*$' contains=gitoliteGroup,gitoliteComment 34*01164a65SBram Moolenaarsyn match gitoliteRepoLine '^\s*repo\s\+[^=]*$' contains=gitoliteRepo,gitoliteGroup,gitoliteComment 35*01164a65SBram Moolenaarsyn keyword gitoliteRepo repo contained 361514667aSBram Moolenaar 37*01164a65SBram Moolenaarsyn keyword gitoliteSpecialRepo CREATOR 381514667aSBram Moolenaar 39*01164a65SBram Moolenaar" normal gitolite rule lines 40*01164a65SBram Moolenaarsyn match gitoliteRuleLine '^\s*\(-\|C\|R\|RW+\?C\?D\?\)\s[^#]*' contains=gitoliteRule,gitoliteCreateRule,gitoliteDenyRule,gitoliteRefex,gitoliteUsers,gitoliteGroup 41*01164a65SBram Moolenaarsyn match gitoliteRule '\(^\s*\)\@<=\(-\|C\|R\|RW+\?C\?D\?\)\s\@=' contained 42*01164a65SBram Moolenaarsyn match gitoliteRefex '\(^\s*\(-\|R\|RW+\?C\?D\?\)\s\+\)\@<=\S.\{-}\(\s*=\)\@=' contains=gitoliteSpecialRefex 43*01164a65SBram Moolenaarsyn match gitoliteSpecialRefex 'NAME/' 44*01164a65SBram Moolenaarsyn match gitoliteSpecialRefex '/USER/' 45*01164a65SBram Moolenaarsyn match gitoliteCreateRule '\(^\s*C\s.*=\s*\)\@<=\S[^#]*[^# ]' contained contains=gitoliteGroup 46*01164a65SBram Moolenaarsyn match gitoliteDenyRule '\(^\s*-\s.*=\s*\)\@<=\S[^#]*[^# ]' contained 471514667aSBram Moolenaar 48*01164a65SBram Moolenaar" normal gitolite config (and similar) lines 49*01164a65SBram Moolenaarsyn match gitoliteConfigLine '^\s*\(config\|option\|include\|subconf\)\s[^#]*' contains=gitoliteConfigKW,gitoliteConfigKey,gitoliteConfigVal,gitoliteComment 50*01164a65SBram Moolenaarsyn keyword gitoliteConfigKW config option include subconf contained 51*01164a65SBram Moolenaarsyn match gitoliteConfigKey '\(\(config\|option\)\s\+\)\@<=[^ =]*' contained 52*01164a65SBram Moolenaarsyn match gitoliteConfigVal '\(=\s*\)\@<=\S.*' contained 531514667aSBram Moolenaar 54*01164a65SBram Moolenaar" ---- template-data section 551514667aSBram Moolenaar 56*01164a65SBram Moolenaarsyn region gitoliteTemplateLine matchgroup=PreProc start='^=begin template-data$' end='^=end$' contains=gitoliteTplRepoLine,gitoliteTplRoleLine,gitoliteGroup,gitoliteComment,gitoliteTplError 571514667aSBram Moolenaar 58*01164a65SBram Moolenaarsyn match gitoliteTplRepoLine '^\s*repo\s\+\S.*=.*' contained contains=gitoliteTplRepo,gitoliteTplTemplates,gitoliteGroup 59*01164a65SBram Moolenaarsyn keyword gitoliteTplRepo repo contained 60*01164a65SBram Moolenaarsyn match gitoliteTplTemplates '\(=\s*\)\@<=\S.*' contained contains=gitoliteGroup,gitoliteComment 611514667aSBram Moolenaar 62*01164a65SBram Moolenaarsyn match gitoliteTplRoleLine '^\s*\S\+\s*=\s*.*' contained contains=gitoliteTplRole,gitoliteGroup,gitoliteComment 63*01164a65SBram Moolenaarsyn match gitoliteTplRole '\S\+\s*='he=e-1 contained 641514667aSBram Moolenaar 65*01164a65SBram Moolenaar" catch normal gitolite rules appearing in template-data section 66*01164a65SBram Moolenaarsyn match gitoliteTplError '^\s*repo[^=]*$' contained 67*01164a65SBram Moolenaarsyn match gitoliteTplError '^\s*\(-\|R\|RW+\?C\?D\?\)\s'he=e-1 contained 68*01164a65SBram Moolenaarsyn match gitoliteTplError '^\s*\(config\|option\|include\|subconf\)\s'he=e-1 contained 69*01164a65SBram Moolenaarsyn match gitoliteTplError '^\s*@\S\+\s*=' contained contains=NONE 70*01164a65SBram Moolenaar 711514667aSBram Moolenaarhi def link gitoliteGroup Identifier 72*01164a65SBram Moolenaarhi def link gitoliteComment Comment 73*01164a65SBram Moolenaarhi def link gitoliteTodo ToDo 74*01164a65SBram Moolenaarhi def link gitoliteRepoError Error 75*01164a65SBram Moolenaarhi def link gitoliteGroupLine PreProc 76*01164a65SBram Moolenaarhi def link gitoliteRepo Keyword 77*01164a65SBram Moolenaarhi def link gitoliteSpecialRepo PreProc 78*01164a65SBram Moolenaarhi def link gitoliteRule Keyword 79*01164a65SBram Moolenaarhi def link gitoliteCreateRule PreProc 80*01164a65SBram Moolenaarhi def link gitoliteDenyRule WarningMsg 81*01164a65SBram Moolenaarhi def link gitoliteRefex Constant 821514667aSBram Moolenaarhi def link gitoliteSpecialRefex PreProc 83*01164a65SBram Moolenaarhi def link gitoliteConfigKW Keyword 84*01164a65SBram Moolenaarhi def link gitoliteConfigKey Identifier 85*01164a65SBram Moolenaarhi def link gitoliteConfigVal String 86*01164a65SBram Moolenaarhi def link gitoliteTplRepo Keyword 87*01164a65SBram Moolenaarhi def link gitoliteTplTemplates Constant 88*01164a65SBram Moolenaarhi def link gitoliteTplRole Constant 89*01164a65SBram Moolenaarhi def link gitoliteTplError Error 901514667aSBram Moolenaar 911514667aSBram Moolenaarlet b:current_syntax = "gitolite" 92b6b046b2SBram Moolenaar 93b6b046b2SBram Moolenaarlet &cpo = s:cpo_save 94b6b046b2SBram Moolenaarunlet s:cpo_save 95