diff options
author | Tom Ryder <tom@sanctum.geek.nz> | 2018-06-17 12:07:14 +1200 |
---|---|---|
committer | Tom Ryder <tom@sanctum.geek.nz> | 2018-06-17 12:07:14 +1200 |
commit | 1b5501a233c9449f04951b43adea6330d3394d64 (patch) | |
tree | af5c7ec4f3c853c98dac3f950ae78e9c8581c4a3 /vim/autoload | |
parent | Use autoload function for temp-makeprg :lmake (diff) | |
download | dotfiles-1b5501a233c9449f04951b43adea6330d3394d64.tar.gz dotfiles-1b5501a233c9449f04951b43adea6330d3394d64.zip |
Refine compiler#Make() function
Diffstat (limited to 'vim/autoload')
-rw-r--r-- | vim/autoload/compiler.vim | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/vim/autoload/compiler.vim b/vim/autoload/compiler.vim index 37e46275..b4bf66b6 100644 --- a/vim/autoload/compiler.vim +++ b/vim/autoload/compiler.vim @@ -1,11 +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! - lwindow + + " 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 |