This commit is contained in:
Adam Stankiewicz
2019-10-16 14:56:00 +02:00
parent f95026252c
commit 199846c6d8
14 changed files with 86 additions and 70 deletions

View File

@@ -38,7 +38,7 @@ syntax region jsxElement
" detect jsx region " detect jsx region
syntax region jsxRegion syntax region jsxRegion
\ start=+\(\(\_[([,?:=+\-*/<>{}]\|&&\|||\|=>\|\<return\|\<default\|\<await\|\<yield\)\_s*\)\@<=<\_s*\(>\|\z(\(script\)\@!\<[_\$A-Za-z][-:_\.\$0-9A-Za-z]*\>\)\(\_s*\([-+*)\]}&|?]\|/\([/*]\|\_s*>\)\@!\)\)\@!\)+ \ start=+\(\(\_[([,?:=+\-*/<>{}]\|&&\|||\|=>\|\<return\|\<default\|\<await\|\<yield\)\_s*\)\@<=<\_s*\(>\|\z(\(script\)\@!\<[_\$A-Za-z][-:_\.\$0-9A-Za-z]*\>\)\(\_s*\([-+*)\]}&|?,]\|/\([/*]\|\_s*>\)\@!\)\)\@!\)+
\ end=++ \ end=++
\ contains=jsxElement \ contains=jsxElement

View File

@@ -398,10 +398,19 @@ function! s:RmDir(path)
echoerr 'Attempted to delete empty path' echoerr 'Attempted to delete empty path'
return 0 return 0
elseif a:path ==# '/' || a:path ==# $HOME elseif a:path ==# '/' || a:path ==# $HOME
echoerr 'Attempted to delete protected path: ' . a:path let l:path = expand(a:path)
if l:path ==# '/' || l:path ==# $HOME
echoerr 'Attempted to delete protected path: ' . a:path
return 0
endif
endif
if !isdirectory(a:path)
return 0 return 0
endif endif
return system("rm -rf " . shellescape(a:path))
" delete() returns 0 when removing file successfully
return delete(a:path, 'rf') == 0
endfunction endfunction
" Executes {cmd} with the cwd set to {pwd}, without changing Vim's cwd. " Executes {cmd} with the cwd set to {pwd}, without changing Vim's cwd.

View File

@@ -8,7 +8,8 @@ let s:checked_ctags = 0
function! rust#tags#IsUCtags() abort function! rust#tags#IsUCtags() abort
if s:checked_ctags == 0 if s:checked_ctags == 0
if system('ctags --version') =~? 'universal ctags' let l:ctags_bin = get(g:, 'tagbar_ctags_bin', 'ctags')
if system(l:ctags_bin.' --version') =~? 'universal ctags'
let s:ctags_is_uctags = 1 let s:ctags_is_uctags = 1
endif endif
let s:checked_ctags = 1 let s:checked_ctags = 1

View File

@@ -112,7 +112,7 @@ function! s:DeleteLines(start, end) abort
silent! execute a:start . ',' . a:end . 'delete _' silent! execute a:start . ',' . a:end . 'delete _'
endfunction endfunction
function! s:RunRustfmt(command, tmpname, fail_silently) function! s:RunRustfmt(command, tmpname, from_writepre)
mkview! mkview!
let l:stderr_tmpname = tempname() let l:stderr_tmpname = tempname()
@@ -149,8 +149,10 @@ function! s:RunRustfmt(command, tmpname, fail_silently)
let l:open_lwindow = 0 let l:open_lwindow = 0
if v:shell_error == 0 if v:shell_error == 0
" remove undo point caused via BufWritePre if a:from_writepre
try | silent undojoin | catch | endtry " remove undo point caused via BufWritePre
try | silent undojoin | catch | endtry
endif
if a:tmpname ==# '' if a:tmpname ==# ''
let l:content = l:out let l:content = l:out
@@ -170,7 +172,7 @@ function! s:RunRustfmt(command, tmpname, fail_silently)
call setloclist(0, []) call setloclist(0, [])
let l:open_lwindow = 1 let l:open_lwindow = 1
endif endif
elseif g:rustfmt_fail_silently == 0 && a:fail_silently == 0 elseif g:rustfmt_fail_silently == 0 && !a:from_writepre
" otherwise get the errors and put them in the location list " otherwise get the errors and put them in the location list
let l:errors = [] let l:errors = []
@@ -224,12 +226,12 @@ function! rustfmt#FormatRange(line1, line2)
let l:tmpname = tempname() let l:tmpname = tempname()
call writefile(getline(1, '$'), l:tmpname) call writefile(getline(1, '$'), l:tmpname)
let command = s:RustfmtCommandRange(l:tmpname, a:line1, a:line2) let command = s:RustfmtCommandRange(l:tmpname, a:line1, a:line2)
call s:RunRustfmt(command, l:tmpname, 0) call s:RunRustfmt(command, l:tmpname, v:false)
call delete(l:tmpname) call delete(l:tmpname)
endfunction endfunction
function! rustfmt#Format() function! rustfmt#Format()
call s:RunRustfmt(s:RustfmtCommand(), '', 0) call s:RunRustfmt(s:RustfmtCommand(), '', v:false)
endfunction endfunction
function! rustfmt#Cmd() function! rustfmt#Cmd()
@@ -257,7 +259,7 @@ function! rustfmt#PreWrite()
return return
endif endif
call s:RunRustfmt(s:RustfmtCommand(), '', 1) call s:RunRustfmt(s:RustfmtCommand(), '', v:true)
endfunction endfunction

View File

@@ -31,33 +31,34 @@ function! terraform#align()
endif endif
endfunction endfunction
function! terraform#commands(A, L, P) function! terraform#commands(ArgLead, CmdLine, CursorPos)
return [ let l:commands = [
\ 'apply', \ 'apply',
\ 'console', \ 'console',
\ 'destroy', \ 'destroy',
\ 'env', \ 'env',
\ 'fmt', \ 'fmt',
\ 'get', \ 'get',
\ 'graph', \ 'graph',
\ 'import', \ 'import',
\ 'init', \ 'init',
\ 'output', \ 'output',
\ 'plan', \ 'plan',
\ 'providers', \ 'providers',
\ 'refresh', \ 'refresh',
\ 'show', \ 'show',
\ 'taint', \ 'taint',
\ 'untaint', \ 'untaint',
\ 'validate', \ 'validate',
\ 'version', \ 'version',
\ 'workspace', \ 'workspace',
\ '0.12upgrade', \ '0.12upgrade',
\ 'debug', \ 'debug',
\ 'force-unlock', \ 'force-unlock',
\ 'push', \ 'push',
\ 'state' \ 'state'
\ ] \ ]
return join(l:commands, "\n")
endfunction endfunction
endif endif

View File

@@ -10,6 +10,9 @@ let b:did_ftplugin = 1
let s:keepcpo= &cpo let s:keepcpo= &cpo
set cpo&vim set cpo&vim
setlocal commentstring=#\ %s
setlocal comments=:#
setlocal shiftwidth=2 setlocal shiftwidth=2
setlocal softtabstop=2 setlocal softtabstop=2

View File

@@ -37,10 +37,10 @@ endif
setlocal comments=s1:/',mb:',ex:'/,:' commentstring=/'%s'/ formatoptions-=t formatoptions+=croql setlocal comments=s1:/',mb:',ex:'/,:' commentstring=/'%s'/ formatoptions-=t formatoptions+=croql
let b:endwise_addition = '\=index(["note","legend"], submatch(0))!=-1 ? "end " . submatch(0) : "end"' let b:endwise_addition = '\=index(["dot","mindmap","uml","salt","wbs"], submatch(0))!=-1 ? "@end" . submatch(0) : index(["note","legend"], submatch(0))!=-1 ? "end " . submatch(0) : "end"'
let b:endwise_words = 'loop,group,alt,note,legend' let b:endwise_words = 'loop,group,alt,note,legend,startdot,startmindmap,startuml,startsalt,startwbs'
let b:endwise_pattern = '^\s*\zs\<\(loop\|group\|alt\|note\ze[^:]*$\|legend\)\>.*$' let b:endwise_pattern = '^\s*\zs\(loop\|group\|alt\|note\ze[^:]*$\|legend\|@start\zs\(dot\|mindmap\|uml\|salt\|wbs\)\)\>.*$'
let b:endwise_syngroups = 'plantumlKeyword' let b:endwise_syngroups = 'plantumlKeyword,plantumlPreProc'
let &cpoptions = s:cpo_save let &cpoptions = s:cpo_save
unlet s:cpo_save unlet s:cpo_save

View File

@@ -47,7 +47,7 @@ endif
let s:cpo_save = &cpoptions let s:cpo_save = &cpoptions
set cpoptions&vim set cpoptions&vim
command! -nargs=+ -complete=customlist,terraform#commands -buffer Terraform execute '!terraform '.<q-args>. ' -no-color' command! -nargs=+ -complete=custom,terraform#commands -buffer Terraform execute '!terraform '.<q-args>. ' -no-color'
command! -nargs=0 -buffer TerraformFmt call terraform#fmt() command! -nargs=0 -buffer TerraformFmt call terraform#fmt()
let b:undo_ftplugin .= '|delcommand Terraform|delcommand TerraformFmt' let b:undo_ftplugin .= '|delcommand Terraform|delcommand TerraformFmt'

View File

@@ -34,7 +34,7 @@ endfunction
set path+=./node_modules/**,node_modules/** set path+=./node_modules/**,node_modules/**
set include=import\_s.\\zs[^'\"]*\\ze set include=import\_s.\\zs[^'\"]*\\ze
set includeexpr=TsIncludeExpr(v:fname) set includeexpr=TsIncludeExpr(v:fname)
set suffixesadd=.ts set suffixesadd+=.ts
" "
" TagBar " TagBar

View File

@@ -77,7 +77,7 @@ endfunction
function! s:getIncIndent() abort function! s:getIncIndent() abort
" Function to determine the s:incIndent pattern " Function to determine the s:incIndent pattern
return return
\ '^\s*\%(class\|object\|interface\|partition\|rectangle\|enum\|namespace\)\>.*{\s*$\|' . \ '^\s*\%(class\|object\|interface\|partition\|rectangle\|enum\|namespace\|package\)\>.*{\s*$\|' .
\ '^\s*\%(loop\|alt\|opt\|group\|critical\|else\|legend\|box\|if\|while\|fork\|split\)\>\|' . \ '^\s*\%(loop\|alt\|opt\|group\|critical\|else\|legend\|box\|if\|while\|fork\|split\)\>\|' .
\ '^\s*ref\>[^:]*$\|' . \ '^\s*ref\>[^:]*$\|' .
\ '^\s*[hr]\?note\>\%(\%("[^"]*" \<as\>\)\@![^:]\)*$\|' . \ '^\s*[hr]\?note\>\%(\%("[^"]*" \<as\>\)\@![^:]\)*$\|' .

View File

@@ -290,7 +290,7 @@ if !exists('g:crystal_no_special_methods')
syn match crystalInclude "\<include\>[?!]\@!" display syn match crystalInclude "\<include\>[?!]\@!" display
syn keyword crystalInclude extend require syn keyword crystalInclude extend require
syn keyword crystalKeyword caller typeof pointerof sizeof instance_sizeof syn keyword crystalKeyword caller typeof pointerof sizeof instance_sizeof
syn match crystalRecord "\<record\>[?!]\@!" display syn match crystalRecord "\<record\%(\s\+\u\w*\)\@=" display
endif endif
" Macro " Macro

View File

@@ -20,7 +20,7 @@ let b:current_syntax = 'plantuml'
syntax sync minlines=100 syntax sync minlines=100
syntax match plantumlPreProc /\%(\%(^@start\|^@end\)\%(dot\|mindmap\|uml\|salt\|wbs\)\)\|!\%(define\|definelong\|else\|enddefinelong\|endif\|exit\|if\|ifdef\|ifndef\|include\|pragma\|undef\)\s*.*/ contains=plantumlDir syntax match plantumlPreProc /\%(\%(^@start\|^@end\)\%(dot\|mindmap\|uml\|salt\|wbs\|gantt\)\)\|!\%(define\|definelong\|else\|enddefinelong\|endif\|exit\|if\|ifdef\|ifndef\|include\|pragma\|undef\|gantt\)\s*.*/ contains=plantumlDir
syntax region plantumlDir start=/\s\+/ms=s+1 end=/$/ contained syntax region plantumlDir start=/\s\+/ms=s+1 end=/$/ contained
" type " type
@@ -34,12 +34,16 @@ syntax keyword plantumlClassKeyword class interface
" Exclude 'top to bottom direction' " Exclude 'top to bottom direction'
syntax keyword plantumlKeyword accross activate again allow_mixing allowmixing also alt as autonumber bottom syntax keyword plantumlKeyword accross activate again allow_mixing allowmixing also alt as autonumber bottom
syntax keyword plantumlKeyword box break caption center create critical deactivate destroy down else elseif end syntax keyword plantumlKeyword box break caption center create critical deactivate destroy down else elseif end
syntax keyword plantumlKeyword endif endwhile footbox footer fork group header hide hnote if is kill left syntax keyword plantumlKeyword endif endwhile footbox footer fork group header hide hnote if is kill left in at are to the and
syntax keyword plantumlKeyword legend link loop mainframe namespace newpage note of on opt order over package syntax keyword plantumlKeyword legend link loop mainframe namespace newpage note of on opt order over package
syntax keyword plantumlKeyword page par partition ref repeat return right rnote rotate show skin skinparam syntax keyword plantumlKeyword page par partition ref repeat return right rnote rotate show skin skinparam
syntax keyword plantumlKeyword start stop title top up while syntax keyword plantumlKeyword start stop title top up while
" Not in 'java - jar plantuml.jar - language' output " Not in 'java - jar plantuml.jar - language' output
syntax keyword plantumlKeyword then detach split sprite syntax keyword plantumlKeyword then detach split sprite
" gantt
syntax keyword plantumlTypeKeyword project monday tuesday wednesday thursday friday saturday sunday
syntax keyword plantumlKeyword starts ends start end closed day after colored lasts happens
syntax keyword plantumlCommentTODO XXX TODO FIXME NOTE contained syntax keyword plantumlCommentTODO XXX TODO FIXME NOTE contained
syntax match plantumlColor /#[0-9A-Fa-f]\{6\}\>/ syntax match plantumlColor /#[0-9A-Fa-f]\{6\}\>/
@@ -136,6 +140,7 @@ syntax region plantumlText oneline matchgroup=plantumlSequenceDelay start=/^\.\{
" Usecase diagram " Usecase diagram
syntax match plantumlUsecaseActor /:.\{-1,}:/ contains=plantumlSpecialString syntax match plantumlUsecaseActor /:.\{-1,}:/ contains=plantumlSpecialString
" Mindmap diagram " Mindmap diagram
let s:mindmapHilightLinks = [ let s:mindmapHilightLinks = [
\ 'WarningMsg', 'Directory', 'Special', 'MoreMsg', 'Statement', 'Title', \ 'WarningMsg', 'Directory', 'Special', 'MoreMsg', 'Statement', 'Title',
@@ -143,18 +148,20 @@ let s:mindmapHilightLinks = [
\ 'Function', 'Todo' \ 'Function', 'Todo'
\ ] \ ]
syntax match plantumlMindmap1 /^[-+*][_<>]\?/ contained
let i = 1 let i = 1
let contained = [] let contained = []
while i < len(s:mindmapHilightLinks) while i < len(s:mindmapHilightLinks)
execute "syntax match plantumlMindmap" . i . " /^\\%(\\s\\|[-+*]\\)\\{" . (i - 1) . "}[-+*][_<>]\\?/ contained" execute 'syntax match plantumlMindmap' . i . ' /^\([-+*]\)\1\{' . (i - 1) . '}_\?\s\+/ contained'
execute "highlight default link plantumlMindmap" . i . " " . s:mindmapHilightLinks[i - 1] execute 'syntax match plantumlMindmap' . i . ' /^\s\{' . (i - 1) . '}\*_\?\s\+/ contained'
call add(contained, "plantumlMindmap" . i) execute 'highlight default link plantumlMindmap' . i . ' ' . s:mindmapHilightLinks[i - 1]
call add(contained, 'plantumlMindmap' . i)
let i = i + 1 let i = i + 1
endwhile endwhile
execute "syntax region plantumlMindmap oneline start=/^\\s*[-+*]_\\?/ end=/$/ contains=" . join(contained, ',') execute 'syntax region plantumlMindmap oneline start=/^\([-+*]\)\1*_\?\s/ end=/$/ contains=' . join(contained, ',')
" Markdown syntax
execute 'syntax region plantumlMindmap oneline start=/^\s*\*_\?\s/ end=/$/ contains=' . join(contained, ',')
" Skinparam keywords " Skinparam keywords
syntax case ignore syntax case ignore

View File

@@ -36,7 +36,7 @@ syn match rustAssert "\<assert\(\w\)*!" contained
syn match rustPanic "\<panic\(\w\)*!" contained syn match rustPanic "\<panic\(\w\)*!" contained
syn match rustAsync "\<async\%(\s\|\n\)\@=" syn match rustAsync "\<async\%(\s\|\n\)\@="
syn keyword rustKeyword break syn keyword rustKeyword break
syn keyword rustKeyword box nextgroup=rustBoxPlacement skipwhite skipempty syn keyword rustKeyword box
syn keyword rustKeyword continue syn keyword rustKeyword continue
syn keyword rustKeyword crate syn keyword rustKeyword crate
syn keyword rustKeyword extern nextgroup=rustExternCrate,rustObsoleteExternMod skipwhite skipempty syn keyword rustKeyword extern nextgroup=rustExternCrate,rustObsoleteExternMod skipwhite skipempty
@@ -68,14 +68,6 @@ syn keyword rustObsoleteExternMod mod contained nextgroup=rustIdentifier skipw
syn match rustIdentifier contains=rustIdentifierPrime "\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*" display contained syn match rustIdentifier contains=rustIdentifierPrime "\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*" display contained
syn match rustFuncName "\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*" display contained syn match rustFuncName "\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*" display contained
syn region rustBoxPlacement matchgroup=rustBoxPlacementParens start="(" end=")" contains=TOP contained
" Ideally we'd have syntax rules set up to match arbitrary expressions. Since
" we don't, we'll just define temporary contained rules to handle balancing
" delimiters.
syn region rustBoxPlacementBalance start="(" end=")" containedin=rustBoxPlacement transparent
syn region rustBoxPlacementBalance start="\[" end="\]" containedin=rustBoxPlacement transparent
" {} are handled by rustFoldBraces
syn region rustMacroRepeat matchgroup=rustMacroRepeatDelimiters start="$(" end=")" contains=TOP nextgroup=rustMacroRepeatCount syn region rustMacroRepeat matchgroup=rustMacroRepeatDelimiters start="$(" end=")" contains=TOP nextgroup=rustMacroRepeatCount
syn match rustMacroRepeatCount ".\?[*+]" contained syn match rustMacroRepeatCount ".\?[*+]" contained
syn match rustMacroVariable "$\w\+" syn match rustMacroVariable "$\w\+"
@@ -154,9 +146,9 @@ syn match rustEscapeError display contained /\\./
syn match rustEscape display contained /\\\([nrt0\\'"]\|x\x\{2}\)/ syn match rustEscape display contained /\\\([nrt0\\'"]\|x\x\{2}\)/
syn match rustEscapeUnicode display contained /\\u{\%(\x_*\)\{1,6}}/ syn match rustEscapeUnicode display contained /\\u{\%(\x_*\)\{1,6}}/
syn match rustStringContinuation display contained /\\\n\s*/ syn match rustStringContinuation display contained /\\\n\s*/
syn region rustString start=+b"+ skip=+\\\\\|\\"+ end=+"+ contains=rustEscape,rustEscapeError,rustStringContinuation syn region rustString matchgroup=rustStringDelimiter start=+b"+ skip=+\\\\\|\\"+ end=+"+ contains=rustEscape,rustEscapeError,rustStringContinuation
syn region rustString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=rustEscape,rustEscapeUnicode,rustEscapeError,rustStringContinuation,@Spell syn region rustString matchgroup=rustStringDelimiter start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=rustEscape,rustEscapeUnicode,rustEscapeError,rustStringContinuation,@Spell
syn region rustString start='b\?r\z(#*\)"' end='"\z1' contains=@Spell syn region rustString matchgroup=rustStringDelimiter start='b\?r\z(#*\)"' end='"\z1' contains=@Spell
" Match attributes with either arbitrary syntax or special highlighting for " Match attributes with either arbitrary syntax or special highlighting for
" derives. We still highlight strings and comments inside of the attribute. " derives. We still highlight strings and comments inside of the attribute.
@@ -296,6 +288,7 @@ hi def link rustEscapeUnicode rustEscape
hi def link rustEscapeError Error hi def link rustEscapeError Error
hi def link rustStringContinuation Special hi def link rustStringContinuation Special
hi def link rustString String hi def link rustString String
hi def link rustStringDelimiter String
hi def link rustCharacterInvalid Error hi def link rustCharacterInvalid Error
hi def link rustCharacterInvalidUnicode rustCharacterInvalid hi def link rustCharacterInvalidUnicode rustCharacterInvalid
hi def link rustCharacter Character hi def link rustCharacter Character
@@ -352,7 +345,6 @@ hi def link rustLifetime Special
hi def link rustLabel Label hi def link rustLabel Label
hi def link rustExternCrate rustKeyword hi def link rustExternCrate rustKeyword
hi def link rustObsoleteExternMod Error hi def link rustObsoleteExternMod Error
hi def link rustBoxPlacementParens Delimiter
hi def link rustQuestionMark Special hi def link rustQuestionMark Special
hi def link rustAsync rustKeyword hi def link rustAsync rustKeyword
hi def link rustAwait rustKeyword hi def link rustAwait rustKeyword

View File

@@ -8,8 +8,8 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'svelte') == -1
" URL: https://github.com/evanleck/vim-svelte " URL: https://github.com/evanleck/vim-svelte
" "
" Like vim-jsx, this depends on the pangloss/vim-javascript syntax package (and " Like vim-jsx, this depends on the pangloss/vim-javascript syntax package (and
" is tested against it exclusively). If you're using vim-polyglot (like I am), " is tested against it exclusively). If you're using vim-polyglot, then you're
" then you're all set. " all set.
if exists("b:current_syntax") if exists("b:current_syntax")
finish finish
@@ -26,13 +26,14 @@ syntax match htmlTagName contained "\<[a-zA-Z:\.]*\>"
" "bind:something", etc. " "bind:something", etc.
syntax match svelteKeyword "\<[a-z]\+:[a-zA-Z|]\+=" contained containedin=htmlTag syntax match svelteKeyword "\<[a-z]\+:[a-zA-Z|]\+=" contained containedin=htmlTag
" Mixed-case attributes are likely props.
syntax match svelteKeyword "\<[a-z]\+:[a-zA-Z|]\+=" contained containedin=htmlTag
" The "slot" attribute has special meaning. " The "slot" attribute has special meaning.
syntax keyword svelteKeyword slot contained containedin=htmlTag syntax keyword svelteKeyword slot contained containedin=htmlTag
" According to vim-jsx, you can let jsBlock take care of ending the region. " According to vim-jsx, you can let jsBlock take care of ending the region.
" https://github.com/mxw/vim-jsx/blob/master/after/syntax/jsx.vim " https://github.com/mxw/vim-jsx/blob/master/after/syntax/jsx.vim
"
" ALLBUT,htmlSpecialTagName keeps Vim from marking CSS regions as jsBlock.
syntax region svelteExpression start="{" end="" contains=jsBlock,javascriptBlock containedin=htmlString,htmlTag,htmlArg,htmlValue,htmlH1,htmlH2,htmlH3,htmlH4,htmlH5,htmlH6,htmlHead,htmlTitle,htmlBoldItalicUnderline,htmlUnderlineBold,htmlUnderlineItalicBold,htmlUnderlineBoldItalic,htmlItalicUnderline,htmlItalicBold,htmlItalicBoldUnderline,htmlItalicUnderlineBold,htmlLink,htmlLeadingSpace,htmlBold,htmlBoldUnderline,htmlBoldItalic,htmlBoldUnderlineItalic,htmlUnderline,htmlUnderlineItalic,htmlItalic,htmlStrike,javaScript syntax region svelteExpression start="{" end="" contains=jsBlock,javascriptBlock containedin=htmlString,htmlTag,htmlArg,htmlValue,htmlH1,htmlH2,htmlH3,htmlH4,htmlH5,htmlH6,htmlHead,htmlTitle,htmlBoldItalicUnderline,htmlUnderlineBold,htmlUnderlineItalicBold,htmlUnderlineBoldItalic,htmlItalicUnderline,htmlItalicBold,htmlItalicBoldUnderline,htmlItalicUnderlineBold,htmlLink,htmlLeadingSpace,htmlBold,htmlBoldUnderline,htmlBoldItalic,htmlBoldUnderlineItalic,htmlUnderline,htmlUnderlineItalic,htmlItalic,htmlStrike,javaScript
" Block conditionals. " Block conditionals.