]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
runtime(svelte): add matchit support to svelte filetype plugin
author231tr0n <zeltronsrikar@gmail.com>
Sun, 6 Apr 2025 15:28:11 +0000 (17:28 +0200)
committerChristian Brabandt <cb@256bit.org>
Sun, 6 Apr 2025 15:28:11 +0000 (17:28 +0200)
closes: #17052

Signed-off-by: 231tr0n <zeltronsrikar@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
runtime/ftplugin/svelte.vim

index e0ec4e0ae377a5b96b0195ff528e309d1e8a97a3..5114de256c765186c984f209d9c61dc1d9f29079 100644 (file)
@@ -1,13 +1,40 @@
 " Vim filetype plugin
 " Language:    svelte
 " Maintainer:  Igor Lacerda <igorlafarsi@gmail.com>
-" Last Change: 2024 Jun 09
+" Last Change: 2025 Apr 06
 
 if exists('b:did_ftplugin')
   finish
 endif
 let b:did_ftplugin = 1
 
-setl commentstring=<!--\ %s\ -->
+let s:cpo_sav = &cpo
+set cpo&vim
 
-let b:undo_ftplugin = 'setl cms<'
+setlocal matchpairs+=<:>
+setlocal commentstring=<!--\ %s\ -->
+setlocal comments=s:<!--,m:\ \ \ \ ,e:-->
+
+let b:undo_ftplugin = 'setlocal comments< commentstring< matchpairs<'
+
+if exists('&omnifunc')
+  setlocal omnifunc=htmlcomplete#CompleteTags
+  call htmlcomplete#DetectOmniFlavor()
+  let b:undo_ftplugin ..= " | setlocal omnifunc<"
+endif
+
+if exists("loaded_matchit") && !exists("b:match_words")
+  let b:match_ignorecase = 1
+  let b:match_words = '<:>,' .
+    \ '<\@<=[ou]l\>[^>]*\%(>\|$\):<\@<=li\>:<\@<=/[ou]l>,' .
+    \ '<\@<=dl\>[^>]*\%(>\|$\):<\@<=d[td]\>:<\@<=/dl>,' .
+    \ '<\@<=\([^/][^ \t>]*\)[^>]*\%(>\|$\):<\@<=/\1>,' .
+    \ '{#\(if\|each\)[^}]*}:{\:else[^}]*}:{\/\(if\|each\)},' .
+    \ '{#await[^}]*}:{\:then[^}]*}:{\:catch[^}]*}:{\/await},' .
+    \ '{#snippet[^}]*}:{\/snippet},' .
+    \ '{#key[^}]*}:{\/key}'
+  let b:html_set_match_words = 1
+  let b:undo_ftplugin ..= " | unlet! b:match_ignorecase b:match_words b:html_set_match_words"
+endif
+let &cpo = s:cpo_sav
+unlet! s:cpo_sav