3
" Language: puppet configuration file
4
" Maintainer: Luke Kanies <luke@madstop.com>
5
" URL: http://reductivelabs.com/svn/puppet/trunk/ext/vim/puppet.vim
9
" $Id: puppet.vim 875 2006-02-07 23:56:16Z luke $
11
" Copied from the cfengine, ruby, and perl syntax files
12
" For version 5.x: Clear all syntax items
13
" For version 6.x: Quit when a syntax file was already loaded
16
elseif exists("b:current_syntax")
20
syn region puppetDefine start="^\s*\(class\|define\|site\|node\)" end="{" contains=puppetDefType,puppetDefName,puppetDefArguments
21
syn keyword puppetDefType class define site node inherits contained
22
syn keyword puppetInherits inherits contained
23
syn region puppetDefArguments start="(" end=")" contains=puppetArgument
24
syn match puppetArgument "\w\+" contained
25
syn match puppetDefName "\w\+" contained
27
syn match puppetInstance "\w\+\s*{" contains=puppetTypeBrace,puppetTypeName,puppetTypeDefault
28
syn match puppetTypeBrace "{" contained
29
syn match puppetTypeName "[a-z]\w*" contained
30
syn match puppetTypeDefault "[A-Z]\w*" contained
32
syn match puppetParam "\w\+\s*=>" contains=puppetTypeRArrow,puppetParamName
33
syn match puppetParamRArrow "=>" contained
34
syn match puppetParamName "\w\+" contained
35
syn match puppetVariable "$\w\+"
36
syn match puppetVariable "${\w\+}"
37
syn match puppetParen "("
38
syn match puppetParen ")"
39
syn match puppetBrace "{"
40
syn match puppetBrace "}"
42
syn region puppetString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=puppetVariable
44
syn keyword puppetBoolean true false
45
syn keyword puppetKeyword import inherits include
46
syn keyword puppetControl case default
48
" comments last overriding everything else
49
syn match puppetComment "\s*#.*$" contains=puppetTodo
50
syn keyword puppetTodo TODO NOTE FIXME XXX contained
52
" Define the default highlighting.
53
" For version 5.7 and earlier: only when not done already
54
" For version 5.8 and later: only when an item doesn't have highlighting yet
55
if version >= 508 || !exists("did_puppet_syn_inits")
57
let did_puppet_syn_inits = 1
58
command -nargs=+ HiLink hi link <args>
60
command -nargs=+ HiLink hi def link <args>
63
HiLink puppetVariable Identifier
64
HiLink puppetBoolean Boolean
65
HiLink puppetType Identifier
66
HiLink puppetDefault Identifier
67
HiLink puppetKeyword Define
68
HiLink puppetTypeDefs Define
69
HiLink puppetComment Comment
70
HiLink puppetString String
71
HiLink puppetTodo Todo
72
" HiLink puppetBrace Delimiter
73
" HiLink puppetTypeBrace Delimiter
74
" HiLink puppetParen Delimiter
75
HiLink puppetDelimiter Delimiter
76
HiLink puppetControl Statement
77
HiLink puppetDefType Define
78
HiLink puppetDefName Type
79
HiLink puppetTypeName Statement
80
HiLink puppetTypeDefault Type
81
HiLink puppetParamName Identifier
82
HiLink puppetArgument Identifier
87
let b:current_syntax = "puppet"