vim-polyglot/syntax/gitolite.vim
2017-09-27 20:43:42 +02:00

91 lines
3.6 KiB
VimL

if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1
" Vim syntax file
" Language: gitolite configuration
" URL: https://github.com/tmatilai/gitolite.vim
" Maintainer: Teemu Matilainen <teemu.matilainen@iki.fi>
" Last Change: 2011-12-25
if exists("b:current_syntax")
finish
endif
let s:cpo_save = &cpo
set cpo&vim
" Comment
syn match gitoliteComment "\(^\|\s\)#.*" contains=gitoliteTodo
syn keyword gitoliteTodo TODO FIXME XXX NOT contained
" Groups, users and repos
syn match gitoliteGroupDef "\(^\s*\)\@<=@[^=]\{-1,}\(\s*=\)\@=" contains=gitoliteSpaceError,gitoliteUserError nextgroup=gitoliteGroupDefSep
syn match gitoliteGroupDefSep "\s*=" contained nextgroup=gitoliteRepoLine
syn match gitoliteRepoDef "^\s*repo\s" nextgroup=gitoliteRepoLine
syn match gitoliteRepoLine ".*" contained transparent contains=gitoliteGroup,gitoliteWildRepo,gitoliteCreator,gitoliteExtCmdHelper,gitoliteRepoError,gitoliteComment
syn match gitoliteUserLine ".*" contained transparent contains=gitoliteGroup,gitolitePreProc,gitoliteUserError,gitoliteComment
syn match gitoliteWildRepo "[ \t=]\@<=[^ \t]*[\\^$|()[\]*?{},][^ \t]*" contained contains=gitoliteCreator,gitoliteRepoError
syn match gitoliteGroup "[ \t=]\@<=@[^ \t]\+" contained contains=gitoliteUserError
syn keyword gitoliteCreator CREATER CREATOR contained
syn keyword gitolitePreProc CREATER CREATOR READERS WRITERS contained
syn match gitoliteExtCmdHelper "[ \t=]\@<=EXTCMD/" contained nextgroup=gitoliteExtCmd
syn match gitoliteExtCmd "rsync\(\s\|$\)" contained
" Illegal characters
syn match gitoliteRepoError "[^ \t0-9a-zA-Z._@+/\\^$|()[\]*?{},-]\+" contained
syn match gitoliteUserError "[^ \t0-9a-zA-Z._@+-]\+" contained
syn match gitoliteSpaceError "\s\+" contained
" Permission
syn match gitoliteKeyword "^\s*\(C\|R\|RW\|RW+\|RWC\|RW+C\|RWD\|RW+D\|RWCD\|RW+CD\)[ \t=]\@=" nextgroup=gitoliteRefex
syn match gitoliteKeyword "^\s*-[ \t=]\@=" nextgroup=gitoliteDenyRefex
syn match gitoliteRefex "[^=]*="he=e-1 contained contains=gitoliteSpecialRefex,gitoliteGroup nextgroup=gitoliteUserLine
syn match gitoliteDenyRefex "[^=]*="he=e-1 contained contains=gitoliteSpecialRefex,gitoliteGroup nextgroup=gitoliteDenyUsers
syn match gitoliteSpecialRefex "\sNAME/"he=e-1 contained
syn match gitoliteSpecialRefex "/USER/"hs=s+1,he=e-1 contained
syn match gitoliteDenyUsers ".*" contained contains=gitoliteUserError,gitoliteComment
" Configuration
syn match gitoliteKeyword "^\s*config\s\+" nextgroup=gitoliteConfVariable
syn match gitoliteConfVariable "[^=]*" contained
" Include
syn match gitoliteInclude "^\s*\(include\|subconf\)\s"
" String
syn region gitoliteString start=+"+ end=+"+ oneline
" Define the default highlighting
hi def link gitoliteComment Comment
hi def link gitoliteTodo Todo
hi def link gitoliteGroupDef gitoliteGroup
hi def link gitoliteGroup Identifier
hi def link gitoliteWildRepo Special
hi def link gitoliteRepoError gitoliteError
hi def link gitoliteUserError gitoliteError
hi def link gitoliteSpaceError gitoliteError
hi def link gitoliteError Error
hi def link gitoliteCreator gitolitePreProc
hi def link gitolitePreProc PreProc
hi def link gitoliteExtCmdHelper PreProc
hi def link gitoliteExtCmd Special
hi def link gitoliteRepoDef Type
hi def link gitoliteKeyword Keyword
hi def link gitoliteRefex String
hi def link gitoliteDenyRefex gitoliteRefex
hi def link gitoliteSpecialRefex PreProc
hi def link gitoliteDenyUsers WarningMsg
hi def link gitoliteConfVariable Identifier
hi def link gitoliteInclude Include
hi def link gitoliteString String
let b:current_syntax = "gitolite"
let &cpo = s:cpo_save
unlet s:cpo_save
endif