Skip to content
Emacs Minor Mode for Cargo, Rust's Package Manager.
Branch: master
Clone or download
kwrooijen Merge pull request #80 from DerickEddington/master
Fix cargo-process--enable-rust-backtrace defcustom :type typo
Latest commit 1f3bc0d Jan 8, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
COPYING Initial Commit Oct 8, 2015
README.md fix xdg-open not opening browser Oct 29, 2018
cargo-process.el Fix cargo-process--enable-rust-backtrace defcustom :type typo Jan 6, 2019
cargo.el Added support for commands from cargo-edit Jul 20, 2018

README.md

cargo.el

Cargo mode for Emacs. This package gives you a set of key combinations to perform Cargo tasks within your Rust projects.

Installation

This package can be installed through melpa:

M-x package-install cargo

Usage

Add cargo-minor-mode to your rust-mode-hook

(add-hook 'rust-mode-hook 'cargo-minor-mode)

You will now have the following key combinations at your disposal:

Keybinding Command
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-S-k cargo-process-clippy
C-c C-c C-a cargo-process-add
C-c C-c C-S-d cargo-process-rm
C-c C-c C-S-u cargo-process-upgrade

Before executing the task, Emacs will prompt you to save any modified buffers associated with the current Cargo project. Setting compilation-ask-about-save to nil makes Emacs save modified buffers without asking.

Variables

Commands can be adjusted by changing their command variable. Here's a list of commands and their default value.

(setq cargo-process--command-bench "bench")
(setq cargo-process--command-build "build")
(setq cargo-process--command-clean "clean")
(setq cargo-process--command-doc "doc")
(setq cargo-process--command-doc-open "doc --open")
(setq cargo-process--command-new "new")
(setq cargo-process--command-init "init")
(setq cargo-process--command-run "run")
(setq cargo-process--command-run-bin "run --bin")
(setq cargo-process--command-run-example "run --example")
(setq cargo-process--command-search "search")
(setq cargo-process--command-test "test")
(setq cargo-process--command-current-test "test")
(setq cargo-process--command-current-file-tests "test")
(setq cargo-process--command-update "update")
(setq cargo-process--command-fmt "fmt")
(setq cargo-process--command-check "check")
(setq cargo-process--command-clippy "clippy")
(setq cargo-process--command-add "add")
(setq cargo-process--command-rm "rm")
(setq cargo-process--command-upgrade "upgrade")

Advanced usage

If you invoke the prefix argument C-u before calling any of the functions, you may edit the Cargo command before it is run. This allows you to add flags like --release, for example.

Processes run via Cargo mode make use of compilation mode. This mode provides features like jumping to errors or killing runaway processes.

Notes

In order to run cargo-process-fmt you need to have the rustfmt package installed.

rustup component add rustfmt-preview

In order to run cargo-process-check you need to have the cargo-check package installed.

cargo install cargo-check

In order to run cargo-process-clippy you need to have the clippy package installed.

cargo install clippy

In order to run cargo-process-{add,rm,upgrade} you need to have the cargo-edit package installed.

cargo install cargo-edit

For completion in cargo-process-add, configure cargo-process-favorite-crates.

You can’t perform that action at this time.