Update dependencies

This commit is contained in:
Adam Stankiewicz
2018-07-08 15:16:28 +02:00
parent 33f610feb7
commit 055f7710b6
38 changed files with 1313 additions and 868 deletions

View File

@@ -1,89 +1,91 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'rust') == -1
function! cargo#cmd(args)
silent! clear
if !a:args
execute "!" . "cargo ". a:args
else
echom "Missing arguments"
endif
function! cargo#Load()
" Utility call to get this script loaded, for debugging
endfunction
function! cargo#build(args)
silent! clear
if !a:args
execute "!" . "cargo build " . a:args
function! cargo#cmd(args)
execute "! cargo" a:args
endfunction
function! s:nearest_cargo(...) abort
" If the second argument is not specified, the first argument determines
" whether we will start from the current directory or the directory of the
" current buffer, otherwise, we start with the provided path on the
" second argument.
let l:is_getcwd = get(a:, 1, 0)
if l:is_getcwd
let l:starting_path = get(a:, 2, getcwd())
else
execute "!" . "cargo build"
let l:starting_path = get(a:, 2, expand('%:p:h'))
endif
silent! clear
execute "!" . "cargo build"
return findfile('Cargo.toml', l:starting_path . ';')
endfunction
function! cargo#nearestCargo(is_getcwd) abort
return s:nearest_cargo(a:is_getcwd)
endfunction
function! cargo#nearestWorkspaceCargo(is_getcwd) abort
let l:nearest = s:nearest_cargo(a:is_getcwd)
while l:nearest !=# ''
for l:line in readfile(l:nearest, '', 0x100)
if l:line =~# '\V[workspace]'
return l:nearest
endif
endfor
let l:next = fnamemodify(l:nearest, ':p:h:h')
let l:nearest = s:nearest_cargo(0, l:next)
endwhile
return ''
endfunction
function! cargo#nearestRootCargo(is_getcwd) abort
" Try to find a workspace Cargo.toml, and if not found, take the nearest
" regular Cargo.toml
let l:workspace_cargo = cargo#nearestWorkspaceCargo(a:is_getcwd)
if l:workspace_cargo !=# ''
return l:workspace_cargo
endif
return s:nearest_cargo(a:is_getcwd)
endfunction
function! cargo#build(args)
call cargo#cmd("build " . a:args)
endfunction
function! cargo#clean(args)
silent! clear
if !a:args
execute "!" . "cargo clean " . a:args
else
execute "!" . "cargo clean"
endif
silent! clear
execute "!" . "cargo clean"
call cargo#cmd("clean " . a:args)
endfunction
function! cargo#doc(args)
silent! clear
if !a:args
execute "!" . "cargo doc " . a:args
else
execute "!" . "cargo doc"
endif
call cargo#cmd("doc " . a:args)
endfunction
function! cargo#new(args)
silent! clear
if !a:args
execute "!cargo new " . a:args
:cd `=a:args`
else
echom "Missing arguments"
endif
call cargo#cmd("new " . a:args)
cd `=a:args`
endfunction
function! cargo#init(args)
silent! clear
if !a:args
execute "!" . "cargo init " . a:args
else
execute "!" . "cargo init"
endif
call cargo#cmd("init " . a:args)
endfunction
function! cargo#run(args)
silent! clear
if !a:args
execute "!" . "cargo run " . a:args
else
execute "!" . "cargo run"
endif
call cargo#cmd("run " . a:args)
endfunction
function! cargo#test(args)
silent! clear
if !a:args
execute "!" . "cargo test " . a:args
else
execute "!" . "cargo test"
endif
call cargo#cmd("test " . a:args)
endfunction
function! cargo#bench(args)
silent! clear
if !a:args
execute "!" . "cargo bench " . a:args
else
execute "!" . "cargo bench"
endif
call cargo#cmd("bench " . a:args)
endfunction
" vim: set et sw=4 sts=4 ts=8:
endif