From 0e42998a279356347801a81313b3eea337e2accb Mon Sep 17 00:00:00 2001 From: Tim Pope Date: Wed, 2 Jul 2014 19:18:05 -0400 Subject: [PATCH] Provide :RunAllTests Don't waste :RunTests! on this cleverness. --- doc/fireplace.txt | 2 +- plugin/fireplace.vim | 35 ++++++++++++++++++++++------------- 2 files changed, 23 insertions(+), 14 deletions(-) diff --git a/doc/fireplace.txt b/doc/fireplace.txt index bbc2c8f..c43b855 100644 --- a/doc/fireplace.txt +++ b/doc/fireplace.txt @@ -123,7 +123,7 @@ stack trace is loaded into the |location-list|. Use |:lopen| to view it. :RunTests [ns] [...] Call clojure.test/run-tests on the given namespaces and load the results into the quickfix list. -:RunTests! [pattern] Call clojure.test/run-all-tests with the given pattern +:RunAllTests [pattern] Call clojure.test/run-all-tests with the given pattern and load the results into the quickfix list. *fireplace-cp* diff --git a/plugin/fireplace.vim b/plugin/fireplace.vim index bdb9e56..a789b18 100644 --- a/plugin/fireplace.vim +++ b/plugin/fireplace.vim @@ -1469,23 +1469,32 @@ function! s:RunTests(bang, ...) abort if &autowrite || &autowriteall silent! wall endif - let pre = '' - if a:bang && a:0 - let expr = '(clojure.test/run-all-tests #"'.join(a:000, '|').'")' - elseif a:bang - let expr = '(clojure.test/run-all-tests)' - else - let reqs = map(copy(a:000), '"''".v:val') - let pre = '(clojure.core/require '.join(empty(a:000) ? ["'".fireplace#ns()] : reqs, ' ').' :reload) ' - let expr = join(['(clojure.test/run-tests'] + reqs, ' ').')' - endif + let reqs = map(copy(a:000), '"''".v:val') + let pre = '(clojure.core/require '.join(empty(a:000) ? ["'".fireplace#ns()] : reqs, ' ').' :reload) ' + let expr = join(['(clojure.test/run-tests'] + reqs, ' ').')' call fireplace#capture_test_run(expr, pre) echo expr endfunction -augroup fireplace_command - autocmd! - autocmd FileType clojure command! -buffer -bar -bang -nargs=* +function! s:RunAllTests(bang, ...) abort + if a:0 + let expr = '(clojure.test/run-all-tests #"'.join(a:000, '|').'")' + else + let expr = '(clojure.test/run-all-tests)' + endif + call fireplace#capture_test_run(expr) + echo expr +endfunction + +function! s:set_up_tests() abort + command! -buffer -bar -bang -nargs=* \ -complete=customlist,fireplace#ns_complete RunTests \ call s:RunTests(0, ) + command! -buffer -bang -nargs=* RunAllTests + \ call s:RunAllTests(0, ) +endfunction + +augroup fireplace_tests + autocmd! + autocmd FileType clojure call s:set_up_tests() augroup END