rust-analyzerとは
rust-analyzerはエディタ上でRustのソースコード入力を補完するツールです。
rust-analyzerを使わずにすべて手入力のプレーンなVimでもコードは書けます。Rustのコンパイラはエラーメッセージが非常に親切(どこをどう直せばよいか具体的に提案してくれる)なため、Vimで書いて
cargo run や cargo check を実行する往復作業だけでも、十分に学習を進められます。ただ、
rust-analyzer を導入すると、Rust特有の言語仕様を扱う際に以下のような強力なメリットがあります。- リアルタイムのエラー検知:Rustはメモリ安全性を担保するため、コンパイルを通すまでが厳しい言語です。「変数の貸し借り(参照)」や「型の不一致」によるエラーを、コンパイルを実行する前にエディタ上で即座に波線で教えてくれます。
- 型推論の可視化:Rustは
let x = (1..10).collect();のように型を省略して書くことが多く、ソースコード上だけでは実際の型が分かりにくい場面が多々あります。rust-analyzerは、コンパイラが推論した型をエディタ上に仮想的なテキスト(インレイヒント)として表示してくれるため、現在何の型を扱っているのか見失わずに済みます。 - メソッドの提示と自動インポート:Rustの標準ライブラリ(特に
Option、Result、Iteratorなど)には非常に便利なメソッドが多数用意されています。変数に.を打つだけで利用可能なメソッド一覧が引数とともに表示されるため、ブラウザで公式ドキュメントを行き来する手間が省けます。また、必要なモジュールのuse文も自動で最上部に追記してくれます。 - 定義元へのジャンプ:プロジェクトが大きくなり複数ファイルに分かれたり、外部ライブラリ(クレート)を利用し始めたりした際、関数や構造体の定義元へショートカットキー一つで瞬時にジャンプして中身を確認できます。
まずはツールに頼らず「Rustの構文を指に覚えさせる」目的でプレーンなVimを使い、標準ライブラリの機能や外部パッケージを多用したくなった段階で導入する、という進め方もおすすめです。
rust-analyzerの導入
Vimで
rust-analyzer を利用したコード補完を有効にするには、LSP(Language Server Protocol)クライアントのプラグインを導入するのが現在の標準的な手法です。ここでは、ピュアVim環境で動作が軽く、設定が容易な
vim-lsp とその関連プラグイン(vim-plug での管理)を使用した構成手順を解説します。1. vim-plug 本体のダウンロード:
ターミナルで以下のコマンドをそのまま実行してください(
~/.vim/autoload/ ディレクトリを作成し、スクリプトを1ファイル配置します)。Bash
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
コメント
コメントを投稿