[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/el-search 9f4a9e5 310/332: [el-search] Improve "Make re
From: |
Stefan Monnier |
Subject: |
[elpa] externals/el-search 9f4a9e5 310/332: [el-search] Improve "Make replacement editable and ediff'able" |
Date: |
Tue, 1 Dec 2020 15:49:11 -0500 (EST) |
branch: externals/el-search
commit 9f4a9e5f691203ea14795e2589cde5898796c0f0
Author: Michael Heerdegen <michael_heerdegen@web.de>
Commit: Michael Heerdegen <michael_heerdegen@web.de>
[el-search] Improve "Make replacement editable and ediff'able"
* packages/el-search/el-search.el
(el-search-query-replace--comments-preserved-p): Be more accurate when
skipping the header to extract the edited replacement.
---
el-search.el | 40 +++++++++++++++++++++-------------------
1 file changed, 21 insertions(+), 19 deletions(-)
diff --git a/el-search.el b/el-search.el
index f8751d8..1c26b49 100644
--- a/el-search.el
+++ b/el-search.el
@@ -4363,13 +4363,8 @@ exactly you did? Thanks!"))))
(edit-replacement
(lambda (&optional ediff-only)
(save-excursion ;user may copy stuff from
base buffer etc.
- (let* ((buffer (generate-new-buffer
"*Replacement*"))
- (window (display-buffer buffer)))
- (select-window window)
- (emacs-lisp-mode)
- (unless ediff-only
- (insert
- (propertize "\
+ (let* ((header
+ (propertize "\
;; This buffer shows the individual replacement for the current match.
;; You may edit it here while query-replace is interrupted by a
;; `recursive-edit'.
@@ -4377,9 +4372,21 @@ exactly you did? Thanks!"))))
;; to confirm.
;; Type C-c C-e to Ediff the current match with this buffer's content.
;; Type C-c C-r to revert this buffer."
- 'read-only t 'field t
- 'front-sticky t
'rear-nonsticky t)
- "\n\n"))
+ 'read-only t 'field t
+ 'front-sticky t
'rear-nonsticky t))
+ (find-replacement-beg
+ (lambda ()
+ (goto-char (point-min))
+ (when (looking-at (regexp-quote
header))
+ (goto-char (match-end 0)))
+ (while (and (not (eobp))
(looking-at "^$"))
+ (forward-line))))
+ (buffer (generate-new-buffer
"*Replacement*"))
+ (window (display-buffer buffer)))
+ (select-window window)
+ (emacs-lisp-mode)
+ (unless ediff-only
+ (insert header "\n\n"))
(save-excursion (insert to-insert))
(let ((inhibit-message t))
(indent-region (point) (point-max)))
@@ -4417,10 +4424,7 @@ exactly you did? Thanks!"))))
(define-key map [(control ?c)
(control ?r)]
(lambda ()
(interactive)
- (goto-char (point-min))
- (while (and (not (eobp))
- (looking-at
"^;;\\|^$"))
- (forward-line))
+ (funcall find-replacement-beg)
(delete-region (point)
(point-max))
(insert (funcall
get-replacement-string))))
map))
@@ -4435,11 +4439,9 @@ exactly you did? Thanks!"))))
(let ((new-to-insert
(and (buffer-modified-p buffer)
(with-current-buffer buffer
- (goto-char (point-min))
- (while (and (not (eobp))
- (looking-at
"^;;\\|^$"))
- (forward-line))
- (buffer-substring (point)
(point-max))))))
+ (funcall
find-replacement-beg)
+ (string-trim
+ (buffer-substring (point)
(point-max)))))))
(when (and new-to-insert
(y-or-n-p "Use modified
version?"))
(setq to-insert new-to-insert)))
- [elpa] externals/el-search a6c23b5 250/332: * el-search/el-search.el: Correct NOERROR argument uses, (continued)
- [elpa] externals/el-search a6c23b5 250/332: * el-search/el-search.el: Correct NOERROR argument uses, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search 2a02a81 277/332: [el-search] Let el-search-query-replace add undo boundaries, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search 864f0ed 276/332: [el-search] Provide el-search-occur-search-object earlier, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search 23cf24d 275/332: [el-search] Enhancements to my last two commits, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search effcb50 271/332: [el-search] Make r hit twice restore a replaced match, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search b9ba337 283/332: [el-search] Allow to work without installing key bindings, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search 841a027 287/332: [el-search] Some optimization tweaks, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search 70634b7 298/332: [el-search] Avoid bytecomp warning windows pop up, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search 22c2f25 297/332: [el-search] Display colored defun match count, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search 061464c 303/332: [el-search] Improvise eldoc support for search pattern prompt, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search 9f4a9e5 310/332: [el-search] Improve "Make replacement editable and ediff'able",
Stefan Monnier <=
- [elpa] externals/el-search 3da4529 316/332: [el-search] Minor tweaks and version bump, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search e96c51e 319/332: [el-search] Key syntax cleanup, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search f091ed5 320/332: [el-search] Prefer rx forms to stringish regexps, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search 47ee6b1 226/332: Improve working of `el-search-kill-left-over-search-buffers', Stefan Monnier, 2020/12/01
- [elpa] externals/el-search e21a53d 240/332: [el-search] Use current buffer to check for matches in replacement, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search 188fb4a 259/332: [el-search] Minor tweaks and bump version to 1.7.5, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search d909f2e 260/332: [el-search] Follow-ups to transient map handling, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search d9950e1 264/332: [el-search] Fix nested match issues in *El Occur*, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search d9b2ff6 257/332: [el-search] Extend meaning of C-J prefix arg, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search 656869c 235/332: * el-search/el-search.el: Fix heuristic matcher for 'nil, Stefan Monnier, 2020/12/01