summaryrefslogtreecommitdiffstats
path: root/autoload/cargo.vim
diff options
context:
space:
mode:
Diffstat (limited to 'autoload/cargo.vim')
-rw-r--r--autoload/cargo.vim12
1 files changed, 11 insertions, 1 deletions
diff --git a/autoload/cargo.vim b/autoload/cargo.vim
index f24db923..ffa946da 100644
--- a/autoload/cargo.vim
+++ b/autoload/cargo.vim
@@ -5,7 +5,17 @@ function! cargo#Load()
endfunction
function! cargo#cmd(args)
- execute "! cargo" a:args
+ " Trim trailing spaces. This is necessary since :terminal command parses
+ " trailing spaces as an empty argument.
+ let args = substitute(a:args, '\s\+$', '', '')
+ if has('terminal')
+ let cmd = 'terminal'
+ elseif has('nvim')
+ let cmd = 'noautocmd new | terminal'
+ else
+ let cmd = '!'
+ endif
+ execute cmd 'cargo' args
endfunction
function! s:nearest_cargo(...) abort