Merge pull request #45 from leafOfTree/undo-ftplugin

Undo ftplugin and indent settings when filetype changes
This commit is contained in:
leaf authored and GitHub committed 2026-10-21 20:22:29 +08:00
commit 25e386280c
5 files changed
+28

No files matched your search

+5
View File
@@ -1,8 +1,12 @@
if exists("b:did_ftplugin") | finish | endif
let b:did_ftplugin = 1
let b:undo_ftplugin = (exists('b:undo_ftplugin') ? b:undo_ftplugin.' | ' : '')
\ . 'unlet! b:syng_str b:syng_strcom'
if !has('nvim')
setlocal matchpairs+=<:>
let b:undo_ftplugin .= ' | setlocal matchpairs<'
endif
if exists("loaded_matchit")
@@ -11,6 +15,7 @@ if exists("loaded_matchit")
\ '<\@<=[ou]l\>[^>]*\%(>\|$\):<\@<=li\>:<\@<=/[ou]l>,' .
\ '<\@<=dl\>[^>]*\%(>\|$\):<\@<=d[td]\>:<\@<=/dl>,' .
\ '<\@<=\([^/][^ \t>]*\)[^>]*\%(>\|$\):<\@<=/\1>'
let b:undo_ftplugin .= ' | unlet! b:match_ignorecase b:match_words'
endif
" Indent correctly with template string for vim-javascript/built-in
+2
View File
@@ -14,6 +14,8 @@ function! VueFoldMain(...)
setlocal foldexpr=GetVueFold(v:lnum)
setlocal foldmethod=expr
let b:undo_ftplugin = (exists('b:undo_ftplugin') ? b:undo_ftplugin.' | ' : '')
\ . 'setlocal foldexpr< foldmethod<'
endif
endfunction
+1
View File
@@ -36,6 +36,7 @@ function! s:SetVueIndent()
" XML indentkeys
setlocal indentkeys+=*<Return>,<>>,<<>,/
setlocal indentexpr=GetVueIndent()
let b:undo_indent = 'setlocal indentexpr< indentkeys< smartindent<'
endfunction
function! s:GetIndentFile(syntax)
+17
View File
@@ -0,0 +1,17 @@
" Undo settings when filetype changes
let g:vim_vue_plugin_config = {'foldexpr': 1}
packadd matchit
function! Check()
call ExpectEqual(&l:foldmethod, 'expr', 'foldmethod')
call ExpectEqual(&l:indentexpr, 'GetVueIndent()', 'indentexpr')
call ExpectEqual(exists('b:match_words'), 1, 'b:match_words')
setlocal filetype=text
call ExpectEqual(&l:foldmethod, 'manual', 'foldmethod after undo')
call ExpectEqual(&l:indentexpr, '', 'indentexpr after undo')
call ExpectEqual(exists('b:match_words'), 0, 'b:match_words after undo')
call ExpectEqual(exists('b:syng_str'), 0, 'b:syng_str after undo')
if !has('nvim')
call ExpectEqual(&l:matchpairs, &g:matchpairs, 'matchpairs after undo')
endif
endfunction
+3
View File
@@ -0,0 +1,3 @@
<template>
<div>x</div>
</template>