aboutsummaryrefslogtreecommitdiff
path: root/vim/autoload
diff options
context:
space:
mode:
authorTom Ryder <tom@sanctum.geek.nz>2018-06-17 21:57:54 +1200
committerTom Ryder <tom@sanctum.geek.nz>2018-06-17 21:57:54 +1200
commite2e6288cf3680469d6f1b3f257876c6ca2f88ac0 (patch)
tree06ce87523cbe18d960838d1784943a49c226bc97 /vim/autoload
parentMerge branch 'release/v0.54.0' (diff)
parentBump VERSION (diff)
downloaddotfiles-e2e6288cf3680469d6f1b3f257876c6ca2f88ac0.tar.gz
dotfiles-e2e6288cf3680469d6f1b3f257876c6ca2f88ac0.zip
Merge branch 'release/v0.55.0'v0.55.0
* release/v0.55.0: Bump VERSION Update auto_cache_dirs.vim Update markdown_autoformat.vim Update insert_suspend_hlsearch.vim Use autoload function for tidy filters Refine compiler#Make() function Use autoload function for temp-makeprg :lmake Add local copy of php.vim compiler
Diffstat (limited to 'vim/autoload')
-rw-r--r--vim/autoload/compiler.vim33
-rw-r--r--vim/autoload/filter.vim7
2 files changed, 40 insertions, 0 deletions
diff --git a/vim/autoload/compiler.vim b/vim/autoload/compiler.vim
new file mode 100644
index 00000000..b4bf66b6
--- /dev/null
+++ b/vim/autoload/compiler.vim
@@ -0,0 +1,33 @@
+" Run a compiler check (:lmake, :lwindow) without trampling over previous
+" settings, by temporarily loading the compiler with the given name
+function! compiler#Make(compiler) abort
+
+ " Save the given compiler or failing that the current 'makeprg' and
+ " 'errorformat' values
+ if exists('b:current_compiler')
+ let l:save_compiler = b:current_compiler
+ else
+ let l:save_makeprg = &makeprg
+ let l:save_errorformat = &errorformat
+ endif
+
+ " Choose the compiler
+ execute 'compiler ' . a:compiler
+
+ " Run the 'makeprg' with results in location list
+ lmake!
+
+ " If we saved a compiler, switch back to it, otherwise restore the previous
+ " values for 'makeprg' and 'errorformat'
+ if exists('l:save_compiler')
+ execute 'compiler ' . l:save_compiler
+ else
+ unlet! b:current_compiler
+ let &l:makeprg = l:save_makeprg
+ let &l:errorformat = l:save_errorformat
+ endif
+
+ " Show location list
+ lwindow
+
+endfunction
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