Rustのための開発環境(エディタ周り)
実行環境
$ uname -rs
Darwin 19.3.0
$ atom --version
Atom : 1.45.0
Electron: 4.2.7
Chrome : 69.0.3497.128
Node : 10.11.0
$ emacs --version
GNU Emacs 26.3
Copyright (C) 2019 Free Software Foundation, Inc.
GNU Emacs comes with ABSOLUTELY NO WARRANTY.
You may redistribute copies of GNU Emacs
under the terms of the GNU General Public License.
For more information about these matters, see the file named COPYING.
Atom
Atomのインストール
普段はemacsでコードを書いていますが、GitHubを使うときに楽だったり、MarkDownを書いたりするときもPreviewができたりして何かと便利なのでお勧めです。ただ、ずっと、ターミナル上のemacsで生活してきたので少し重い気がしますがそこは多めにみましょう。
インストール自体は簡単で、ここからダウンロードしてください。
パッケージのインストール
ブラウザで検索してから、ダウンロード、インストールでもいいですが、ターミナルで
$ apm install atom-ide-ui ide-rust
を実行してもらえばいいです。ide-rustがメインで、atom-ide-uiはdependencyになるので前もってインストールが済んでいれば不要です。
以上がAtom上での設定です。
Emacs
Emacsのインストール
Emacsの利点はとにかく動作が軽量でカスタマイズが自由と言うことです。macの人とかはEmacsのキーバインドが一部有効になっているので個人的にはお勧めです。これもAtomと同じでいろいろなパッケージをインストールすればかなり多機能になるのですが、それだと動作が軽いという利点を失ってしまうので個人的にはあまりお勧めではないです。
インストールはここからダウンロードしてインストールしてください。ここにソースコードもあるので、ソースからビルドしたい人はどうぞ。
racerのインストールとemacsの設定
$ rustup toolchain add nightly
$ rustup component add rust-src
$ cargo +nightly install racer
を実行してください。実行し終わったら、emacsを立ち上げて、
C-x C-f RET ~/.emacs.d/init.el RET (Cはコントロールキーです)
を実行して
(require 'package)
(add-to-list 'package-archives
'("melpa" . "https://melpa.org/packages/") t)
(package-initialize)
(add-hook 'rust-mode-hook #'racer-mode)
(add-hook 'racer-mode-hook #'eldoc-mode)
(add-hook 'racer-mode-hook #'company-mode)
(require 'rust-mode)
(define-key rust-mode-map (kbd "TAB") #'company-indent-or-complete-common)
(setq company-tooltip-align-annotations t)
これを入力してください。
その後、
C-x C-s
M-x RET package-install RET rust-mode RET
M-x RET package-install RET racer RET
M-x RET package-install RET company RET
を実行してください。MはメタキーでwindowsならAlt、Macなら、Optionだと思います。RETはenterまたはreturnです。
設定は以上です。
参考
https://github.com/rust-lang/rust-mode
https://github.com/racer-rust/emacs-racer
https://www.rust-lang.org/learn/get-started
https://github.com/rust-lang/atom-ide-rust
2020-8-6追記
ATOMとかEMACSをここではお勧めしていますが、最近Discordで知ったのですが一般的にはVS Codeで描くのが主流みたいです。あと、Racerをつかって補完を実行するように案内をしていますが、最近ではrust-analyzerを使うのが一般的です(Emacs lspの導入だったり色々壁がありますが…)いずれにせよ、VS Codeを使うとrust-analyzerの導入もパッケージの導入だけで済んで楽なので、プログラミング自体が初めてという方VS Codeの方がお勧めです…