45 lines
977 B
Nix
45 lines
977 B
Nix
|
|
{
|
||
|
|
inputs,
|
||
|
|
pkgs,
|
||
|
|
rustVersion,
|
||
|
|
...
|
||
|
|
}:
|
||
|
|
inputs.devenv.lib.mkShell {
|
||
|
|
inherit inputs pkgs;
|
||
|
|
modules = [
|
||
|
|
{
|
||
|
|
packages = with pkgs; [
|
||
|
|
(rustVersion.override {
|
||
|
|
extensions = [
|
||
|
|
"clippy"
|
||
|
|
"rust-src"
|
||
|
|
"rust-analyzer"
|
||
|
|
"rustfmt"
|
||
|
|
];
|
||
|
|
})
|
||
|
|
bacon
|
||
|
|
cargo-deny
|
||
|
|
cargo-tarpaulin
|
||
|
|
just
|
||
|
|
];
|
||
|
|
|
||
|
|
processes.run.exec = "cargo watch -x run";
|
||
|
|
|
||
|
|
enterShell = ''
|
||
|
|
echo ""
|
||
|
|
echo "Rust development environment loaded!"
|
||
|
|
echo "Rust version: $(rustc --version)"
|
||
|
|
echo "Cargo version: $(cargo --version)"
|
||
|
|
echo ""
|
||
|
|
echo "Available tools:"
|
||
|
|
echo " - rust-analyzer (LSP)"
|
||
|
|
echo " - clippy (linter)"
|
||
|
|
echo " - rustfmt (formatter)"
|
||
|
|
echo " - bacon (continuous testing/linting)"
|
||
|
|
echo " - cargo-deny (dependency checker)"
|
||
|
|
echo " - cargo-tarpaulin (code coverage)"
|
||
|
|
'';
|
||
|
|
}
|
||
|
|
];
|
||
|
|
}
|