aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Ryder <tom@sanctum.geek.nz>2018-06-17 15:00:23 +1200
committerTom Ryder <tom@sanctum.geek.nz>2018-06-17 15:00:23 +1200
commitd6add13a718e260b27a54c80d840f46206faf95d (patch)
tree7e55e6fd05d24bb54037c9c4e337c29e0ce2d3f3
parent1b5501a233c9449f04951b43adea6330d3394d64 (diff)
downloaddotfiles-d6add13a718e260b27a54c80d840f46206faf95d.tar.gz
Use autoload function for tidy filters
-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