mirror of
https://github.com/sheerun/vim-polyglot.git
synced 2025-11-11 21:13:50 -05:00
Add handlebars templates support
This commit is contained in:
83
syntax/handlebars.vim
Normal file
83
syntax/handlebars.vim
Normal file
@@ -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'
|
||||
Reference in New Issue
Block a user