xref: /vim-8.2.3635/runtime/syntax/gitolite.vim (revision 01164a65)
1" Vim syntax file
2" Language:	gitolite configuration
3" URL:		https://github.com/sitaramc/gitolite/blob/master/contrib/vim/syntax/gitolite.vim
4"	(https://raw.githubusercontent.com/sitaramc/gitolite/master/contrib/vim/syntax/gitolite.vim)
5" Maintainer:	Sitaram Chamarty <[email protected]>
6" (former Maintainer:	Teemu Matilainen <[email protected]>)
7" Last Change:	2017 Oct 05
8
9if exists("b:current_syntax")
10  finish
11endif
12
13let s:cpo_save = &cpo
14set cpo&vim
15
16" this seems to be the best way, for now.
17syntax sync fromstart
18
19" ---- common stuff
20
21syn match   gitoliteGroup           '@\S\+'
22
23syn match   gitoliteComment         '#.*' contains=gitoliteTodo
24syn keyword gitoliteTodo            TODO FIXME XXX NOT contained
25
26" ---- main section
27
28" catch template-data syntax appearing outside template-data section
29syn match   gitoliteRepoError       '^\s*repo.*='
30syn match   gitoliteRepoError       '^\s*\S\+\s*='  " this gets overridden later when first word is a perm, don't worry
31
32" normal gitolite group and repo lines
33syn match   gitoliteGroupLine       '^\s*@\S\+\s*=\s*\S.*$' contains=gitoliteGroup,gitoliteComment
34syn match   gitoliteRepoLine        '^\s*repo\s\+[^=]*$' contains=gitoliteRepo,gitoliteGroup,gitoliteComment
35syn keyword gitoliteRepo            repo contained
36
37syn keyword gitoliteSpecialRepo     CREATOR
38
39" normal gitolite rule lines
40syn match   gitoliteRuleLine        '^\s*\(-\|C\|R\|RW+\?C\?D\?\)\s[^#]*' contains=gitoliteRule,gitoliteCreateRule,gitoliteDenyRule,gitoliteRefex,gitoliteUsers,gitoliteGroup
41syn match   gitoliteRule            '\(^\s*\)\@<=\(-\|C\|R\|RW+\?C\?D\?\)\s\@=' contained
42syn match   gitoliteRefex           '\(^\s*\(-\|R\|RW+\?C\?D\?\)\s\+\)\@<=\S.\{-}\(\s*=\)\@=' contains=gitoliteSpecialRefex
43syn match   gitoliteSpecialRefex    'NAME/'
44syn match   gitoliteSpecialRefex    '/USER/'
45syn match   gitoliteCreateRule      '\(^\s*C\s.*=\s*\)\@<=\S[^#]*[^# ]' contained contains=gitoliteGroup
46syn match   gitoliteDenyRule        '\(^\s*-\s.*=\s*\)\@<=\S[^#]*[^# ]' contained
47
48" normal gitolite config (and similar) lines
49syn match   gitoliteConfigLine      '^\s*\(config\|option\|include\|subconf\)\s[^#]*' contains=gitoliteConfigKW,gitoliteConfigKey,gitoliteConfigVal,gitoliteComment
50syn keyword gitoliteConfigKW        config option include subconf contained
51syn match   gitoliteConfigKey       '\(\(config\|option\)\s\+\)\@<=[^ =]*' contained
52syn match   gitoliteConfigVal       '\(=\s*\)\@<=\S.*' contained
53
54" ---- template-data section
55
56syn region  gitoliteTemplateLine    matchgroup=PreProc start='^=begin template-data$' end='^=end$' contains=gitoliteTplRepoLine,gitoliteTplRoleLine,gitoliteGroup,gitoliteComment,gitoliteTplError
57
58syn match   gitoliteTplRepoLine     '^\s*repo\s\+\S.*=.*' contained contains=gitoliteTplRepo,gitoliteTplTemplates,gitoliteGroup
59syn keyword gitoliteTplRepo         repo contained
60syn match   gitoliteTplTemplates    '\(=\s*\)\@<=\S.*' contained contains=gitoliteGroup,gitoliteComment
61
62syn match   gitoliteTplRoleLine     '^\s*\S\+\s*=\s*.*' contained contains=gitoliteTplRole,gitoliteGroup,gitoliteComment
63syn match   gitoliteTplRole         '\S\+\s*='he=e-1 contained
64
65" catch normal gitolite rules appearing in template-data section
66syn match   gitoliteTplError        '^\s*repo[^=]*$' contained
67syn match   gitoliteTplError        '^\s*\(-\|R\|RW+\?C\?D\?\)\s'he=e-1 contained
68syn match   gitoliteTplError        '^\s*\(config\|option\|include\|subconf\)\s'he=e-1 contained
69syn match   gitoliteTplError        '^\s*@\S\+\s*=' contained contains=NONE
70
71hi def link gitoliteGroup           Identifier
72hi def link gitoliteComment         Comment
73hi def link gitoliteTodo            ToDo
74hi def link gitoliteRepoError       Error
75hi def link gitoliteGroupLine       PreProc
76hi def link gitoliteRepo            Keyword
77hi def link gitoliteSpecialRepo     PreProc
78hi def link gitoliteRule            Keyword
79hi def link gitoliteCreateRule      PreProc
80hi def link gitoliteDenyRule        WarningMsg
81hi def link gitoliteRefex           Constant
82hi def link gitoliteSpecialRefex    PreProc
83hi def link gitoliteConfigKW        Keyword
84hi def link gitoliteConfigKey       Identifier
85hi def link gitoliteConfigVal       String
86hi def link gitoliteTplRepo         Keyword
87hi def link gitoliteTplTemplates    Constant
88hi def link gitoliteTplRole         Constant
89hi def link gitoliteTplError        Error
90
91let b:current_syntax = "gitolite"
92
93let &cpo = s:cpo_save
94unlet s:cpo_save
95