emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa/rust-mode ee262cc 373/486: Merge pull request #266 from br


From: ELPA Syncer
Subject: [nongnu] elpa/rust-mode ee262cc 373/486: Merge pull request #266 from brotzeit/format-on-save
Date: Sat, 7 Aug 2021 09:25:55 -0400 (EDT)

branch: elpa/rust-mode
commit ee262ccdee16e0e78c7e16f81630c154d0b8f39b
Merge: 256db76 9154e0e
Author: Felix S Klock II <pnkfelix@pnkfx.org>
Commit: GitHub <noreply@github.com>

    Merge pull request #266 from brotzeit/format-on-save
    
    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 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]+\\)")



reply via email to

[Prev in Thread] Current Thread [Next in Thread]