Bram Moolenaar | 1514667 | 2011-10-20 22:22:38 +0200 | [diff] [blame] | 1 | " Vim syntax file |
| 2 | " Language: gitolite configuration |
Bram Moolenaar | 01164a6 | 2017-11-02 22:58:42 +0100 | [diff] [blame] | 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 |
Bram Moolenaar | 1514667 | 2011-10-20 22:22:38 +0200 | [diff] [blame] | 8 | |
| 9 | if exists("b:current_syntax") |
| 10 | finish |
| 11 | endif |
| 12 | |
Bram Moolenaar | b6b046b | 2011-12-30 13:11:27 +0100 | [diff] [blame] | 13 | let s:cpo_save = &cpo |
| 14 | set cpo&vim |
| 15 | |
Bram Moolenaar | 01164a6 | 2017-11-02 22:58:42 +0100 | [diff] [blame] | 16 | " this seems to be the best way, for now. |
| 17 | syntax sync fromstart |
Bram Moolenaar | 1514667 | 2011-10-20 22:22:38 +0200 | [diff] [blame] | 18 | |
Bram Moolenaar | 01164a6 | 2017-11-02 22:58:42 +0100 | [diff] [blame] | 19 | " ---- common stuff |
Bram Moolenaar | 1514667 | 2011-10-20 22:22:38 +0200 | [diff] [blame] | 20 | |
Bram Moolenaar | 01164a6 | 2017-11-02 22:58:42 +0100 | [diff] [blame] | 21 | syn match gitoliteGroup '@\S\+' |
Bram Moolenaar | 1514667 | 2011-10-20 22:22:38 +0200 | [diff] [blame] | 22 | |
Bram Moolenaar | 01164a6 | 2017-11-02 22:58:42 +0100 | [diff] [blame] | 23 | syn match gitoliteComment '#.*' contains=gitoliteTodo |
| 24 | syn keyword gitoliteTodo TODO FIXME XXX NOT contained |
Bram Moolenaar | 1514667 | 2011-10-20 22:22:38 +0200 | [diff] [blame] | 25 | |
Bram Moolenaar | 01164a6 | 2017-11-02 22:58:42 +0100 | [diff] [blame] | 26 | " ---- main section |
Bram Moolenaar | 1514667 | 2011-10-20 22:22:38 +0200 | [diff] [blame] | 27 | |
Bram Moolenaar | 01164a6 | 2017-11-02 22:58:42 +0100 | [diff] [blame] | 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 |
Bram Moolenaar | 1514667 | 2011-10-20 22:22:38 +0200 | [diff] [blame] | 31 | |
Bram Moolenaar | 01164a6 | 2017-11-02 22:58:42 +0100 | [diff] [blame] | 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 |
Bram Moolenaar | 1514667 | 2011-10-20 22:22:38 +0200 | [diff] [blame] | 36 | |
Bram Moolenaar | 01164a6 | 2017-11-02 22:58:42 +0100 | [diff] [blame] | 37 | syn keyword gitoliteSpecialRepo CREATOR |
Bram Moolenaar | 1514667 | 2011-10-20 22:22:38 +0200 | [diff] [blame] | 38 | |
Bram Moolenaar | 01164a6 | 2017-11-02 22:58:42 +0100 | [diff] [blame] | 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 |
Bram Moolenaar | 1514667 | 2011-10-20 22:22:38 +0200 | [diff] [blame] | 47 | |
Bram Moolenaar | 01164a6 | 2017-11-02 22:58:42 +0100 | [diff] [blame] | 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 |
Bram Moolenaar | 1514667 | 2011-10-20 22:22:38 +0200 | [diff] [blame] | 53 | |
Bram Moolenaar | 01164a6 | 2017-11-02 22:58:42 +0100 | [diff] [blame] | 54 | " ---- template-data section |
Bram Moolenaar | 1514667 | 2011-10-20 22:22:38 +0200 | [diff] [blame] | 55 | |
Bram Moolenaar | 01164a6 | 2017-11-02 22:58:42 +0100 | [diff] [blame] | 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 |
Bram Moolenaar | 1514667 | 2011-10-20 22:22:38 +0200 | [diff] [blame] | 90 | |
| 91 | let b:current_syntax = "gitolite" |
Bram Moolenaar | b6b046b | 2011-12-30 13:11:27 +0100 | [diff] [blame] | 92 | |
| 93 | let &cpo = s:cpo_save |
| 94 | unlet s:cpo_save |