Open1

rust-analyzerがたまに見つからない@Neovimなど

yukiyuki

事象

rust-toolchainを設定しているOSSなどで、まれにrust-analyzerを見つけられないことがある。直近だとBiomeで環境構築をしていた際に遭遇した。なお、筆者の環境はmacOSである。

VSCodeやZedなどは、基本的に独自のパスにrust-analyzerをインストールしているので(要出典)?、見つからないということはないようだが、Neovimというかrustaceanvimなどを使用していると、マシン自体のrust-analyzerを探しに行くっぽい(要出典; $HOME/.cargo/bin/rust-analyzerのことを言ってる)

rust-toolchainではsymlinkを書き換えているのか、profileがdefaultで設定されているプロジェクトでは次のようなエラーを見かけることがある。下記のエラーが出たタイミングでは、rust-analyzerはユーザーローカルにはインストールされている状態である。

$ which rust-analyzer
/Users/helloyuki/.cargo/bin/rust-analyzer

$ rust-analyzer --version
Unknown binary 'rust-analyzer' in official toolchain '1.82.0-aarch64-apple-darwin'.

原因はおそらくなのだが、defaultではrust-analyzerが追加されないためである。

https://rust-lang.github.io/rustup/concepts/profiles.html

ただ、rust-toolchainはCIでも共有される設定であり、CIにおいてはrust-analyzerは不要である。なので、設定としては間違っていないのだが、開発時にはrust-analyzerがないと困ってしまう。

解決方法

当該プロジェクト配下でrust-analyzerを追加すればよい模様。

$ rustup component add rust-analyzer

これで、rustaceanvimなどもちゃんと認識してrust-analyzerが動き出した。意外に忘れてしまうので、メモしておく。