aboutsummaryrefslogtreecommitdiff
path: root/.vim/autoload/neomake/makers/clippy.vim
diff options
context:
space:
mode:
authorYaroslav <contact@yaroslavps.com>2019-09-05 19:35:38 +0300
committerYaroslav <contact@yaroslavps.com>2019-09-05 19:35:38 +0300
commit212dcd0bf753f08c0127a26a71b673c734b45c02 (patch)
tree4a43e43c7c9b9ccfcaef4088ba9e5f52154994b5 /.vim/autoload/neomake/makers/clippy.vim
downloadvimrice-212dcd0bf753f08c0127a26a71b673c734b45c02.tar.gz
vimrice-212dcd0bf753f08c0127a26a71b673c734b45c02.zip
init commit, extracted vim config from i3rice
Diffstat (limited to '.vim/autoload/neomake/makers/clippy.vim')
-rw-r--r--.vim/autoload/neomake/makers/clippy.vim39
1 files changed, 39 insertions, 0 deletions
diff --git a/.vim/autoload/neomake/makers/clippy.vim b/.vim/autoload/neomake/makers/clippy.vim
new file mode 100644
index 0000000..6f2a8a3
--- /dev/null
+++ b/.vim/autoload/neomake/makers/clippy.vim
@@ -0,0 +1,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