aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--vim/after/ftplugin/html/tidy.vim19
-rw-r--r--vim/after/ftplugin/perl/tidy.vim19
-rw-r--r--vim/autoload/filter.vim7
3 files changed, 19 insertions, 26 deletions
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 <buffer> <silent> <unique>
\ <Plug>HtmlTidy
- \ :<C-U>call <SID>HtmlTidy()<CR>
+ \ :<C-U>call filter#Stable('tidy -quiet')<CR>
let b:undo_ftplugin = b:undo_ftplugin
\ . '|nunmap <buffer> <Plug>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 <buffer> <silent> <unique>
\ <Plug>PerlTidy
- \ :<C-U>call <SID>PerlTidy()<CR>
+ \ :<C-U>call filter#Stable('perltidy')<CR>
let b:undo_ftplugin = b:undo_ftplugin
\ . '|nunmap <buffer> <Plug>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