From GarrettHoneycutt

Jump to: navigation, search


VIM stuff in SVN



Syntax highlighting

add the following line to your /etc/vimrc

syntax on



" detect puppet filetype
 au BufRead,BufNewFile *.pp              set filetype=puppet


" puppet syntax file
" Filename:     puppet.vim
" Language:     puppet configuration file 
" Maintainer:   Luke Kanies <>
" URL:          
" Last Change: 
" Version:      
" Copied from the cfengine, ruby, and perl syntax files
" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
if version < 600
  syntax clear
elseif exists("b:current_syntax")
syn region  puppetDefine        start="^\s*\(class\|define\|site\|node\)" end="{" contains=puppetDefType,puppetDefName,puppetDefArguments
syn keyword puppetDefType       class define site 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
syn match   puppetArgument      "'[^']+'" contained
syn match   puppetArgument      '"[^"]+"' contained
syn match   puppetDefName     "\w\+" contained
syn match   puppetInstance           "\w\+\s*{" contains=puppetTypeBrace,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
syn match   puppetParamName       "\w\+" contained
syn match   puppetVariable           "$\w\+"
syn match   puppetVariable           "${\w\+}"
syn match   puppetParen           "("
syn match   puppetParen           ")"
syn match   puppetBrace           "{"
syn match   puppetBrace           "}"
syn region  puppetString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=puppetVariable
syn keyword puppetBoolean    true false 
syn keyword puppetKeyword    import inherits include
syn keyword puppetControl    case default 
" comments last overriding everything else
syn match   puppetComment            "\s*#.*$" contains=puppetTodo
syn keyword puppetTodo               TODO NOTE FIXME XXX contained
" Define the default highlighting.
" For version 5.7 and earlier: only when not done already
" For version 5.8 and later: only when an item doesn't have highlighting yet
if version >= 508 || !exists("did_puppet_syn_inits")
  if version < 508
    let did_puppet_syn_inits = 1
    command -nargs=+ HiLink hi link <args>
    command -nargs=+ HiLink hi def link <args>
  HiLink puppetVariable             Identifier
  HiLink puppetBoolean              Boolean
  HiLink puppetType                 Identifier
  HiLink puppetDefault              Identifier
  HiLink puppetKeyword              Define
  HiLink puppetTypeDefs             Define
  HiLink puppetComment              Comment
  HiLink puppetString               String
  HiLink puppetTodo                 Todo
"  HiLink puppetBrace                Delimiter
"  HiLink puppetTypeBrace            Delimiter
"  HiLink puppetParen                Delimiter
  HiLink puppetDelimiter            Delimiter
  HiLink puppetControl              Statement
  HiLink puppetDefType              Define
  HiLink puppetDefName              Type
  HiLink puppetTypeName             Statement
  HiLink puppetTypeDefault          Type
  HiLink puppetParamName            Identifier
  HiLink puppetArgument             Identifier
  delcommand HiLink
let b:current_syntax = "puppet"