summaryrefslogtreecommitdiffstats
path: root/vim/.vim/ftplugin/rust.vim
diff options
context:
space:
mode:
Diffstat (limited to 'vim/.vim/ftplugin/rust.vim')
-rw-r--r--vim/.vim/ftplugin/rust.vim18
1 files changed, 18 insertions, 0 deletions
diff --git a/vim/.vim/ftplugin/rust.vim b/vim/.vim/ftplugin/rust.vim
new file mode 100644
index 0000000..2b9606e
--- /dev/null
+++ b/vim/.vim/ftplugin/rust.vim
@@ -0,0 +1,18 @@
+let b:ale_linters = { 'rust': ['analyzer'] }
+let b:ale_rust_analyzer_config = {
+ \'checkOnSave': { 'command': 'clippy' },
+ \'cargo': { 'allFeatures': v:true },
+ \'diagnostics': { 'disabled': ['inactive-code'] },
+\}
+let b:ale_fixers = { 'rust': ['rustfmt'] }
+let b:ale_fix_on_save = 1
+let b:ale_rust_rustfmt_options = "--edition 2018"
+
+map <buffer> <CR> :ALEGoToDefinition<CR>
+
+if filereadable("Cargo.toml")
+ compiler cargo
+ setlocal makeprg=cargo\ build
+else
+ setlocal makeprg=rustc\ %
+endif