1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
" vim: ts=4 sw=4 et
" Yet to be determined
let s:rustup_has_nightly = get(g:, 'neomake_clippy_rustup_has_nightly', -1)
function! neomake#makers#clippy#clippy() abort
" When rustup and a nightly toolchain is installed, that is used.
" Otherwise, the default cargo exectuable is used. If this is not part
" of a nightly rust, this will fail.
if s:rustup_has_nightly == -1
if !executable('rustup')
let s:rustup_has_nightly = 0
call system('rustc --version | grep -q "\-nightly"')
if v:shell_error
call neomake#log#warning('Clippy requires a nightly rust installation.')
endif
else
call system('rustup show | grep -q "^nightly-"')
let s:rustup_has_nightly = !v:shell_error
endif
endif
let cargo_maker = neomake#makers#ft#rust#cargo()
let json_args = ['--message-format=json', '--quiet']
if s:rustup_has_nightly
return {
\ 'exe': 'rustup',
\ 'args': ['run', 'nightly', 'cargo', 'clippy'] + json_args,
\ 'process_output': cargo_maker.process_output,
\ }
else
return {
\ 'exe': 'cargo',
\ 'args': ['clippy'] + json_args,
\ 'process_output': cargo_maker.process_output,
\ }
endif
endfunction
|