hook global BufCreate .*\.svelte %[
set-option buffer filetype svelte
]
hook global WinSetOption filetype=(svelte) %{
require-module html
hook window ModeChange pop:insert:.* -group "svelte-trim-indent" html-trim-indent
hook window InsertChar '>' -group "svelte-indent" html-indent-on-greater-than
hook window InsertChar \n -group "svelte-indent" html-indent-on-new-line
hook -once -always window WinSetOption "filetype=.*" "
remove-hooks window ""svelte-.+""
"
}
hook -group svelte-highlight global WinSetOption filetype=(svelte) %{
add-highlighter "window/svelte" ref svelte
hook -once -always window WinSetOption "filetype=.*" "
remove-highlighter ""window/svelte""
"
}
add-highlighter shared/svelte regions
add-highlighter shared/svelte/comment region fill comment
add-highlighter shared/svelte/tag region < > regions
add-highlighter shared/svelte/style region ) ref css
add-highlighter shared/svelte/script region ) ref javascript
add-highlighter shared/svelte/block region \{((#|:|/)\w+)? \} regions
add-highlighter shared/svelte/block/ default-region fill meta
add-highlighter shared/svelte/block/inner region -recurse \{ \{((#|:|/)\w+)?\K (?=\}) ref javascript
add-highlighter shared/svelte/tag/base default-region ref html/tag
add-highlighter shared/svelte/tag/block region -recurse \{ \{ \} ref svelte/block