Skip to content

Instantly share code, notes, and snippets.

@matthew-piziak
Created August 10, 2016 16:20
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save matthew-piziak/51300f97c092041b081b8d9fb22d290d to your computer and use it in GitHub Desktop.
Save matthew-piziak/51300f97c092041b081b8d9fb22d290d to your computer and use it in GitHub Desktop.

Install Rust mode and hook in Cargo bindings.

(use-package rust-mode
  :ensure t
  :init (progn
          (add-hook 'rust-mode-hook 'cargo-minor-mode)
          (add-hook 'toml-mode-hook 'cargo-minor-mode))
  :config (setq rust-format-on-save t))

Ensure that Cargo is installed.

(use-package cargo :ensure t)

Set up Racer.

(use-package racer
  :ensure t
  :init (progn
          (setenv "PATH" (concat (getenv "PATH") ":~/.cargo/bin"))
          (setq exec-path (append exec-path '("~/.cargo/bin")))
          (unless (getenv "RUST_SRC_PATH")
            (setenv "RUST_SRC_PATH" (expand-file-name "~/rust/src/")))
          (setq racer-cmd "~/.cargo/bin/racer")
          (setq racer-rust-src-path "~/rust/src/")
          (add-hook 'rust-mode-hook #'racer-mode)
          (add-hook 'racer-mode-hook #'eldoc-mode)
          (add-hook 'racer-mode-hook #'company-mode)))

Set up Flycheck.

(use-package flycheck-rust
  :ensure t
  :init (progn
          (add-hook 'flycheck-mode-hook #'flycheck-rust-setup)
          (add-hook 'rust-mode-hook #'flycheck-mode)
          (add-hook 'rust-mode-hook #'yas-minor-mode)
          (add-hook 'rust-mode-hook #'flyspell-prog-mode)))

Add `cargo-process-clippy` command.

(defcom cargo-process-clippy ()
  (cargo-process--start "Clippy" "cargo clippy"))

Turn on backtraces.

(setenv "RUST_BACKTRACE" "1")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment