diff --git a/plugin/AbuseTheForce.vim b/plugin/AbuseTheForce.vim index c579b2b..29a7c82 100644 --- a/plugin/AbuseTheForce.vim +++ b/plugin/AbuseTheForce.vim @@ -1,28 +1,29 @@ +if !exists("g:abusetheforce_dispatch_background") + let g:abusetheforce_dispatch_background = 0 +end + function! AbuseTheForceDeploy() let filePath = expand("%") - "let command = "!echo \"" . filePath . "\"" - let command = "!abusetheforce deploy file \"" . filePath . "\"" - execute command + let command = "abusetheforce deploy file \"" . filePath . "\"" + call AbuseTheForceTryStart(command) endfunction function! AbuseTheForceDeployTest() let filePath = expand("%") - "let command = "!echo \"" . filePath . "\"" - let command = "!abusetheforce deploy test \"" . filePath . "\"" - execute command + let command = "abusetheforce deploy test \"" . filePath . "\"" + call AbuseTheForceTryStart(command) endfunction function! AbuseTheForceRetrieve() let filePath = expand("%") - "let command = "!echo \"" . filePath . "\"" - let command = "!abusetheforce retrieve file \"" . filePath . "\"" - execute command + let command = "abusetheforce retrieve file \"" . filePath . "\"" + call AbuseTheForceTryStart(command) endfunction @@ -31,16 +32,43 @@ function! AbuseTheForceTarget(...) if a:0 > 0 if a:1 == "?" - let command = "!abusetheforce target list" + let command = "abusetheforce target list" else let target = a:1 - let command = "!abusetheforce target activate \"" . target . "\"" + let command = "abusetheforce target activate \"" . target . "\"" + end + else + let command = "abusetheforce target" + end + + if exists("l:command") + call AbuseTheForceTryStart(command) + end + +endfunction + +" Try to run the command using vim-dispatch +" (https://github.com/tpope/vim-dispatch) +function! AbuseTheForceTryStart(...) + + " Make sure we have a parameter + if a:0 > 0 + let command = a:1 + + if exists(":Dispatch") + " Determine foreground or background + if g:abusetheforce_dispatch_background == 1 + let fgbg = "! " + else + let fgbg = " " + end + + let command = "Dispatch" . fgbg . command + else + let command = "!" . command end - execute command - else - let command = "!abusetheforce target" execute command end