summaryrefslogtreecommitdiffstats
path: root/syntax/svelte-html.vim
diff options
context:
space:
mode:
authorAdam Stankiewicz <sheerun@sher.pl>2022-03-12 15:46:18 +0100
committerAdam Stankiewicz <sheerun@sher.pl>2022-03-12 15:46:18 +0100
commita4f98d2a9e9dfeb110d4a910ea177432fec88b81 (patch)
tree0da567e3f00dd1da076f5fb45331c24e4a90a646 /syntax/svelte-html.vim
parent83422e0a1fcfc88f3475104b0e0674e8dbe3130e (diff)
downloadvim-polyglot-a4f98d2a9e9dfeb110d4a910ea177432fec88b81.tar.gz
vim-polyglot-a4f98d2a9e9dfeb110d4a910ea177432fec88b81.zip
Update
Diffstat (limited to 'syntax/svelte-html.vim')
-rw-r--r--syntax/svelte-html.vim41
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