├── .gitignore ├── README.md ├── after └── ftplugin │ └── puppet.vim ├── ftdetect └── puppet.vim ├── ftplugin └── puppet.vim ├── indent └── puppet.vim └── syntax └── puppet.vim /.gitignore: -------------------------------------------------------------------------------- 1 | .idea/ 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | **THIS PLUGIN IS NO LONGER MAINTAINED!** 2 | 3 | **PLEASE USE @rodjek's PLUGIN FOUND AT https://github.com/rodjek/vim-puppet** 4 | -------------------------------------------------------------------------------- /after/ftplugin/puppet.vim: -------------------------------------------------------------------------------- 1 | if !exists('g:puppet_align_hashes') 2 | let g:puppet_align_hashes = 1 3 | endif 4 | 5 | if g:puppet_align_hashes && exists(':Tabularize') 6 | inoremap > >:call puppetalign()a 7 | function! s:puppetalign() 8 | let p = '^\s*\w+\s*[=+]>.*$' 9 | let column = strlen(substitute(getline('.')[0:col('.')],'\([^=]\|=[^>]\)','','g')) 10 | let position = strlen(matchstr(getline('.')[0:col('.')],'.*=>\s*\zs.*')) 11 | Tabularize /=>/l1 12 | normal! 0 13 | echo repeat('\([^=]\|=[^>]\)*=>',column).'\s\{-\}'.repeat('.',position) 14 | call search(repeat('\([^=]\|=[^>]\)*=>',column).'\s\{-\}'.repeat('.',position),'ce',line('.')) 15 | endfunction 16 | endif 17 | -------------------------------------------------------------------------------- /ftdetect/puppet.vim: -------------------------------------------------------------------------------- 1 | au! BufRead,BufNewFile *.pp setfiletype puppet 2 | au! BufRead,BufNewFile Puppetfile setfiletype ruby 3 | -------------------------------------------------------------------------------- /ftplugin/puppet.vim: -------------------------------------------------------------------------------- 1 | setl ts=2 2 | setl sts=2 3 | setl sw=2 4 | setl et 5 | setl keywordprg=puppet\ describe\ --providers 6 | setl iskeyword=-,:,@,48-57,_,192-255 7 | setl cms=#\ %s 8 | -------------------------------------------------------------------------------- /indent/puppet.vim: -------------------------------------------------------------------------------- 1 | " Vim indent file 2 | " Language: Puppet 3 | " Maintainer: Todd Zullinger 4 | " Last Change: 2009 Aug 19 5 | " vim: set sw=4 sts=4: 6 | 7 | if exists("b:did_indent") 8 | finish 9 | endif 10 | let b:did_indent = 1 11 | 12 | setlocal autoindent smartindent 13 | setlocal indentexpr=GetPuppetIndent() 14 | setlocal indentkeys+=0],0) 15 | 16 | if exists("*GetPuppetIndent") 17 | finish 18 | endif 19 | 20 | " Check if a line is part of an include 'block', e.g.: 21 | " include foo, 22 | " bar, 23 | " baz 24 | function! s:PartOfInclude(lnum) 25 | let lnum = a:lnum 26 | while lnum 27 | let lnum = lnum - 1 28 | let line = getline(lnum) 29 | if line !~ ',$' 30 | break 31 | endif 32 | if line =~ '^\s*include\s\+[^,]\+,$' 33 | return 1 34 | endif 35 | endwhile 36 | return 0 37 | endfunction 38 | 39 | function! s:OpenBrace(lnum) 40 | call cursor(a:lnum, 1) 41 | return searchpair('{\|\[\|(', '', '}\|\]\|)', 'nbW') 42 | endfunction 43 | 44 | function! GetPuppetIndent() 45 | let pnum = prevnonblank(v:lnum - 1) 46 | if pnum == 0 47 | return 0 48 | endif 49 | 50 | let line = getline(v:lnum) 51 | let pline = getline(pnum) 52 | let ind = indent(pnum) 53 | 54 | if pline =~ '\({\|\[\|(\|:\)\s*\(#.*\)\?$' 55 | let ind += &sw 56 | elseif pline =~ ';$' && pline !~ '[^:]\+:.*[=+]>.*' 57 | let ind -= &sw 58 | elseif pline =~ '^\s*include\s\+.*,$' 59 | let ind += &sw 60 | endif 61 | 62 | if pline !~ ',$' && s:PartOfInclude(pnum) 63 | let ind -= &sw 64 | endif 65 | 66 | " Match } }, }; ] ]: ], ]; ) 67 | if line =~ '^\s*\(}\(,\|;\)\?$\|]:\|],\|}]\|];\?$\|)\)' 68 | let ind = indent(s:OpenBrace(v:lnum)) 69 | endif 70 | 71 | " Don't actually shift over for } else { 72 | if line =~ '^\s*}\s*els\(e\|if\).*{\s*$' 73 | let ind -= &sw 74 | endif 75 | 76 | " Don't indent resources that are one after another with a ->(ordering arrow) 77 | " file {'somefile': 78 | " ... 79 | " } -> 80 | " 81 | " package { 'mycoolpackage': 82 | " ... 83 | " } 84 | if line =~ '->$' 85 | let ind -= &sw 86 | endif 87 | 88 | 89 | return ind 90 | endfunction 91 | -------------------------------------------------------------------------------- /syntax/puppet.vim: -------------------------------------------------------------------------------- 1 | " Language: Puppet 2 | " Maintainer: Voxpupuli 3 | " URL: https://github.com/voxpupuli/vim-puppet 4 | " 5 | " Thanks to Doug Kearns who maintains the vim syntax file for Ruby. Many constructs, including interpolation 6 | " and heredoc was copied from ruby and then modified to comply with Puppet syntax. 7 | 8 | " Prelude {{{1 9 | if exists("b:current_syntax") 10 | finish 11 | endif 12 | 13 | " this file uses line continuations 14 | let s:cpo_sav = &cpo 15 | set cpo&vim 16 | 17 | syn cluster puppetNotTop contains=@puppetExtendedStringSpecial,@puppetRegexpSpecial,@puppetDeclaration,puppetConditional,puppetExceptional,puppetMethodExceptional,puppetTodo 18 | 19 | syn match puppetSpaceError display excludenl "\s\+$" 20 | syn match puppetSpaceError display " \+\t"me=e-1 21 | 22 | " one character operators 23 | syn match puppetOperator "[=><+/*%!.|@:,;?~-]" 24 | 25 | " two character operators 26 | syn match puppetOperator "+=\|-=\|==\|!=\|=\~\|!\~\|>=\|<=\|<-\|<\~\|=>\|+>\|->\|\~>\|<<\||>\|@@" 27 | 28 | " three character operators 29 | syn match puppetOperator "<<|\||>>" 30 | 31 | syn region puppetBracketOperator matchgroup=puppetDelimiter start="\[\s*" end="\s*]" contains=ALLBUT,@puppetNotTop 32 | syn region puppetBraceOperator matchgroup=puppetDelimiter start="{\s*" end="\s*}" contains=ALLBUT,@puppetNotTop 33 | syn region puppetParenOperator matchgroup=puppetDelimiter start="(\s*" end="\s*)" contains=ALLBUT,@puppetNotTop 34 | 35 | " Expression Substitution and Backslash Notation {{{1 36 | syn match puppetStringEscape "\\\\\|\\[abefnrstv]\|\\\o\{1,3}\|\\x\x\{1,2}" contained display 37 | syn match puppetStringEscape "\%(\\M-\\C-\|\\C-\\M-\|\\M-\\c\|\\c\\M-\|\\c\|\\C-\|\\M-\)\%(\\\o\{1,3}\|\\x\x\{1,2}\|\\\=\S\)" contained display 38 | syn match puppetQuoteEscape "\\[\\']" contained display 39 | 40 | syn region puppetInterpolation matchgroup=puppetInterpolationDelimiter start="${" end="}" contained contains=ALLBUT,@puppetNotTop 41 | syn match puppetInterpolation "$\w\+" display contained contains=puppetInterpolationDelimiter,puppetVariable 42 | syn match puppetInterpolationDelimiter "$\ze\$\w\+" display contained 43 | syn match puppetInterpolation "$\$\%(-\w\|\W\)" display contained contains=puppetInterpolationDelimiter,puppetVariable,puppetInvalidVariable 44 | syn match puppetInterpolationDelimiter "$\ze\$\%(-\w\|\W\)" display contained 45 | syn region puppetNoInterpolation start="\\${" end="}" contained 46 | syn match puppetNoInterpolation "\\${" display contained 47 | syn match puppetNoInterpolation "\\$\w\+" display contained 48 | 49 | syn match puppetDelimiterEscape "\\[(<{\[)>}\]]" transparent display contained contains=NONE 50 | 51 | syn region puppetNestedParentheses start="(" skip="\\\\\|\\)" matchgroup=puppetString end=")" transparent contained 52 | syn region puppetNestedCurlyBraces start="{" skip="\\\\\|\\}" matchgroup=puppetString end="}" transparent contained 53 | syn region puppetNestedAngleBrackets start="<" skip="\\\\\|\\>" matchgroup=puppetString end=">" transparent contained 54 | syn region puppetNestedSquareBrackets start="\[" skip="\\\\\|\\\]" matchgroup=puppetString end="\]" transparent contained 55 | 56 | " Regular Expression Metacharacters {{{1 57 | " These are mostly Oniguruma ready 58 | syn region puppetRegexpComment matchgroup=puppetRegexpSpecial start="(?#" skip="\\)" end=")" contained 59 | syn region puppetRegexpParens matchgroup=puppetRegexpSpecial start="(\(?:\|?<\=[=!]\|?>\|?<[a-z_]\w*>\|?[imx]*-[imx]*:\=\|\%(?#\)\@!\)" skip="\\)" end=")" contained transparent contains=@puppetRegexpSpecial 60 | syn region puppetRegexpBrackets matchgroup=puppetRegexpCharClass start="\[\^\=" skip="\\\]" end="\]" contained transparent contains=puppetStringEscape,puppetRegexpEscape,puppetRegexpCharClass oneline 61 | syn match puppetRegexpCharClass "\\[DdHhSsWw]" contained display 62 | syn match puppetRegexpCharClass "\[:\^\=\%(alnum\|alpha\|ascii\|blank\|cntrl\|digit\|graph\|lower\|print\|punct\|space\|upper\|xdigit\):\]" contained 63 | syn match puppetRegexpEscape "\\[].*?+^$|\\/(){}[]" contained 64 | syn match puppetRegexpQuantifier "[*?+][?+]\=" contained display 65 | syn match puppetRegexpQuantifier "{\d\+\%(,\d*\)\=}?\=" contained display 66 | syn match puppetRegexpAnchor "[$^]\|\\[ABbGZz]" contained display 67 | syn match puppetRegexpDot "\." contained display 68 | syn match puppetRegexpSpecial "|" contained display 69 | syn match puppetRegexpSpecial "\\[1-9]\d\=\d\@!" contained display 70 | syn match puppetRegexpSpecial "\\k<\%([a-z_]\w*\|-\=\d\+\)\%([+-]\d\+\)\=>" contained display 71 | syn match puppetRegexpSpecial "\\k'\%([a-z_]\w*\|-\=\d\+\)\%([+-]\d\+\)\='" contained display 72 | syn match puppetRegexpSpecial "\\g<\%([a-z_]\w*\|-\=\d\+\)>" contained display 73 | syn match puppetRegexpSpecial "\\g'\%([a-z_]\w*\|-\=\d\+\)'" contained display 74 | 75 | syn cluster puppetStringSpecial contains=puppetInterpolation,puppetNoInterpolation,puppetStringEscape 76 | syn cluster puppetExtendedStringSpecial contains=@puppetStringSpecial,puppetNestedParentheses,puppetNestedCurlyBraces,puppetNestedAngleBrackets,puppetNestedSquareBrackets 77 | syn cluster puppetRegexpSpecial contains=puppetRegexpSpecial,puppetRegexpEscape,puppetRegexpBrackets,puppetRegexpCharClass,puppetRegexpDot,puppetRegexpQuantifier,puppetRegexpAnchor,puppetRegexpParens,puppetRegexpComment 78 | 79 | syn match puppetInteger "\%(\%(\w\|[]})\"']\s*\)\@" display 80 | syn match puppetInteger "\%(\%(\w\|[]})\"']\s*\)\@" display 81 | syn match puppetInteger "\%(\%(\w\|[]})\"']\s*\)\@" display 82 | syn match puppetInteger "\%(\%(\w\|[]})\"']\s*\)\@" display 83 | syn match puppetFloat "\%(\%(\w\|[]})\"']\s*\)\@" display 84 | syn match puppetFloat "\%(\%(\w\|[]})\"']\s*\)\@" display 85 | 86 | syn match puppetVariable "$\%(::\)\=\w\+\%(::\w\+\)*" display 87 | syn match puppetName "\%(::\)\=[a-z]\w*\%(::[a-z]\w*\)*" display 88 | syn match puppetType "\%(::\)\=[A-Z]\w*\%(::[A-Z]\w*\)*" display 89 | syn match puppetWord "\%(\%(::\)\=\%(_[\w-]*\w\+\)\|\%([a-z]\%(\w*-\)\+\w\+\)\)\+" display 90 | 91 | " bad name containing combinations of segment starting with lower case and segement starting with upper case (or vice versa) 92 | syn match puppetNameBad "\%(::\)\=\%(\w\+::\)*\%(\%([a-z]\w*::[A-Z]\w*\)\|\%([A-Z]\w*::[a-z]\w*\)\)\%(::\w\+\)*" display 93 | syn cluster puppetNameOrType contains=puppetVariable,puppetName,puppetType,puppetWord,puppetNameBad 94 | 95 | syn keyword puppetControl case and or in 96 | syn keyword puppetKeyword class define inherits node undef function type attr private 97 | syn keyword puppetKeyword application consumes produces site 98 | syn keyword puppetKeyword present absent purged latest installed running stopped mounted unmounted role configured file directory link on_failure contained 99 | syn keyword puppetConstant default undef 100 | syn keyword puppetConditional if else elsif unless 101 | syn keyword puppetBoolean true false 102 | 103 | " Core functions 104 | syn match puppetFunction "\" 105 | syn match puppetFunction "\" 106 | syn match puppetFunction "\" 107 | syn match puppetFunction "\" 108 | syn match puppetFunction "\" 109 | syn match puppetFunction "\" 110 | syn match puppetFunction "\" 111 | syn match puppetFunction "\" 112 | syn match puppetFunction "\" 113 | syn match puppetFunction "\" 114 | syn match puppetFunction "\" 115 | syn match puppetFunction "\" 116 | syn match puppetFunction "\" 117 | syn match puppetFunction "\" 118 | syn match puppetFunction "\" 119 | syn match puppetFunction "\" 120 | syn match puppetFunction "\" 121 | syn match puppetFunction "\" 122 | syn match puppetFunction "\" 123 | syn match puppetFunction "\" 124 | syn match puppetFunction "\" 125 | syn match puppetFunction "\" 126 | syn match puppetFunction "\" 127 | syn match puppetFunction "\" 128 | syn match puppetFunction "\" 129 | syn match puppetFunction "\" 130 | syn match puppetFunction "\" 131 | syn match puppetFunction "\" 132 | syn match puppetFunction "\" 133 | syn match puppetFunction "\" 134 | syn match puppetFunction "\" 135 | syn match puppetFunction "\" 136 | syn match puppetFunction "\" 137 | syn match puppetFunction "\" 138 | syn match puppetFunction "\" 139 | syn match puppetFunction "\" 140 | syn match puppetFunction "\" 141 | syn match puppetFunction "\" 142 | syn match puppetFunction "\" 143 | syn match puppetFunction "\" 144 | syn match puppetFunction "\" 145 | syn match puppetFunction "\" 146 | syn match puppetFunction "\" 147 | syn match puppetFunction "\" 148 | syn match puppetFunction "\" 149 | syn match puppetFunction "\" 150 | syn match puppetFunction "\" 151 | syn match puppetFunction "\" 152 | syn match puppetFunction "\" 153 | syn match puppetFunction "\" 154 | syn match puppetFunction "\" 155 | syn match puppetFunction "\" 156 | syn match puppetFunction "\" 157 | syn match puppetFunction "\" 158 | syn match puppetFunction "\" 159 | syn match puppetFunction "\" 160 | syn match puppetFunction "\" 161 | 162 | " Stdlib functions 163 | syn match puppetStdLibFunction "\" 164 | syn match puppetStdLibFunction "\" 165 | syn match puppetStdLibFunction "\" 166 | syn match puppetStdLibFunction "\" 167 | syn match puppetStdLibFunction "\" 168 | syn match puppetStdLibFunction "\" 169 | syn match puppetStdLibFunction "\" 170 | syn match puppetStdLibFunction "\" 171 | syn match puppetStdLibFunction "\" 172 | syn match puppetStdLibFunction "\" 173 | syn match puppetStdLibFunction "\" 174 | syn match puppetStdLibFunction "\" 175 | syn match puppetStdLibFunction "\" 176 | syn match puppetStdLibFunction "\" 177 | syn match puppetStdLibFunction "\" 178 | syn match puppetStdLibFunction "\" 179 | syn match puppetStdLibFunction "\" 180 | syn match puppetStdLibFunction "\" 181 | syn match puppetStdLibFunction "\" 182 | syn match puppetStdLibFunction "\" 183 | syn match puppetStdLibFunction "\" 184 | syn match puppetStdLibFunction "\" 185 | syn match puppetStdLibFunction "\" 186 | syn match puppetStdLibFunction "\" 187 | syn match puppetStdLibFunction "\" 188 | syn match puppetStdLibFunction "\" 189 | syn match puppetStdLibFunction "\" 190 | syn match puppetStdLibFunction "\" 191 | syn match puppetStdLibFunction "\" 192 | syn match puppetStdLibFunction "\" 193 | syn match puppetStdLibFunction "\" 194 | syn match puppetStdLibFunction "\" 195 | syn match puppetStdLibFunction "\" 196 | syn match puppetStdLibFunction "\" 197 | syn match puppetStdLibFunction "\" 198 | syn match puppetStdLibFunction "\" 199 | syn match puppetStdLibFunction "\" 200 | syn match puppetStdLibFunction "\" 201 | syn match puppetStdLibFunction "\" 202 | syn match puppetStdLibFunction "\" 203 | syn match puppetStdLibFunction "\" 204 | syn match puppetStdLibFunction "\" 205 | syn match puppetStdLibFunction "\" 206 | syn match puppetStdLibFunction "\" 207 | syn match puppetStdLibFunction "\" 208 | syn match puppetStdLibFunction "\" 209 | syn match puppetStdLibFunction "\" 210 | syn match puppetStdLibFunction "\" 211 | syn match puppetStdLibFunction "\" 212 | syn match puppetStdLibFunction "\" 213 | syn match puppetStdLibFunction "\" 214 | syn match puppetStdLibFunction "\" 215 | syn match puppetStdLibFunction "\" 216 | syn match puppetStdLibFunction "\" 217 | syn match puppetStdLibFunction "\" 218 | syn match puppetStdLibFunction "\" 219 | syn match puppetStdLibFunction "\" 220 | syn match puppetStdLibFunction "\" 221 | syn match puppetStdLibFunction "\" 222 | syn match puppetStdLibFunction "\" 223 | syn match puppetStdLibFunction "\" 224 | syn match puppetStdLibFunction "\" 225 | syn match puppetStdLibFunction "\" 226 | syn match puppetStdLibFunction "\" 227 | syn match puppetStdLibFunction "\" 228 | syn match puppetStdLibFunction "\" 229 | syn match puppetStdLibFunction "\" 230 | syn match puppetStdLibFunction "\" 231 | syn match puppetStdLibFunction "\" 232 | syn match puppetStdLibFunction "\" 233 | syn match puppetStdLibFunction "\" 234 | syn match puppetStdLibFunction "\" 235 | syn match puppetStdLibFunction "\" 236 | syn match puppetStdLibFunction "\" 237 | syn match puppetStdLibFunction "\" 238 | syn match puppetStdLibFunction "\" 239 | syn match puppetStdLibFunction "\" 240 | syn match puppetStdLibFunction "\" 241 | syn match puppetStdLibFunction "\" 242 | syn match puppetStdLibFunction "\" 243 | syn match puppetStdLibFunction "\" 244 | syn match puppetStdLibFunction "\" 245 | syn match puppetStdLibFunction "\" 246 | syn match puppetStdLibFunction "\" 247 | syn match puppetStdLibFunction "\" 248 | syn match puppetStdLibFunction "\" 249 | syn match puppetStdLibFunction "\" 250 | syn match puppetStdLibFunction "\" 251 | syn match puppetStdLibFunction "\" 252 | syn match puppetStdLibFunction "\" 253 | syn match puppetStdLibFunction "\" 254 | syn match puppetStdLibFunction "\" 255 | syn match puppetStdLibFunction "\" 256 | syn match puppetStdLibFunction "\" 257 | syn match puppetStdLibFunction "\" 258 | syn match puppetStdLibFunction "\" 259 | syn match puppetStdLibFunction "\" 260 | syn match puppetStdLibFunction "\" 261 | syn match puppetStdLibFunction "\" 262 | syn match puppetStdLibFunction "\" 263 | syn match puppetStdLibFunction "\" 264 | syn match puppetStdLibFunction "\" 265 | syn match puppetStdLibFunction "\" 266 | syn match puppetStdLibFunction "\" 267 | syn match puppetStdLibFunction "\" 268 | syn match puppetStdLibFunction "\" 269 | syn match puppetStdLibFunction "\" 270 | syn match puppetStdLibFunction "\" 271 | syn match puppetStdLibFunction "\" 272 | syn match puppetStdLibFunction "\" 273 | syn match puppetStdLibFunction "\" 274 | syn match puppetStdLibFunction "\" 275 | syn match puppetStdLibFunction "\" 276 | syn match puppetStdLibFunction "\" 277 | syn match puppetStdLibFunction "\" 278 | syn match puppetStdLibFunction "\" 279 | syn match puppetStdLibFunction "\" 280 | syn match puppetStdLibFunction "\" 281 | syn match puppetStdLibFunction "\" 282 | syn match puppetStdLibFunction "\" 283 | syn match puppetStdLibFunction "\" 284 | syn match puppetStdLibFunction "\" 285 | syn match puppetStdLibFunction "\" 286 | syn match puppetStdLibFunction "\" 287 | syn match puppetStdLibFunction "\" 288 | syn match puppetStdLibFunction "\" 289 | syn match puppetStdLibFunction "\" 290 | syn match puppetStdLibFunction "\" 291 | syn match puppetStdLibFunction "\" 292 | syn match puppetStdLibFunction "\" 293 | syn match puppetStdLibFunction "\" 294 | syn match puppetStdLibFunction "\" 295 | 296 | syn match puppetType "\" 297 | syn match puppetType "\" 298 | syn match puppetType "\" 299 | syn match puppetType "\" 300 | syn match puppetType "\" 301 | syn match puppetType "\" 302 | syn match puppetType "\" 303 | syn match puppetType "\" 304 | syn match puppetType "\" 305 | syn match puppetType "\" 306 | syn match puppetType "\" 307 | syn match puppetType "\" 308 | syn match puppetType "\" 309 | syn match puppetType "\" 310 | syn match puppetType "\" 311 | syn match puppetType "\" 312 | syn match puppetType "\" 313 | syn match puppetType "\" 314 | syn match puppetType "\" 315 | syn match puppetType "\" 316 | syn match puppetType "\" 317 | syn match puppetType "\" 318 | syn match puppetType "\" 319 | syn match puppetType "\" 320 | syn match puppetType "\" 321 | syn match puppetType "\" 322 | syn match puppetType "\" 323 | syn match puppetType "\" 324 | syn match puppetType "\" 325 | syn match puppetType "\" 326 | syn match puppetType "\" 327 | syn match puppetType "\" 328 | syn match puppetType "\" 329 | syn match puppetType "\" 330 | syn match puppetType "\" 331 | syn match puppetType "\" 332 | syn match puppetType "\" 333 | syn match puppetType "\" 334 | syn match puppetType "\" 335 | syn match puppetType "\" 336 | syn match puppetType "\" 337 | 338 | syn match puppetType "\" 339 | syn match puppetType "\" 340 | syn match puppetType "\" 341 | syn match puppetType "\" 342 | syn match puppetType "\" 343 | syn match puppetType "\" 344 | syn match puppetType "\" 345 | syn match puppetType "\" 346 | syn match puppetType "\" 347 | syn match puppetType "\" 348 | syn match puppetType "\" 349 | syn match puppetType "\" 350 | syn match puppetType "\" 351 | syn match puppetType "\" 352 | syn match puppetType "\" 353 | syn match puppetType "\" 354 | syn match puppetType "\" 355 | syn match puppetType "\" 356 | syn match puppetType "\" 357 | syn match puppetType "\" 358 | syn match puppetType "\" 359 | syn match puppetType "\" 360 | syn match puppetType "\" 361 | syn match puppetType "\" 362 | syn match puppetType "\" 363 | syn match puppetType "\" 364 | syn match puppetType "\" 365 | syn match puppetType "\" 366 | syn match puppetType "\" 367 | syn match puppetType "\" 368 | syn match puppetType "\" 369 | syn match puppetType "\" 370 | syn match puppetType "\" 371 | syn match puppetType "\" 372 | syn match puppetType "\" 373 | syn match puppetType "\" 374 | syn match puppetType "\" 375 | syn match puppetType "\" 376 | syn match puppetType "\" 377 | syn match puppetType "\" 378 | syn match puppetType "\" 379 | syn match puppetType "\" 380 | syn match puppetType "\" 381 | syn match puppetType "\" 382 | syn match puppetType "\" 383 | syn match puppetType "\" 384 | syn match puppetType "\" 385 | syn match puppetType "\" 386 | syn match puppetType "\" 387 | 388 | " Normal String {{{1 389 | syn region puppetString matchgroup=puppetStringDelimiter start="\"" end="\"" skip="\\\\\|\\\"" contains=@puppetStringSpecial 390 | syn region puppetString matchgroup=puppetStringDelimiter start="'" end="'" skip="\\\\\|\\'" contains=puppetQuoteEscape 391 | 392 | " Normal Regular Expression {{{1 393 | syn region puppetRegexp matchgroup=puppetRegexpDelimiter start="\%(\%(^\|\<\%(and\|or\|while\|until\|unless\|if\|elsif\|when\|not\|then\|else\)\|[;\~=!|&(,{[<>?:*+-]\)\s*\)\@<=/" end="/" skip="\\\\\|\\/" contains=@puppetRegexpSpecial 394 | syn region puppetRegexp matchgroup=puppetRegexpDelimiter start="\%(\h\k*\s\+\)\@<=/[ \t=]\@!" end="/" skip="\\\\\|\\/" contains=@puppetRegexpSpecial 395 | 396 | " Here Document {{{1 397 | syn region puppetHeredocStart matchgroup=puppetStringDelimiter start=+@(\s*\%("[^"]\+"\|\w\+\)\%(/[nrtsuL$\\]*\)\=)+ end=+$+ oneline contains=ALLBUT,@puppetNotTop 398 | 399 | syn region puppetString start=+@(\s*"\z([^"]\+\)"\%(/[nrtsuL$\\]*\)\=+hs=s+2 matchgroup=puppetStringDelimiter end=+^\s*|\=\s*-\=\s*\zs\z1$+ contains=puppetHeredocStart,@puppetStringSpecial keepend 400 | syn region puppetString start=+@(\s*\z(\w\+\)\%(/[nrtsuL$\\]*\)\=+hs=s+2 matchgroup=puppetStringDelimiter end=+^\s*|\=\s*-\=\s*\zs\z1$+ contains=puppetHeredocStart keepend 401 | 402 | " comments last overriding everything else 403 | syn match puppetComment "\s*#.*$" contains=puppetTodo,@Spell 404 | syn region puppetComment start="/\*" end="\*/" contains=puppetTodo,@Spell extend 405 | syn keyword puppetTodo TODO NOTE FIXME XXX BUG HACK contained 406 | 407 | " Define the default highlighting. 408 | command -nargs=+ HiLink hi def link 409 | 410 | HiLink puppetRegexp puppetConstant 411 | HiLink puppetStdLibFunction puppetFunction 412 | HiLink puppetNoInterpolation puppetString 413 | HiLink puppetFunction Function 414 | HiLink puppetOperator Operator 415 | HiLink puppetString String 416 | HiLink puppetWord String 417 | HiLink puppetFloat Float 418 | HiLink puppetInteger Number 419 | HiLink puppetBoolean Boolean 420 | HiLink puppetName puppetIdentifier 421 | HiLink puppetNameBad Error 422 | HiLink puppetVariable puppetIdentifier 423 | HiLink puppetIdentifier Identifier 424 | HiLink puppetType Type 425 | HiLink puppetConditional Conditional 426 | HiLink puppetConstant Constant 427 | HiLink puppetControl Statement 428 | HiLink puppetKeyword Keyword 429 | HiLink puppetStringDelimiter Delimiter 430 | HiLink puppetDelimiter Delimiter 431 | HiLink puppetTodo Todo 432 | HiLink puppetComment Comment 433 | 434 | delcommand HiLink 435 | 436 | let b:current_syntax = "puppet" 437 | --------------------------------------------------------------------------------