From 3613551fefe4dbec3829347685196b177ccf80ff Mon Sep 17 00:00:00 2001 From: brotzeit Date: Fri, 23 Mar 2018 10:00:17 +0100 Subject: throw error in after-save-hook instead of before-save-hook --- rust-mode.el | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/rust-mode.el b/rust-mode.el index 011f615..6317033 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 rustfmt-err + (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]+\\)") -- cgit v1.2.3 From 9154e0ee361b5e20b5be7b5356c2b99286f8e35f Mon Sep 17 00:00:00 2001 From: brotzeit Date: Sat, 29 Sep 2018 10:18:45 +0200 Subject: silence byte-compiler --- rust-mode.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust-mode.el b/rust-mode.el index 6317033..6f11c79 100644 --- a/rust-mode.el +++ b/rust-mode.el @@ -1574,7 +1574,7 @@ This is written mainly to be used as `end-of-defun-function' for Rust." (defun rust-before-save-hook () (when rust-format-on-save - (condition-case rustfmt-err + (condition-case nil (rust-format-buffer) (error nil)))) -- cgit v1.2.3