diff options
Diffstat (limited to 'ftplugin/svelte.vim')
-rw-r--r-- | ftplugin/svelte.vim | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/ftplugin/svelte.vim b/ftplugin/svelte.vim new file mode 100644 index 00000000..3c3df23a --- /dev/null +++ b/ftplugin/svelte.vim @@ -0,0 +1,47 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'svelte') == -1 + +" Vim filetype plugin +" Language: Svelte 3 (HTML/JavaScript) +" Author: Evan Lecklider <evan@lecklider.com> +" Maintainer: Evan Lecklide <evan@lecklider.com> +" URL: https://github.com/evanleck/vim-svelte +if (exists('b:did_ftplugin')) + finish +endif +let b:did_ftplugin = 1 + +" Matchit support +if exists('loaded_matchit') && !exists('b:match_words') + let b:match_ignorecase = 0 + + " In order: + " + " 1. Svelte control flow keywords. + " 2. Parens. + " 3-5. HTML tags pulled from Vim itself. + " + " https://github.com/vim/vim/blob/5259275347667a90fb88d8ea74331f88ad68edfc/runtime/ftplugin/html.vim#L29-L35 + let b:match_words = + \ '#\%(if\|await\|each\)\>:\:\%(else\|catch\|then\)\>:\/\%(if\|await\|each\)\>,' . + \ '{:},' . + \ '<\@<=[ou]l\>[^>]*\%(>\|$\):<\@<=li\>:<\@<=/[ou]l>,' . + \ '<\@<=dl\>[^>]*\%(>\|$\):<\@<=d[td]\>:<\@<=/dl>,' . + \ '<\@<=\([^/][^ \t>]*\)[^>]*\%(>\|$\):<\@<=/\1>' +endif + +" ALE fixing and linting. +if exists('g:loaded_ale') + if !exists('b:ale_fixers') + let b:ale_fixers = ['eslint', 'prettier', 'prettier_standard'] + endif + + if !exists('b:ale_linter_aliases') + let b:ale_linter_aliases = ['css', 'javascript'] + endif + + if !exists('b:ale_linters') + let b:ale_linters = ['stylelint', 'eslint'] + endif +endif + +endif |