From d6add13a718e260b27a54c80d840f46206faf95d Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Sun, 17 Jun 2018 15:00:23 +1200 Subject: Use autoload function for tidy filters --- vim/after/ftplugin/html/tidy.vim | 19 ++++++------------- vim/after/ftplugin/perl/tidy.vim | 19 ++++++------------- vim/autoload/filter.vim | 7 +++++++ 3 files changed, 19 insertions(+), 26 deletions(-) create mode 100644 vim/autoload/filter.vim diff --git a/vim/after/ftplugin/html/tidy.vim b/vim/after/ftplugin/html/tidy.vim index 5a8ded7e..3faefcb7 100644 --- a/vim/after/ftplugin/html/tidy.vim +++ b/vim/after/ftplugin/html/tidy.vim @@ -15,27 +15,20 @@ if &filetype !=# 'html' finish endif +" Don't load if the user doesn't want ftplugin mappings +if exists('g:no_plugin_maps') || exists('g:no_html_maps') + finish +endif + " Flag as loaded let b:did_ftplugin_html_tidy = 1 let b:undo_ftplugin = b:undo_ftplugin \ . '|unlet b:did_ftplugin_html_tidy' -" Plugin function -function s:HtmlTidy() - let l:view = winsaveview() - %!tidy -quiet - call winrestview(l:view) -endfunction - -" Stop here if the user doesn't want ftplugin mappings -if exists('g:no_plugin_maps') || exists('g:no_html_maps') - finish -endif - " Define a mapping target nnoremap \ HtmlTidy - \ :call HtmlTidy() + \ :call filter#Stable('tidy -quiet') let b:undo_ftplugin = b:undo_ftplugin \ . '|nunmap HtmlTidy' diff --git a/vim/after/ftplugin/perl/tidy.vim b/vim/after/ftplugin/perl/tidy.vim index f6744f3a..64f0eda2 100644 --- a/vim/after/ftplugin/perl/tidy.vim +++ b/vim/after/ftplugin/perl/tidy.vim @@ -10,27 +10,20 @@ if exists('b:did_ftplugin_perl_tidy') finish endif +" Don't load if the user doesn't want ftplugin mappings +if exists('g:no_plugin_maps') || exists('g:no_perl_maps') + finish +endif + " Flag as loaded let b:did_ftplugin_perl_tidy = 1 let b:undo_ftplugin = b:undo_ftplugin \ . '|unlet b:did_ftplugin_perl_tidy' -" Plugin function -function s:PerlTidy() - let l:view = winsaveview() - %!perltidy - call winrestview(l:view) -endfunction - -" Stop here if the user doesn't want ftplugin mappings -if exists('g:no_plugin_maps') || exists('g:no_perl_maps') - finish -endif - " Define a mapping target nnoremap \ PerlTidy - \ :call PerlTidy() + \ :call filter#Stable('perltidy') let b:undo_ftplugin = b:undo_ftplugin \ . '|nunmap PerlTidy' diff --git a/vim/autoload/filter.vim b/vim/autoload/filter.vim new file mode 100644 index 00000000..f499f432 --- /dev/null +++ b/vim/autoload/filter.vim @@ -0,0 +1,7 @@ +" Run a filter over the entire buffer, but save the window position and +" restore it after doing so +function! filter#Stable(command) abort + let l:view = winsaveview() + execute '%' . a:command + call winrestview(l:view) +endfunction -- cgit v1.2.3