{
pkgs,
config,
...
}:
let
nightly = true;
extensions = [
"rust-src"
"rust-analyzer"
];
targets = [
"aarch64-apple-darwin"
# "wasm32-wasi"
];
overrideToolchain = t: t.default.override { inherit extensions targets; };
in
{
home.sessionVariables.CARGO_HOME = "${config.xdg.dataHome}/cargo";
home.sessionVariables.RUSTUP_HOME = "${config.xdg.dataHome}/rustup";
home.packages = with pkgs; [
(
if nightly then
(rust-bin.selectLatestNightlyWith overrideToolchain)
else
(overrideToolchain rust.bin.stable.latest)
)
];
programs.nixvim.plugins.lsp.servers.rust-analyzer = {
enable = true;
package = null;
installCargo = false;
installRustc = false;
extraOptions = {
settings = {
rust-analyzer = {
checkOnSave = {
command = "clippy";
};
};
};
};
};
}