xref: /vim-8.2.3635/runtime/syntax/gitolite.vim (revision 01164a65)
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