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

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

[nongnu] elpa/rust-mode ac6a45e 308/486: Merge pull request #213 from Ke


From: ELPA Syncer
Subject: [nongnu] elpa/rust-mode ac6a45e 308/486: Merge pull request #213 from KeenS/restore-points
Date: Sat, 7 Aug 2021 09:25:42 -0400 (EDT)

branch: elpa/rust-mode
commit ac6a45e6091c0d542b696b6e13551be7e333264a
Merge: 7724813 d71fe94
Author: Tom Tromey <tom@tromey.com>
Commit: GitHub <noreply@github.com>

    Merge pull request #213 from KeenS/restore-points
    
    restore points even when an error occurs
---
 rust-mode.el | 27 ++++++++++++++-------------
 1 file changed, 14 insertions(+), 13 deletions(-)

diff --git a/rust-mode.el b/rust-mode.el
index 1a9d77d..cdf4edb 100644
--- a/rust-mode.el
+++ b/rust-mode.el
@@ -1326,19 +1326,20 @@ This is written mainly to be used as 
`end-of-defun-function' for Rust."
                         (rust--format-get-loc buffer start)
                         (rust--format-get-loc buffer point))
                   window-loc)))))
-    (rust--format-call (current-buffer))
-    (dolist (loc buffer-loc)
-      (let* ((buffer (pop loc))
-             (pos (rust--format-get-pos buffer (pop loc))))
-        (with-current-buffer buffer
-          (goto-char pos))))
-    (dolist (loc window-loc)
-      (let* ((window (pop loc))
-             (buffer (window-buffer window))
-             (start (rust--format-get-pos buffer (pop loc)))
-             (pos (rust--format-get-pos buffer (pop loc))))
-        (set-window-start window start)
-        (set-window-point window pos))))
+    (unwind-protect
+        (rust--format-call (current-buffer))
+      (dolist (loc buffer-loc)
+        (let* ((buffer (pop loc))
+               (pos (rust--format-get-pos buffer (pop loc))))
+          (with-current-buffer buffer
+            (goto-char pos))))
+      (dolist (loc window-loc)
+        (let* ((window (pop loc))
+               (buffer (window-buffer window))
+               (start (rust--format-get-pos buffer (pop loc)))
+               (pos (rust--format-get-pos buffer (pop loc))))
+          (set-window-start window start)
+          (set-window-point window pos)))))
 
   (message "Formatted buffer with rustfmt."))
 



reply via email to

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