let files = filter(globpath(&rtp, 'ftplugin/svelte.vim', 1, 1), { _, v -> v !~ "vim-polyglot" && v !~ $VIMRUNTIME && v !~ "after" }) if len(files) > 0 exec 'source ' . files[0] finish endif if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'svelte') == -1 " Vim filetype plugin " Language: Svelte 3 (HTML/JavaScript) " Author: Evan Lecklider " Maintainer: Evan Lecklide " 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