about summary refs log tree commit diff
path: root/pkgs/aszlig/vim/default.nix
diff options
context:
space:
mode:
authoraszlig <aszlig@nix.build>2022-02-09 17:10:33 +0100
committeraszlig <aszlig@nix.build>2022-02-09 23:12:53 +0100
commit33f7b7172cf5623942eefb215e7d9a440bf5dd3e (patch)
tree44278b814ddf09c9ac7f311f82cb99f2139a9cc3 /pkgs/aszlig/vim/default.nix
parent11e5a5ec1c78badb7d87ea39f7794337780064de (diff)
pkgs/vim: Add rustfmt with custom default config
Since I do have a lot of projects where I use rustfmt, it gets pretty
tedious to manually run "cargo fmt". Using g:rustfmt_autosave should
make this less tedious but it might annoy me in the future, let's see.

In addition to setting rustfmt I also added a default path for rustc,
which is used whenever there is no rustc in path. This is because I
usually switch between several projects which use different Rust
versions and this way it will use the rustc version that is in PATH
during "nix develop".

For the rustfmt part I also added a small default configuration which
represents my opinion on how I think Rust code should be formatted. The
file is used whenever a project doesn't have a "rustfmt.toml" or
".rustfmt.toml".

Unfortunately, RustFmt is broken in Vim right now[1], so I'm using the
upstream project until the issue has been resolved.

[1]: https://github.com/rust-lang/rust.vim/issues/446

Signed-off-by: aszlig <aszlig@nix.build>
Diffstat (limited to 'pkgs/aszlig/vim/default.nix')
-rw-r--r--pkgs/aszlig/vim/default.nix17
1 files changed, 17 insertions, 0 deletions
diff --git a/pkgs/aszlig/vim/default.nix b/pkgs/aszlig/vim/default.nix
index 5162dc8c..35711e00 100644
--- a/pkgs/aszlig/vim/default.nix
+++ b/pkgs/aszlig/vim/default.nix
@@ -1,5 +1,6 @@
 { stdenv, lib, fetchurl, fetchFromGitHub, writeText, writeTextFile, writeScript
 , runCommand, writers, python3Packages, ledger, meson, vim, buildGoPackage
+, rustc, rustfmt
 }:
 
 let
@@ -403,6 +404,14 @@ let
       rev = "e38845b4042d2351c47cd63f8705fd51c97acb4f";
       sha256 = "1k3val0ibriwcv5jdyq95sgxgkz54r15gpylbhns5934zvaakpj1";
     };
+
+    # Remove once https://github.com/rust-lang/rust.vim/issues/446 is resolved.
+    rust = fetchFromGitHub {
+      owner = "rust-lang";
+      repo = "rust.vim";
+      rev = "4aa69b84c8a58fcec6b6dad6fe244b916b1cf830";
+      sha256 = "07nh8gvkwq91i7qcz0rk5jlc8sb4d3af4zq2892kmmw576zg1wd8";
+    };
   };
 
   generic = ''
@@ -578,6 +587,14 @@ let
     let g:Hexokinase_highlighters = ['background']
     let g:Hexokinase_refreshEvents =
       \ ['TextChanged', 'TextChangedI', 'InsertLeave', 'BufRead']
+
+    " rust
+    if !executable('rustc')
+      let g:rustc_path = '${rustc}/bin/rustc'
+    endif
+    let g:rustfmt_command = '${rustfmt}/bin/rustfmt'
+    let g:rustfmt_autosave = 1
+    let g:rust_recommended_style = 0
   '';
 
   autocmd = ''