From 33f7b7172cf5623942eefb215e7d9a440bf5dd3e Mon Sep 17 00:00:00 2001 From: aszlig Date: Wed, 9 Feb 2022 17:10:33 +0100 Subject: 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 --- pkgs/aszlig/vim/default.nix | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'pkgs/aszlig/vim') 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 = '' -- cgit 1.4.1