neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

gitolite.vim (4454B)


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