diff options
Diffstat (limited to 'syntax/svelte-html.vim')
-rw-r--r-- | syntax/svelte-html.vim | 41 |
1 files changed, 21 insertions, 20 deletions
diff --git a/syntax/svelte-html.vim b/syntax/svelte-html.vim index c0b243b1..31638cd5 100644 --- a/syntax/svelte-html.vim +++ b/syntax/svelte-html.vim @@ -22,43 +22,41 @@ syntax match svelteComponentName containedin=htmlTagN '\v\C<[a-z0-9]+(-[a-z0-9]+ syntax match svelteComponentName containedin=htmlTagN '\vsvelte:\w*' " Syntax for vim-svelte-theme -syntax match htmlAttr '\v(\S|\<)@<![^\/\<\>[:blank:]]+' containedin=htmlTag +syntax match htmlAttr '\v(\S|\<)@<![^\/\<\>[:blank:]]+' + \ containedin=htmlTag \ contains=htmlString,svelteValue,htmlArg syntax match htmlAttrEqual '\v\=' containedin=htmlAttr -syntax match svelteAttr - \ '\v(\S)@<!(on|bind|use|in|out|transition|animate|class):[^\=\>[:blank:]]+(\=\"[^"]*\"|\=\{[^}]*\})?' +syntax match svelteAttr + \ '\(\S\)\@<!\w\+:[^=>[:blank:]]\+\(="[^"]*"\|={[^}]*}\)\?' \ containedin=htmlTag \ contains=svelteKey,svelteValue - -syntax match svelteKey contained '\v(on|bind|use|in|out|transition|animate|class):[^\=\>[:blank:]]+' -syntax match svelteValue contained '\v\{[^}]*\}' +syntax match svelteValue contained '{[^}]*}' +syntax match svelteKey contained '\w\+:[^=>[:blank:]]\+' syntax region svelteExpression \ containedin=htmlH.*,htmlItalic \ matchgroup=svelteBrace - \ transparent \ start="{" - \ end="}\(}\)\@!" + \ end="}\(}\|;\)\@!" +" Multiple lines expressions are supposed to end with '}}' syntax region svelteExpression - \ containedin=htmlSvelteTemplate,svelteValue,htmlString,htmlValue,htmlArg,htmlTag - \ contains=@simpleJavascriptExpression,svelteAtTags + \ containedin=svelteValue,htmlValue,htmlAttr + \ contains=@simpleJavascriptExpression \ matchgroup=svelteBrace - \ transparent \ start="{" - \ end="}\(}\)\@!" + \ end="\(}\)\@<=}" syntax region svelteExpression - \ containedin=htmlTag - \ contains=@simpleJavascriptExpression,svelteAtTags,svelteShortProp + \ containedin=htmlSvelteTemplate,svelteValue,htmlString,htmlArg,htmlTag,htmlAttr,htmlValue,htmlAttr + \ contains=@simpleJavascriptExpression,svelteAtTags \ matchgroup=svelteBrace - \ transparent \ start="{" - \ end="}\(}\)\@!" + \ end="}\(}\|;\)\@!" + \ oneline -syntax match svelteAtTags '\v\@(html|debug)' -syntax match svelteShortProp '\v<\w+>' +syntax match svelteAtTags '@\(html\|debug\)' syntax region svelteBlockBody \ containedin=htmlSvelteTemplate,htmlLink @@ -101,7 +99,9 @@ syntax region javaScriptTemplateExpression syntax match javaScriptNumber '\v<-?\d+L?>|0[xX][0-9a-fA-F]+>' contained syntax match javaScriptOperator '[-!|&+<>=%*~^]' contained syntax match javaScriptOperator '\v(*)@<!/(/|*)@!' contained -syntax keyword javaScriptOperator delete instanceof typeof void new in of contained +syntax keyword javaScriptOperator contained + \ delete instanceof typeof void new in of const let var + \ return function highlight default link svelteAttr htmlTag if s:highlight_svelte_attr @@ -112,7 +112,9 @@ else highlight default link svelteValue String endif +highlight default link svelteExpression None highlight default link svelteBrace Type +highlight default link svelteAtTags Type highlight default link svelteBlockKeyword Statement highlight default link svelteComponentName htmlTagName highlight default link javaScriptTemplateString String @@ -122,6 +124,5 @@ highlight default link javaScriptNumber Constant highlight default link javaScriptOperator Operator highlight default link svelteAttr htmlTag highlight default link svelteAttrEqual htmlTag -highlight default link svelteShortProp htmlValue "}}} " vim: fdm=marker |