__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
" Last Modified: 2023-09-11
function! cargo#Load()
" Utility call to get this script loaded, for debugging
endfunction
function! cargo#cmd(args) abort
" Trim trailing spaces. This is necessary since :terminal command parses
" trailing spaces as an empty argument.
let args = substitute(a:args, '\s\+$', '', '')
if exists('g:cargo_shell_command_runner')
let cmd = g:cargo_shell_command_runner
elseif 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
" 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
let l:starting_path = get(a:, 2, expand('%:p:h'))
endif
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#check(args)
call cargo#cmd("check " . a:args)
endfunction
function! cargo#clean(args)
call cargo#cmd("clean " . a:args)
endfunction
function! cargo#doc(args)
call cargo#cmd("doc " . a:args)
endfunction
function! cargo#new(args)
call cargo#cmd("new " . a:args)
cd `=a:args`
endfunction
function! cargo#init(args)
call cargo#cmd("init " . a:args)
endfunction
function! cargo#run(args)
call cargo#cmd("run " . a:args)
endfunction
function! cargo#test(args)
call cargo#cmd("test " . a:args)
endfunction
function! cargo#bench(args)
call cargo#cmd("bench " . a:args)
endfunction
function! cargo#update(args)
call cargo#cmd("update " . a:args)
endfunction
function! cargo#search(args)
call cargo#cmd("search " . a:args)
endfunction
function! cargo#publish(args)
call cargo#cmd("publish " . a:args)
endfunction
function! cargo#install(args)
call cargo#cmd("install " . a:args)
endfunction
function! cargo#runtarget(args)
let l:filename = expand('%:p')
let l:read_manifest = system('cargo read-manifest')
let l:metadata = json_decode(l:read_manifest)
let l:targets = get(l:metadata, 'targets', [])
let l:did_run = 0
for l:target in l:targets
let l:src_path = get(l:target, 'src_path', '')
let l:kinds = get(l:target, 'kind', [])
let l:name = get(l:target, 'name', '')
if l:src_path == l:filename
if index(l:kinds, 'example') != -1
let l:did_run = 1
call cargo#run("--example " . shellescape(l:name) . " " . a:args)
return
elseif index(l:kinds, 'bin') != -1
let l:did_run = 1
call cargo#run("--bin " . shellescape(l:name) . " " . a:args)
return
endif
endif
endfor
if l:did_run != 1
call cargo#run(a:args)
return
endif
endfunction
" vim: set et sw=4 sts=4 ts=8:
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| dist | Folder | 0755 |
|
|
| xml | Folder | 0755 |
|
|
| zig | Folder | 0755 |
|
|
| RstFold.vim | File | 1.86 KB | 0644 |
|
| ada.vim | File | 22.04 KB | 0644 |
|
| adacomplete.vim | File | 3.58 KB | 0644 |
|
| bitbake.vim | File | 3.02 KB | 0644 |
|
| cargo.vim | File | 3.96 KB | 0644 |
|
| ccomplete.vim | File | 19.38 KB | 0644 |
|
| clojurecomplete.vim | File | 8.66 KB | 0644 |
|
| context.vim | File | 2.46 KB | 0644 |
|
| contextcomplete.vim | File | 656 B | 0644 |
|
| csscomplete.vim | File | 42.24 KB | 0644 |
|
| decada.vim | File | 2.93 KB | 0644 |
|
| freebasic.vim | File | 1.02 KB | 0644 |
|
| getscript.vim | File | 24.29 KB | 0644 |
|
| gnat.vim | File | 5.21 KB | 0644 |
|
| gzip.vim | File | 6.55 KB | 0644 |
|
| haskellcomplete.vim | File | 103.31 KB | 0644 |
|
| htmlcomplete.vim | File | 24.88 KB | 0644 |
|
| javascriptcomplete.vim | File | 27.49 KB | 0644 |
|
| modula2.vim | File | 691 B | 0644 |
|
| netrw.vim | File | 555.72 KB | 0644 |
|
| netrwFileHandlers.vim | File | 9.89 KB | 0644 |
|
| netrwSettings.vim | File | 10.09 KB | 0644 |
|
| netrw_gitignore.vim | File | 1.21 KB | 0644 |
|
| paste.vim | File | 738 B | 0644 |
|
| phpcomplete.vim | File | 346.21 KB | 0644 |
|
| python.vim | File | 7.7 KB | 0644 |
|
| python3complete.vim | File | 21.16 KB | 0644 |
|
| pythoncomplete.vim | File | 21.59 KB | 0644 |
|
| racket.vim | File | 7.29 KB | 0644 |
|
| rubycomplete.vim | File | 25.2 KB | 0644 |
|
| rust.vim | File | 16.58 KB | 0644 |
|
| rustfmt.vim | File | 7.8 KB | 0644 |
|
| spellfile.vim | File | 6.03 KB | 0644 |
|
| sqlcomplete.vim | File | 38.27 KB | 0644 |
|
| syntaxcomplete.vim | File | 32.86 KB | 0644 |
|
| tar.vim | File | 29.22 KB | 0644 |
|
| tohtml.vim | File | 31.68 KB | 0644 |
|
| typeset.vim | File | 5.94 KB | 0644 |
|
| vimball.vim | File | 23.76 KB | 0644 |
|
| xmlcomplete.vim | File | 14.59 KB | 0644 |
|
| xmlformat.vim | File | 6.05 KB | 0644 |
|
| zip.vim | File | 15.23 KB | 0644 |
|