👏

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

2021/01/09に公開
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だと楽ちんっぽい)

https://github.com/rust-lang/rls

rust-analyzer

https://rust-analyzer.github.io/manual.html#rust-analyzer-language-server-binary

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

https://emacs-jp.github.io/env/rust

rust-modeでの設定

https://skoji.jp/blog/2020/03/rust-dev.html

EmacsでのGPG4Winの設定

https://emacs.stackexchange.com/questions/46302/gpg-fails-to-find-key-to-elpa-archive

Discussion