{ gitpkgs ? import /home/steveej/src/github/NixOS/nixpkgs {}, pkgs ? gitpkgs, name ? "generic", version ? "Stable", extraBuildInputs ? [], }: let rustPackages = builtins.getAttr "rust${version}" pkgs; rustc = rustPackages.rustc; rustShellHook = { rustc, name, }: '' rustname=rust_${rustc.version}_${name} setPS1 $rustname unset name ''; commonVimRC = ""; in pkgs.stdenv.mkDerivation { inherit name; buildInputs = with rustPackages; [ (import ./vim-rust.nix { pkgs = gitpkgs; commonRC = commonVimRC; inherit rustc; racerd = pkgs.rustracerd; }) rustc cargo ] ++ [pkgs.rustfmt] ++ extraBuildInputs; shellHook = rustShellHook { inherit name; inherit rustc; }; }