Rust環境設定(Emacs,LSP環境)

公開:2021/01/09
更新:2021/01/10
2 min読了の目安(約1900字TECH技術記事 2

はじめに

Windows10+Emacs(27.1)でRustをやるための環境を整えます。
LSPも使いたいのでそこらへんの環境も含めています。
gitリポジトリはRust関係なく一元管理したいので、一つの.gitの下に複数のrustのプロジェクトを置いています。その関係でrusticは使えません(TopProjectの検索に失敗する)

手順

1. コンポーネントをinstallする

rustup component add rls rust-analysis rust-src

2. rust-analyzerをinstallする

msys2あたりを入れていて、curl, gzipは使えるものとする。

curl -L https://github.com/rust-analyzer/rust-analyzer/releases/latest/download/rust-analyzer-windows.gz -o rust-analyzer-windows.gz
gzip -d rust-analyzer-windows.gz
copy rust-analyzer-windows %USERPROFILE%\.cargo\bin\rust-analyzer.exe
rust-analyzerを使う理由

rlsだとfuturesを入れたとききちんとresolveしてくれないので。

3.M-x package-list-packagesでkeyエラーが出る場合

  1. GPG4Winを入れる。msysなどのgnupgだとパスがおかしくて取れない場合がある。
  2. PathをGPG4Winをmsysよりも上にする(msysのパスはSystemのパスにある)

4. Emacsのpackageをinstallする

rust-mode
lsp-mode
flycheck
frycheck-rust
lsp-ui
yasnippet
cargo
company

5. .emacsの設定

(add-to-list 'exec-path (expand-file-name "~/.cargo/bin/"))
(eval-after-load "rust-mode"
  '(setq-default rust-format-on-save t))
(setq lsp-rust-server 'rust-analyzer)
(add-hook 'rust-mode-hook (lambda ()
                            (flycheck-rust-setup)
                            (lsp)
                            (flycheck-mode)
			    (yas-minor-mode)
                            ))

6. main.rsなどを開く

Projectのディレクトリを聞かれるので、I(not i)を押してCargo.tomlのあるFolderを選択する。
最初のLoadに時間がかかるっぽくてエラーが出るが、気にしないで問題なさそう。

終わりに

rust-mode+lsp-modeによる環境構築を行いました。
自分の環境が特殊でrusticは使えなかったので、rust-modeを使用しました。
(.gitじゃなくて、Cargo.tomlのありかで探してほしい...)

参考

RustのLSP使用について(VS-Codeだと楽ちんっぽい)

rust-analyzer

Emacsでのrust-mode,lspの環境構築(rusticの設定がメインぽいけど)

rust-modeでの設定

EmacsでのGPG4Winの設定