summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelix S Klock II <pnkfelix@pnkfx.org>2018-10-02 00:21:31 +0200
committerGitHub <noreply@github.com>2018-10-02 00:21:31 +0200
commitee262ccdee16e0e78c7e16f81630c154d0b8f39b (patch)
tree386ffc233ce1d086dd56d5707c317a6ac542be58
parent256db76678833cd3a51555a3c5214a72f246cf27 (diff)
parent9154e0ee361b5e20b5be7b5356c2b99286f8e35f (diff)
downloadrust-mode-ee262ccdee16e0e78c7e16f81630c154d0b8f39b.tar.gz
Merge pull request #266 from brotzeit/format-on-save
throw error in after-save-hook instead of before-save-hook
-rw-r--r--rust-mode.el17
1 files changed, 13 insertions, 4 deletions
diff --git a/rust-mode.el b/rust-mode.el
index 8385a7e..c2102c9 100644
--- a/rust-mode.el
+++ b/rust-mode.el
@@ -1555,7 +1555,8 @@ This is written mainly to be used as `end-of-defun-function' for Rust."
(setq-local parse-sexp-lookup-properties t)
(setq-local electric-pair-inhibit-predicate 'rust-electric-pair-inhibit-predicate-wrap)
- (add-hook 'before-save-hook 'rust--before-save-hook nil t)
+ (add-hook 'before-save-hook 'rust-before-save-hook nil t)
+ (add-hook 'after-save-hook 'rust-after-save-hook nil t)
(setq-local rust-buffer-project nil)
@@ -1571,9 +1572,17 @@ This is written mainly to be used as `end-of-defun-function' for Rust."
(require 'rust-mode)
(rust-mode))
-(defun rust--before-save-hook ()
- (when rust-format-on-save (rust-format-buffer)))
-
+(defun rust-before-save-hook ()
+ (when rust-format-on-save
+ (condition-case nil
+ (rust-format-buffer)
+ (error nil))))
+
+(defun rust-after-save-hook ()
+ (when rust-format-on-save
+ (unless (executable-find rust-rustfmt-bin)
+ (error "Could not locate executable \"%s\"" rust-rustfmt-bin))))
+
(defvar rustc-compilation-regexps
(let ((file "\\([^\n]+\\)")
(start-line "\\([0-9]+\\)")