昨年末から少しずつ Rust に入門してます。日本語版チュートリアルが読みやすくてありがたいです。
メモリ安全、マルチパラダイム、システムプログラミング言語で WebAssembly にも対応とか色々特徴はありますが、C++ に馴染んでいると入りやすい気がします。まだ使い途は見えてませんが、新しい言語を学ぶのは興味深いものです。
EC2 インスタンス(Ubuntu 18.04.1) で Emacs の Rust 環境を構築してみました。
Rust のインストールは公式サイト通り
$ curl https://sh.rustup.rs -sSf | sh
で導入して、PATH の設定をします。
Ubuntu に Emacs をインストールするとちょっと古い Emacs 25 が入ってしまうのでリポジトリを追加して Emacs 26 を導入。
$ sudo add-apt-repository ppa:kelleyk/emacs $ sudo apt install emacs26
最近 VS Code ばかり使っていて Emacs 知識をアップデートしてませんでしたが、久々に設定を見直しました。require
によるパッケージロードを use-package
に移行。これにより、パッケージが導入されていない場合 Emacs の起動処理がエラー中断されることなく継続されます。複数環境で Emacs 設定を共有したい場合にこの振る舞いが役立ちます。
コード補完はずっと auto-complete 使ってましたが、開発が活発な company にスイッチ。UI はちょっと IDE っぽい見た目です。
RLS (Rust Language Server) を使える rust-mode の fork である rustic を使おうとしたのですが、自分の環境ではうまく動作せず。rust-mode と racer を使いました。
$ cargo install --version 2.0.13 racer
racer のバージョンを指定しないとビルドエラーになりました。
rust-src を追加します。
$ rustup component add rust-src
Emacs では、rust-mode, racer を package-install
して、init.el に設定を追加
;; rust-mode (use-package rust-mode) (add-to-list 'exec-path(expand-file-name "~/.cargo/bin/")) (add-to-list 'auto-mode-alist '("\\.rs\\'" . rust-mode)) (add-hook 'rust-mode-hook #'racer-mode) (add-hook 'racer-mode-hook #'eldoc-mode)
コード補完などが効くようになりました。
VS Code では、Rust(rls) 拡張をインストールするだけで、rls のインストールも自動で環境を整えてくれます。とても楽です。