diff options
Diffstat (limited to 'syntax')
| -rw-r--r-- | syntax/handlebars.vim | 83 | 
1 files changed, 83 insertions, 0 deletions
| diff --git a/syntax/handlebars.vim b/syntax/handlebars.vim new file mode 100644 index 00000000..fd7618b5 --- /dev/null +++ b/syntax/handlebars.vim @@ -0,0 +1,83 @@ +" Handlebars syntax +" Language:    Handlebars +" Maintainer:  Bruno Michel <brmichel@free.fr> +" Last Change: Mar 8th, 2013 +" Version:	   0.3 +" URL:         https://github.com/nono/vim-handlebars + +if version < 600 +  syntax clear +elseif exists("b:current_syntax") +  finish +endif + +if !exists("main_syntax") +  let main_syntax = 'html' +endif + +ru! syntax/html.vim +unlet b:current_syntax + + +syn keyword hbsTodo             TODO FIXME XXX contained + +syn match   hbsError            /}}}\?/ +syn match   hbsInsideError      /{{[{#<>=!\/]\?/   containedin=@hbsInside + +syn cluster htmlHbsContainer   add=htmlHead,htmlTitle,htmlString,htmlH1,htmlH2,htmlH3,htmlH4,htmlH5,htmlH6 +syn region  hbsInside          start=/{{/ end=/}}/  keepend transparent containedin=@htmlHbsContainer + +syn match   hbsHandlebars      "{{\|}}"                                 containedin=hbsInside +syn match   hbsUnescape        "{{{\|}}}"                               containedin=hbsInside +syn match   hbsOperators       "=\|\.\|/"                               containedin=hbsInside + +syn region  hbsSection         start="{{[#/]"lc=2 end=/}}/me=e-2        containedin=hbsInside +syn region  hbsPartial         start=/{{[<>]/lc=2 end=/}}/me=e-2        containedin=hbsInside +syn region  hbsMarkerSet       start=/{{=/lc=2    end=/=}}/me=e-2       containedin=hbsInside + +syn region  hbsComment         start=/{{!/rs=s+2    end=/}}/re=e-2      containedin=htmlHead contains=hbsTodo,Todo +syn region  hbsBlockComment    start=/{{!--/rs=s+2  end=/--}}/re=e-2    containedin=htmlHead contains=hbsTodo,Todo +syn region  hbsQString         start=/'/ skip=/\\'/ end=/'/             containedin=hbsInside +syn region  hbsDQString        start=/"/ skip=/\\"/ end=/"/             containedin=hbsInside + +syn match   hbsConditionals    "\([/#]\(if\|unless\)\|else\)"           containedin=hbsInside +syn match   hbsHelpers         "[/#]\(with\|each\)"                     containedin=hbsInside + + +" 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_lisp_syntax_inits") +  if version < 508 +    let did_lisp_syntax_inits = 1 +    command -nargs=+ HiLink hi link <args> +  else +    command -nargs=+ HiLink hi def link <args> +  endif + +  HiLink hbsTodo          Todo + +  HiLink hbsError         Error +  HiLink hbsInsideError   Error + +  HiLink hbsHandlebars    Identifier +  HiLink hbsUnescape      Special +  HiLink hbsOperators     Operator + +  HiLink hbsConditionals  Conditional +  HiLink hbsHelpers       Repeat + +  HiLink hbsSection       Number +  HiLink hbsPartial       Include +  HiLink hbsMarkerSet     Number + +  HiLink hbsBlockComment  Comment +  HiLink hbsComment       Comment +  HiLink hbsQString       String +  HiLink hbsDQString      String + +  delcommand HiLink +endif + + +let b:current_syntax = 'handlebars' | 
