magのOSS備忘録

使ったOSSソフトウェアについて書いていきます。

Rustの開発環境を整える(Windows, Emacs)

前提

  • 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による補完

f:id:boiled_mag:20170815145220p:plain

flycheck + flycheck-popup-tipによるエラー表示

f:id:boiled_mag:20170815145748p:plain

トラブルシューティング

パスの設定などで躓いたときに, 調査で使ったコマンドを残す.

Emacsからracerが正しく実行できているか

  • exec-pathに~/.cargo/binがパスに入っているかどうか.
M-x describe-variable RET exec-path RET
  • 下記のコマンドを実行したときに, 補完の候補が見つかること.
M-! racer complete std::io::B