This commit is contained in:
Adam Stankiewicz
2022-03-12 15:46:18 +01:00
parent 83422e0a1f
commit a4f98d2a9e
12 changed files with 153 additions and 68 deletions

View File

@@ -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=svelteValue,htmlValue,htmlAttr
\ contains=@simpleJavascriptExpression
\ matchgroup=svelteBrace
\ start="{"
\ end="\(}\)\@<=}"
syntax region svelteExpression
\ containedin=htmlSvelteTemplate,svelteValue,htmlString,htmlValue,htmlArg,htmlTag
\ containedin=htmlSvelteTemplate,svelteValue,htmlString,htmlArg,htmlTag,htmlAttr,htmlValue,htmlAttr
\ contains=@simpleJavascriptExpression,svelteAtTags
\ matchgroup=svelteBrace
\ transparent
\ start="{"
\ end="}\(}\)\@!"
\ end="}\(}\|;\)\@!"
\ oneline
syntax region svelteExpression
\ containedin=htmlTag
\ contains=@simpleJavascriptExpression,svelteAtTags,svelteShortProp
\ matchgroup=svelteBrace
\ transparent
\ start="{"
\ end="}\(}\)\@!"
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