50 lines
1.1 KiB
Nix
50 lines
1.1 KiB
Nix
|
|
{
|
||
|
|
inputs,
|
||
|
|
pkgs,
|
||
|
|
self,
|
||
|
|
rustVersion,
|
||
|
|
system,
|
||
|
|
...
|
||
|
|
}:
|
||
|
|
inputs.devenv.lib.mkShell {
|
||
|
|
inherit inputs pkgs;
|
||
|
|
modules = [
|
||
|
|
{
|
||
|
|
packages = with pkgs; [
|
||
|
|
(rustVersion.override {
|
||
|
|
extensions = [
|
||
|
|
"clippy"
|
||
|
|
"rust-src"
|
||
|
|
"rust-analyzer"
|
||
|
|
"rustfmt"
|
||
|
|
];
|
||
|
|
})
|
||
|
|
bacon
|
||
|
|
cargo-deny
|
||
|
|
cargo-edit
|
||
|
|
cargo-shuttle
|
||
|
|
cargo-tarpaulin
|
||
|
|
just
|
||
|
|
marksman # Markdown LSP server
|
||
|
|
tombi # TOML LSP server
|
||
|
|
];
|
||
|
|
|
||
|
|
processes.run.exec = "bacon run";
|
||
|
|
|
||
|
|
enterShell = ''
|
||
|
|
echo "🦀 Rust MCP 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)"
|
||
|
|
'';
|
||
|
|
}
|
||
|
|
];
|
||
|
|
}
|