branch: elpa/rust-mode
commit ac6a45e6091c0d542b696b6e13551be7e333264a
Merge: 7724813 d71fe94
Author: Tom Tromey <[email protected]>
Commit: GitHub <[email protected]>
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."))