branch: elpa/rust-mode
commit d71fe94d51840a3a43b51b983d903fc1a14d7193
Author: Sunrin SHIMURA (keen) <[email protected]>
Commit: Sunrin SHIMURA (keen) <[email protected]>
restore points when an error occurs too
---
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."))