aboutsummaryrefslogtreecommitdiff
path: root/dotfiles/.local/share/nvim/site/autoload/neomake/makers/clippy.vim
diff options
context:
space:
mode:
authorYaroslav <contact@yaroslavps.com>2020-03-31 17:52:49 +0300
committerYaroslav <contact@yaroslavps.com>2020-03-31 17:52:49 +0300
commit7217c7749e5403c9c7856c1d12c7986eb9c3b460 (patch)
treed60a112d9119a51af1cf5f590c5efad81751edf6 /dotfiles/.local/share/nvim/site/autoload/neomake/makers/clippy.vim
parent9a3aa7b20a67c1b7991da1da9508ad5f78f76352 (diff)
downloadvimrice-7217c7749e5403c9c7856c1d12c7986eb9c3b460.tar.gz
vimrice-7217c7749e5403c9c7856c1d12c7986eb9c3b460.zip
Goodbye vim, been using neovim for ages now; home directory cleanup
Diffstat (limited to 'dotfiles/.local/share/nvim/site/autoload/neomake/makers/clippy.vim')
-rw-r--r--dotfiles/.local/share/nvim/site/autoload/neomake/makers/clippy.vim39
1 files changed, 39 insertions, 0 deletions
diff --git a/dotfiles/.local/share/nvim/site/autoload/neomake/makers/clippy.vim b/dotfiles/.local/share/nvim/site/autoload/neomake/makers/clippy.vim
new file mode 100644
index 0000000..6f2a8a3
--- /dev/null
+++ b/dotfiles/.local/share/nvim/site/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