Add handlebars templates support
This commit is contained in:
parent
3bd6516123
commit
2ed8751feb
1
build.sh
1
build.sh
@ -45,6 +45,7 @@ syntax 'mutewinter/tomdoc.vim' &
|
|||||||
syntax 'mutewinter/nginx.vim' &
|
syntax 'mutewinter/nginx.vim' &
|
||||||
syntax 'timcharper/textile.vim' &
|
syntax 'timcharper/textile.vim' &
|
||||||
syntax 'tpope/vim-markdown' &
|
syntax 'tpope/vim-markdown' &
|
||||||
|
syntax 'nono/vim-handlebars' &
|
||||||
syntax 'acustodioo/vim-tmux' &
|
syntax 'acustodioo/vim-tmux' &
|
||||||
syntax 'groenewege/vim-less' &
|
syntax 'groenewege/vim-less' &
|
||||||
syntax 'wavded/vim-stylus' &
|
syntax 'wavded/vim-stylus' &
|
||||||
|
3
ftdetect/handlebars.vim
Normal file
3
ftdetect/handlebars.vim
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
if has("autocmd")
|
||||||
|
au BufNewFile,BufRead *.{handlebars,hb,hbs,hbt}{,.erb} set ft=html syntax=handlebars | runtime! ftplugin/handlebars.vim ftplugin/handlebars*.vim ftplugin/handlebars/*.vim
|
||||||
|
endif
|
22
ftplugin/handlebars.vim
Normal file
22
ftplugin/handlebars.vim
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
" Taken from https://github.com/juvenn/mustache.vim/blob/master/ftplugin/mustache.vim
|
||||||
|
|
||||||
|
let s:cpo_save = &cpo
|
||||||
|
set cpo&vim
|
||||||
|
|
||||||
|
" Matchit support for Handlebars
|
||||||
|
" extending HTML matchit groups
|
||||||
|
if exists("loaded_matchit") && exists("b:match_words")
|
||||||
|
let b:match_words = b:match_words
|
||||||
|
\ . ',{:},[:],(:),'
|
||||||
|
\ . '\%({{\)\@<=#\s*\%(if\|unless\)\s*.\{-}}}'
|
||||||
|
\ . ':'
|
||||||
|
\ . '\%({{\)\@<=\s*else\s*}}'
|
||||||
|
\ . ':'
|
||||||
|
\ . '\%({{\)\@<=/\s*\%(if\|unless\)\s*}},'
|
||||||
|
\ . '\%({{\)\@<=[#^]\s*\([-0-9a-zA-Z_?!/.]\+\).\{-}}}'
|
||||||
|
\ . ':'
|
||||||
|
\ . '\%({{\)\@<=/\s*\1\s*}}'
|
||||||
|
endif
|
||||||
|
|
||||||
|
let &cpo = s:cpo_save
|
||||||
|
unlet s:cpo_save
|
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'
|
Loading…
x
Reference in New Issue
Block a user