前提
- 2017/8現在の状況で, Windows上のEmacsにてRustの開発環境を整える.
- 開発のスピードが速く, 以前は必要だった設定が不要になっていることが多い. そのため, 出来るだけメンテナンスされている各ツールのマニュアルに従った方がよい. が, そもそも何をしたのか忘れちゃうので書き残す.
- 基本的には各ツールのマニュアルに従って設定している.
実行環境
* Windows 10 Pro 64bit版 (バージョン 1703)
* rustup 1.5.0
* rustc 1.19.0
* racer 2.0.10
* cargo 0.20.0
rustupのインストール
Rustのサイトのインストール手順に従ってrustup-init.exeをダウンロードし, rustupをインストールする. これでrustup, rustc, Cargoがインストールされる. 今回はデフォルトのstable-x86_64-pc-windows-msvcを使用する.
https://www.rust-lang.org/ja-JP/install.html
続けてVisual C++ビルドツールが必要になるため, インストールする.
環境変数の確認
Windowsの場合, 環境変数Pathに「%USERPROFILE%.cargo\bin」が追加される. もしされていないようだったら, 自分で追加する.
Racerのインストール
続けて, Racerのインストールを行う. コマンドプロンプト等を起動し, 以下のように実行する.
cargo install racer
CargoはデフォルトだとCPUの数に合わせてコンパイルを並列実行するため, 自分でjobs数を変更してもあまり効果は見られなかった.
Emacsの設定
パッケージのインストール
packages.elを使って下記のパッケージをインストールする. この辺りの手順は省略する.
- racer
- flycheck
- flycheck-rust
この他にも補完にはcompany, エラー表示などにflycheck-popup-tipを使用している.
init.elの設定
設定の記述にはuse-packageを利用した.
;;; rust-mode (use-package rust-mode :defer t :config (setq rust-format-on-save t)) ;;; racer (use-package racer :init (add-hook 'rust-mode-hook #'racer-mode) (add-hook 'racer-mode-hook #'eldoc-mode)) ;;; flycheck-rust (use-package flycheck-rust :init (add-hook 'rust-mode-hook '(lambda () (flycheck-mode) (flycheck-rust-setup))))
設定済み画面
racerによる補完
flycheck + flycheck-popup-tipによるエラー表示
トラブルシューティング
パスの設定などで躓いたときに, 調査で使ったコマンドを残す.
Emacsからracerが正しく実行できているか
- exec-pathに~/.cargo/binがパスに入っているかどうか.
M-x describe-variable RET exec-path RET
- 下記のコマンドを実行したときに, 補完の候補が見つかること.
M-! racer complete std::io::B