Files
vim-vue-plugin/syntax/vue-html.vim
2019-06-18 10:09:00 +08:00

43 lines
1.3 KiB
VimL

syntax match VueComponentName containedin=htmlTagN '\v<[a-zA-Z0-9]+(-[a-zA-Z0-9]+)+>'
syntax match VueComponentName containedin=htmlTagN '\v<([A-Z][a-zA-Z0-9]+)+>'
syntax match VueAttr '\v(\S)@<![v:\@][^\=]*(\=\"[^"]*\")?'
\ containedin=htmlTag
\ contains=VueKey,VueValue
syntax match VueKey contained '\v[v:\@][^\=]+'
syntax match VueValue contained '\v\"\zs[^"]*\ze\"'
\ contains=VueInject,javaScriptStringS,javaScriptRepeat
syntax match VueInject contained '\v\$\w*'
syntax region VueExpression
\ containedin=html.*
\ matchgroup=VueBrace
\ transparent
\ start="{{"
\ end="}}"
syntax region VueExpression
\ containedin=vueTemplate,VueValue,htmlString,htmlValue
\ contains=@jsAll
\ matchgroup=VueBrace
\ start="{{"
\ end="}}"
" Wepy directive syntax
syntax match VueAttr '\v(\S)@<!wx[^\=]+(\=\"[^"]*\")?'
\ containedin=htmlTag
\ contains=VueKey,VueValue,VueInject
syntax match VueKey contained '\vwx[^\=]+'
syntax match VueCustomTag containedin=htmlTagN '\v<(view|text|block|image)>'
highlight default link VueAttr Comment
highlight default link VueKey Type
highlight default link VueValue Comment
highlight default link VueInject Constant
highlight default link VueBrace Type
highlight default link VueComponentName Statement
highlight default link VueCustomTag Statement