{ 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; }; }