8787(defvar-local eca-rewrite--hovered-ov nil
8888 " Currently hovered rewrite overlay (point inside), or nil." )
8989
90+ (defvar-local eca-rewrite--restore-paren-mode-after-clean nil )
91+
9092(defvar-keymap eca-rewrite-actions-map
9193 :doc " Keymap for rewrite overlay actions."
9294 " a" #'eca-rewrite-accept
@@ -215,6 +217,9 @@ OVS may be a single overlay or a list of overlays. For each
215217overlay, remove it from the internal tracking list
216218`eca-rewrite--overlays' and delete it with `delete-overlay' .
217219No confirmation is asked; a nil OVS is ignored. Returns nil."
220+ (when eca-rewrite--restore-paren-mode-after-clean
221+ (setq eca-rewrite--restore-paren-mode-after-clean nil )
222+ (show-paren-mode 1 ))
218223 (dolist (ov (ensure-list ovs))
219224 (setq eca-rewrite--overlays (delq ov eca-rewrite--overlays))
220225 (when (eq ov eca-rewrite--hovered-ov)
@@ -226,6 +231,9 @@ No confirmation is asked; a nil OVS is ignored. Returns nil."
226231
227232(defun eca-rewrite--accept (ov )
228233 " Accept rewrite overlay OV."
234+ (when eca-rewrite--restore-paren-mode-after-clean
235+ (setq eca-rewrite--restore-paren-mode-after-clean nil )
236+ (show-paren-mode 1 ))
229237 (let ((ov-buf (overlay-buffer ov)))
230238 (with-current-buffer ov-buf
231239 (goto-char (overlay-start ov))
@@ -403,6 +411,10 @@ so shorter rewrites don't leave leftover original text in the overlay."
403411 (mode (and ov-buf (buffer-local-value 'major-mode ov-buf)))
404412 (acc (concat (overlay-get ov 'eca-rewrite--new-text-acc ) text)))
405413 (overlay-put ov 'eca-rewrite--new-text-acc acc)
414+ (with-current-buffer ov-buf
415+ (setq eca-rewrite--restore-paren-mode-after-clean t )
416+ (when show-paren-mode
417+ (show-paren-mode -1 )))
406418 (with-current-buffer temp-buf
407419 (let ((inhibit-read-only t )
408420 (inhibit-modification-hooks t ))
0 commit comments