Rustの開発環境を構築します。

rustupのインストール

rustupというツールで環境を構築/管理するのでrustupをインストールします。

https://rustup.rs/

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
info: downloading installer

Welcome to Rust!

This will download and install the official compiler for the Rust programming
language, and its package manager, Cargo.

It will add the cargo, rustc, rustup and other commands to Cargo's bin
directory, located at:

  /Users/sallies/.cargo/bin

This path will then be added to your PATH environment variable by modifying the
profile files located at:

  /Users/sallies/.profile
  /Users/sallies/.bash_profile

You can uninstall at any time with rustup self uninstall and these changes will
be reverted.

Current installation options:

   default host triple: x86_64-apple-darwin
     default toolchain: stable
  modify PATH variable: yes

1) Proceed with installation (default)
2) Customize installation
3) Cancel installation
>1

info: syncing channel updates for 'stable-x86_64-apple-darwin'
334.4 KiB / 334.4 KiB (100 %)  55.1 KiB/s ETA:   0 s
info: latest update on 2019-04-25, rust version 1.34.1 (fc50f328b 2019-04-24)
info: downloading component 'rustc'
 78.9 MiB /  78.9 MiB (100 %) 992.5 KiB/s ETA:   0 s
info: downloading component 'rust-std'
 51.1 MiB /  51.1 MiB (100 %) 290.6 KiB/s ETA:   0 s
info: downloading component 'cargo'
  3.4 MiB /   3.4 MiB (100 %) 437.6 KiB/s ETA:   0 s
info: downloading component 'rust-docs'
 10.2 MiB /  10.2 MiB (100 %) 113.4 KiB/s ETA:   0 s
info: installing component 'rustc'
 78.9 MiB /  78.9 MiB (100 %)  14.1 MiB/s ETA:   0 s
info: installing component 'rust-std'
 51.1 MiB /  51.1 MiB (100 %)  16.9 MiB/s ETA:   0 s
info: installing component 'cargo'
info: installing component 'rust-docs'
 10.2 MiB /  10.2 MiB (100 %)   2.0 MiB/s ETA:   0 s
info: default toolchain set to 'stable'

  stable installed - rustc 1.34.1 (fc50f328b 2019-04-24)


Rust is installed now. Great!

To get started you need Cargo's bin directory ($HOME/.cargo/bin) in your PATH
environment variable. Next time you log in this will be done automatically.

To configure your current shell run source $HOME/.cargo/env

$HOME/.cargo/bin には次のようなファイルがインストールされます。

cargo
cargo-clippy
cargo-fmt
cargo-miri
clippy-driver
rls
rust-gdb
rust-lldb
rustc
rustdoc
rustfmt
rustup

$HOME/.cargo/env には環境変数の設定が記述されています。

Rust用パッケージを眺める

パッケージ名 説明
cargo Cargo用のマイナーモード
flycheck-rust Rust用Flycheck
flymake-rust Rust用Flymake
lsp-rust Rust support for lsp-mode
ob-rust Org-babelのRust拡張
racer racerでRustのコード補完、goto-definition、ドキュメント参照
reason-mode A major emacs mode for editing Reason (based on rust-mode)
rust-auto-use Rust useステートメントを自動的に挿入するためのユーティリティ
rust-playground Rust用プレイグラウンド
rustic Rust用開発環境パッケージ
rust-mode Rust用メジャーモード

rust-playground

インストール

(use-package rust-playground :ensure t)

パッケージ情報

rust-playground is an available package.

     Status: Available from melpa -- Install
    Archive: melpa
    Version: 20180807.1158
     Commit: 092c8b11d62dea23953a004744833092bac85fe1
    Summary: Local Rust playground for short code snippets.
   Requires: emacs-24.3
   Homepage: https://github.com/grafov/rust-playground
   Keywords: tools rust
Other versions: 0.3 (melpa-stable).

Local playground for the Rust programs similar to play.rust-lang.org.
`M-x rust-playground` and type you rust code then make&run it with `C-c C-c`.
Toggle between Cargo.toml and main.rs with `C-c b`
Delete the current playground and close all buffers with `C-c k`

Playground requires preconfigured environment for Rust language.

It is port of github.com/grafov/go-playground for Go language.

flycheck-rust

Rust用Flycheckです。

インストール

(use-package flycheck-rust :ensure t)

(with-eval-after-load 'rust-mode
  (add-hook 'flycheck-mode-hook #'flycheck-rust-setup))

パッケージ情報

flycheck-rust is an installed package.

     Status: Installed in ‘flycheck-rust-20190319.1546/’ (unsigned). Delete
    Version: 20190319.1546
     Commit: a139cd53c5062697e9ed94ad80b803c37d999600
    Summary: Flycheck: Rust additions and Cargo support
   Requires: emacs-24.1, flycheck-28, dash-2.13.0, seq-2.3, let-alist-1.0.4
   Homepage: https://github.com/flycheck/flycheck-rust
   Keywords: tools convenience
Other versions: 20190319.1546 (melpa), 1.1 (melpa-stable).

This Flycheck extension configures Flycheck automatically for the current
Cargo project.

# Setup

    (with-eval-after-load 'rust-mode
      (add-hook 'flycheck-mode-hook #'flycheck-rust-setup))

# Usage

Just use Flycheck as usual in your Rust/Cargo projects.

[back]

cargo

https://github.com/kwrooijen/cargo.el

cargoのショートカットを提供しています。設定されているショートカットは https://github.com/kwrooijen/cargo.el#usage に記載されています。またパッケージ情報にも記載されています。

インストール

(use-package cargo :ensure t)

パッケージ情報

cargo is an installed package.

     Status: Installed in ‘cargo-20190108.817/’ (unsigned). Delete
    Version: 20190108.817
    Summary: Emacs Minor Mode for Cargo, Rust's Package Manager.
   Requires: emacs-24.3, rust-mode-0.2.0, markdown-mode-2.4
   Keywords: tools
Other versions: 20190108.817 (melpa), 0.4.1 (melpa-stable).

Cargo Minor mode.
Provides a number of key combinations and functions for managing Cargo.
Current supported Cargo Key Combinations:
 * C-c C-c C-e - cargo-process-bench
 * C-c C-c C-b - cargo-process-build
 * C-c C-c C-l - cargo-process-clean
 * C-c C-c C-d - cargo-process-doc
 * C-c C-c C-v - cargo-process-doc-open
 * C-c C-c C-n - cargo-process-new
 * C-c C-c C-i - cargo-process-init
 * C-c C-c C-r - cargo-process-run
 * C-c C-c C-x - cargo-process-run-example
 * C-c C-c C-s - cargo-process-search
 * C-c C-c C-t - cargo-process-test
 * C-c C-c C-u - cargo-process-update
 * C-c C-c C-c - cargo-process-repeat
 * C-c C-c C-f - cargo-process-current-test
 * C-c C-c C-o - cargo-process-current-file-tests
 * C-c C-c C-m - cargo-process-fmt
 * C-c C-c C-k - cargo-process-check
 * C-c C-c C-K - cargo-process-clippy