Emacs で Rust 開発環境
https://www.youtube.com/watch?v=677kcyyPwJ4
この動画を見たら Emacs で Rust 開発環境を整えたくなりました。
rust-mode
試してないけど、rust-mode から fork された rustic の方がいいのかも。 MELPA からインストールするだけ。
lsp-mode
rust-mode-hook で lsp を実行するようにしておく。
code:init.el
;;; lsp
(use-package lsp-mode
:defer t
:custom
(lsp-keep-workspace-alive nil) ; バッファを閉じたらサーバとのコネクションを切る
:hook ((rust-mode go-mode) . lsp))
(lsp-ui, company, flycheck, lsp-treemacs などを別途インストールしておく)
lsp-rust
rust-analyzer をインストールしておく(brew install rust-analyzer 等)。
inlayヒントオプションを有効化する(ただしこれは lsp-ui sideline と相性が悪いらしい、デフォルトで無効)。
ローカル変数の型
関数の引数名
メソッドチェーンの型
clippyでの保存時チェックを行う。
code:init.el
;;; lsp-rust
(use-package lsp-rust
:defer t
:custom
(lsp-rust-server 'rust-analyzer)
(lsp-rust-analyzer-cargo-watch-command "clippy")
(lsp-rust-analyzer-server-display-inlay-hints t)
(lsp-rust-analyzer-display-parameter-hints t)
(lsp-rust-analyzer-display-chaining-hints t))
スクリーンショット
https://scrapbox.io/files/609020c6760b2900214971e2.png
rust-analyzer の inlay ヒント表示
https://scrapbox.io/files/60902132c35c28001c68a20b.png
clippy による提案 (右側に unneeded return の警告とコードアクションのボタン)