Skip to content

Instantly share code, notes, and snippets.

@sile
Last active April 3, 2019 04:47
Show Gist options
  • Select an option

  • Save sile/c92348d3dd5b6580bda1500bcb31e712 to your computer and use it in GitHub Desktop.

Select an option

Save sile/c92348d3dd5b6580bda1500bcb31e712 to your computer and use it in GitHub Desktop.
2017年6月時点のRustの開発用メモ

2017年6月時点のRustの開発環境等メモ

注意

  • 特に最新動向を追ったりはしていないので、情報が古い可能性はある

参考資料

インストールしているコマンド

# フォーマッタ
$ 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

Emacs

インストールパッケージ

(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)

.emacs

(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)

良く使うライブラリ

リリース

  • https://crates.io/ にアカウントを登録してcargo publishでリリース(パッケージ登録)が可能
  • crates.ioにpublishすると自動で https://docs.rs/ にもドキュメントを生成してくれる
  • バイナリのcrateを登録した場合にはcargo install CRATE_NAMEでインストールが可能になる

その他

  • crateルート/examples/*.rsのファイル群はcaro run --example FILENAMEで実行可能
  • コードカバレッジ計測:
    • kcovを使えば一応可能
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment