diff options
| author | Nathan Moreau <nathan.moreau@m4x.org> | 2020-07-08 11:03:54 +0200 |
|---|---|---|
| committer | Nathan Moreau <nathan.moreau@m4x.org> | 2020-07-09 09:23:05 +0200 |
| commit | ca7d99c6fd90fc1e636aa9d4020a2f077786a0c3 (patch) | |
| tree | 3393b06691d30c85ff985f03153cf66682446c3c /rust-mode.el | |
| parent | f9e36188814d67d88ba7738a2250811afc2f85a7 (diff) | |
| download | rust-mode-ca7d99c6fd90fc1e636aa9d4020a2f077786a0c3.tar.gz | |
Set default directory when compiling.
Diffstat (limited to 'rust-mode.el')
| -rw-r--r-- | rust-mode.el | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/rust-mode.el b/rust-mode.el index 2d63dc5..2c89b97 100644 --- a/rust-mode.el +++ b/rust-mode.el @@ -1901,20 +1901,29 @@ Return the created process." (interactive) (setq-local rust-format-on-save nil)) +(defun rust--compile (format-string &rest args) + (when (null rust-buffer-project) + (rust-update-buffer-project)) + (let ((default-directory + (or (and rust-buffer-project + (file-name-directory rust-buffer-project)) + default-directory))) + (compile (apply #'format format-string args)))) + (defun rust-compile () "Compile using `cargo build`" (interactive) - (compile (format "%s build" rust-cargo-bin))) + (rust--compile "%s build" rust-cargo-bin)) (defun rust-run () "Run using `cargo run`" (interactive) - (compile (format "%s run" rust-cargo-bin))) + (rust--compile "%s run" rust-cargo-bin)) (defun rust-test () "Test using `cargo test`" (interactive) - (compile (format "%s test" rust-cargo-bin))) + (rust--compile "%s test" rust-cargo-bin)) ;;; Hooks @@ -2072,7 +2081,7 @@ visit the new file." ;; set `compile-command' temporarily so `compile' doesn't ;; clobber the existing value (compile-command (mapconcat #'shell-quote-argument args " "))) - (compile compile-command))) + (rust--compile compile-command))) ;;; Utilities |
