# フォーマッタ
$ cargo install rustfmt
# コード補完とか諸々
$ cargo install racer
# 高速grep
$ cargo install ripgrep
# Rustコード片のお手軽実行用
# (https://github.com/DanielKeep/cargo-script の方がメジャー)
$ cargo install evalrs
# `cargo install-update -a`で、インストール済みライブラリ群を一括更新してくれる
$ cargo install cargo-update
(require 'package)
(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t)
(package-initialize)
(package-refresh-contents)
;; Rustモード
(package-install 'rust-mode)
;; Cargoモード
;;
;; 以下を良く使う:
;; - テスト実行:
;; - Ctrl-K + Ctrl-C + Ctrl-T
;; - チェックビルド:
;; - Ctrl-C + Ctrl-C + Ctrl-K
;; - バイナリを生成しないので高速
;; - ドキュメントオープン:
;; - Ctrl-C + Ctrl-C + Ctrl-V
;; - ドキュメント生成:
;; - Ctrl-C + Ctrl-C + Ctrl-D
(package-install 'cargo)
;; コード補完とか定義元に飛んだりとか
(package-install 'racer)
(package-install 'company-racer)
(add-hook 'rust-mode-hook #'cargo-minor-mode)
(add-hook 'rust-mode-hook #'racer-mode)
;; ファイル保存時に常にrustfmtを適用
(add-hook 'rust-mode-hook #'rust-enable-format-on-save)
(add-hook 'racer-mode-hook #'eldoc-mode)
(add-hook 'racer-mode-hook #'company-mode)
(add-hook 'rust-mode-hook '(lambda ()
(local-set-key (kbd "TAB") #'company-indent-or-complete-common)))
(setq company-tooltip-align-annotations t)
(setq racer-rust-src-path (concat (file-name-as-directory (getenv "HOME")) "dev/rust/rust/src/"))
(setq compilation-ask-about-save nil)