GitHub - kwrooijen/cargo.el: Emacs Minor Mode for Cargo, Rust's Package...
source link: https://github.com/kwrooijen/cargo.el
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
cargo.el
Cargo mode for Emacs. This package gives you a set of key combinations to perform Cargo tasks within your Rust projects.
NOTICE
Currently I'm not using Rust, nor will I in the (near) future. I've lost track of all the Rust / Cargo features available and can't keep up-to-date with new ones. I'll be doing selective bug fixes and continue reviewing / merging pull requests.
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 |
C-c C-c C-S-a | cargo-process-audit |
C-c C-c C-S-r | cargo-process-script |
C-c C-c C-w | cargo-process-watch |
C-c C-c C-S-f | cargo-find-dependency |
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.
To change prefix (default C-c C-c) use:
(define-key cargo-mode-map (kbd ...) 'cargo-minor-mode-command-map)
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")
(setq cargo-process--command-audit "audit -f")
(setq cargo-process--command-script "script")
(setq cargo-process--command-watch "watch -x build")
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. By default, in compilation mode
, C-c C-k is bound
to the command kill-compilation
.
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-script
you need to have the cargo-script
package installed.
cargo install cargo-script
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
.
In order to run cargo-process-audit
you need to have the audit
package installed.
cargo install cargo-audit
In order to run cargo-process-watch
you need to have the watch
package installed.
cargo install cargo-watch
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK