Signed-off-by: Marc Fournier <marc.fourn...@camptocamp.com>
---
 ext/vim/syntax/puppet.vim |   32 +++++++++++++++-----------------
 1 files changed, 15 insertions(+), 17 deletions(-)

diff --git a/ext/vim/syntax/puppet.vim b/ext/vim/syntax/puppet.vim
index 070bdc8..e398854 100644
--- a/ext/vim/syntax/puppet.vim
+++ b/ext/vim/syntax/puppet.vim
@@ -16,9 +16,9 @@ elseif exists("b:current_syntax")
   finish
 endif
 
+" match class/definition/node declarations
 syn region  puppetDefine        start="^\s*\(class\|define\|node\)" end="{" 
contains=puppetDefType,puppetDefName,puppetDefArguments
 syn keyword puppetDefType       class define node inherits contained
-syn keyword puppetInherits      inherits contained
 syn region  puppetDefArguments  start="(" end=")" contains=puppetArgument
 syn match   puppetArgument      "\w\+" contained
 syn match   puppetArgument      "\$\w\+" contained
@@ -26,34 +26,38 @@ syn match   puppetArgument      "'[^']+'" contained
 syn match   puppetArgument      '"[^"]+"' contained
 syn match   puppetDefName       "\w\+" contained
 
+" match 'foo' in 'class foo { ...'
+" match 'foo::bar' in 'class foo::bar { ...'
+" match 'Foo::Bar' in 'Foo::Bar["..."]
 "FIXME: "Foo-bar" doesn't get highlighted as expected, although "foo-bar" does.
-syn match   puppetInstance      "[A-Za-z0-9_-]\+\(::[A-Za-z0-9_-]\+\)*\s*{" 
contains=puppetTypeBrace,puppetTypeName,puppetTypeDefault
+syn match   puppetInstance      "[A-Za-z0-9_-]\+\(::[A-Za-z0-9_-]\+\)*\s*{" 
contains=puppetTypeName,puppetTypeDefault
 syn match   puppetInstance      "[A-Z][a-z_-]\+\(::[A-Z][a-z_-]\+\)*\s*[[{]" 
contains=puppetTypeName,puppetTypeDefault
-syn match   puppetTypeBrace     "{" contained
 syn match   puppetTypeName      "[a-z]\w*" contained
 syn match   puppetTypeDefault   "[A-Z]\w*" contained
 
-syn match   puppetParam         "\w\+\s*[=+]>" 
contains=puppetTypeRArrow,puppetParamName
-syn match   puppetParamRArrow   "[=+]>" contained
+" match 'foo' in 'foo => "bar"'
+syn match   puppetParam         "\w\+\s*[=+]>" contains=puppetParamName
 syn match   puppetParamName     "\w\+" contained
 
-syn match   puppetParam         "\w\+\s*[=+]>\s*[a-z0-9]\+" 
contains=puppetParamString,puppetTypeRArrow,puppetParamName
+" match 'present' in 'ensure => present'
+" match '2755' in 'mode => 2755'
+" don't match 'bar' in 'foo => bar'
+syn match   puppetParam         "\w\+\s*[=+]>\s*[a-z0-9]\+" 
contains=puppetParamString,puppetParamName
 syn match   puppetParamString   "[=+]>\s*\w\+" 
contains=puppetParamKeyword,puppetParamSpecial,puppetParamDigits contained
 syn keyword puppetParamKeyword  present absent purged latest installed running 
stopped mounted unmounted role configured file directory link contained
 syn keyword puppetParamSpecial  true false undef contained
 syn match   puppetParamDigits   "[0-9]\+"
 
-syn match   puppetParam         "\w\+\s*[=+]>\s*\w\+\s*(" 
contains=puppetFunction,puppetTypeRArrow,puppetParamName
+" match 'template' in 'content => template("...")'
+syn match   puppetParam         "\w\+\s*[=+]>\s*\w\+\s*(" 
contains=puppetFunction,puppetParamName
 syn keyword puppetFunction      debug info notice warning err alert emerg crit
 syn keyword puppetFunction      sprintf template fail tagged include generate 
search file tag versioncmp fqdn_rand realize split defined regsubst sha1 
inline_template
 
 syn match   puppetVariable      "$\w\+"
 syn match   puppetVariable      "${\w\+}"
-syn match   puppetParen         "("
-syn match   puppetParen         ")"
-syn match   puppetBrace         "{"
-syn match   puppetBrace         "}"
 
+" match anything between simple/double quotes.
+" don't match variables if preceded by a backslash.
 syn region  puppetString        start=+'+ skip=+\\\\\|\\'+ end=+'+
 syn region  puppetString        start=+"+ skip=+\\\\\|\\"+ end=+"+ 
contains=puppetVariable,puppetNotVariable
 syn match   puppetNotVariable   "\\$\w\+" contained
@@ -81,9 +85,7 @@ if version >= 508 || !exists("did_puppet_syn_inits")
 
   HiLink puppetVariable             Identifier
   HiLink puppetType                 Identifier
-  HiLink puppetDefault              Identifier
   HiLink puppetKeyword              Define
-  HiLink puppetTypeDefs             Define
   HiLink puppetComment              Comment
   HiLink puppetString               String
   HiLink puppetParamKeyword         String
@@ -92,10 +94,6 @@ if version >= 508 || !exists("did_puppet_syn_inits")
   HiLink puppetParamSpecial         Special
   HiLink puppetSpecial              Special
   HiLink puppetTodo                 Todo
-"  HiLink puppetBrace                Delimiter
-"  HiLink puppetTypeBrace            Delimiter
-"  HiLink puppetParen                Delimiter
-  HiLink puppetDelimiter            Delimiter
   HiLink puppetControl              Statement
   HiLink puppetDefType              Define
   HiLink puppetDefName              Type
-- 
1.6.3.1


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Puppet Developers" group.
To post to this group, send email to puppet-dev@googlegroups.com
To unsubscribe from this group, send email to 
puppet-dev+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/puppet-dev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to