nix-shellでRust環境をsetupする
$ nix-shell -p cargo
$ cargo new hogehoge
で作ったやつに対して、↓を入れる
たぶんもっと良いやり方はあるだろうけどいったんこれで動く
code:shell.nix
let
pkgs = import <nixpkgs> {
};
# Rolling updates, not deterministic.
# pkgs = import (fetchTarball("channel:nixpkgs-unstable")) {};
in pkgs.mkShell {
buildInputs = with pkgs; [
cargo
rustc
rustfmt
rustup
];
shellHook = ''
rustup install nightly
rustup component add rls rust-analysis rust-src
'';
RUST_SRC_PATH = "${pkgs.rust.packages.stable.rustPlatform.rustLibSrc}";
}
todos
overlayを上手く使う
rustupのコマンド実行をshellHookの中でやっているけど、他にもっとシンプルなやり方があるはず
ちなみにこれは、VSCodeでちゃんとerrorとかを出すためにrustupの中身を実行している
rlsが重複している
nixpkgsのpin度目
moz_overlayのpinどめ
新規作成時のやりよう
nix-shell -p cargoして、その中でcargo newして、exitして、普通に利用、みたいなことをしている
ちょいダルいので回避したい
RUST_SRC_PATHは何のために書いているか理解していない
extensionとかのやり方がよくわからない
code:error
error: attribute 'lib' missing, at /nix/store/gxld9lwg046....