[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/el-search 47ee6b1 226/332: Improve working of `el-searc
From: |
Stefan Monnier |
Subject: |
[elpa] externals/el-search 47ee6b1 226/332: Improve working of `el-search-kill-left-over-search-buffers' |
Date: |
Tue, 1 Dec 2020 15:48:51 -0500 (EST) |
branch: externals/el-search
commit 47ee6b1759266e55d1d0d85fbc303ba115a31ea3
Author: Michael Heerdegen <michael_heerdegen@web.de>
Commit: Michael Heerdegen <michael_heerdegen@web.de>
Improve working of `el-search-kill-left-over-search-buffers'
We used to consult the ring elements of el-search-history to identify
buffers with non-nil el-search--temp-buffer-flag which might still be
relevant to the user, which was not optimal. With this change,
`el-search--pending-search-p' becomes a reliable mean to do that, and
we can reimplement el-search-kill-left-over-search-buffers to use this
function instead.
* el-search/el-search.el (el-search--next-buffer): Remove
`el-search-hl-post-command-fun' from the local binding of
`post-command-hook' in the old buffer so that
`el-search--pending-search-p' is guaranteed to return nil there.
(el-search-kill-left-over-search-buffers): Use
`el-search--pending-search-p' to identify temporarily opened file
buffers which we should not kill.
---
el-search.el | 26 +++++++++++++-------------
1 file changed, 13 insertions(+), 13 deletions(-)
diff --git a/el-search.el b/el-search.el
index 7592f68..b656851 100644
--- a/el-search.el
+++ b/el-search.el
@@ -584,17 +584,12 @@ useful for debugging.")
"The currently active search, an `el-search-object', or nil.")
(defvar-local el-search--temp-buffer-flag nil
- "Non-nil tags file visiting buffers as temporarily opened for searching."
- ;; FIXME: maintaining a list of buffers to close would make
- ;; `el-search-kill-left-over-search-buffers' more efficient. And
- ;; could we merge this with `el-search--temp-file-buffer-flag'?
- )
+ "Non-nil tags file visiting buffers as temporarily opened for searching.")
(defvar-local el-search--temp-file-buffer-flag nil
"Non-nil tags (file) buffers that should not be presented to the user.
Buffers flagged this way contain the contents of a file but were
-not created with `find-file-noselect'. The name of this file is
-used as non-nil value.")
+not created with `find-file-noselect'.")
(defvar el-search--success nil
"Non-nil when last search command was successful.")
@@ -1134,11 +1129,11 @@ being killed."
(interactive)
(dolist (buffer (buffer-list))
(when (with-current-buffer buffer el-search--temp-buffer-flag)
- (unless (or (buffer-modified-p buffer)
- (and not-current-buffer (eq buffer (current-buffer)))
- (cl-some (lambda (search) (eq buffer (el-search-head-buffer
- (el-search-object-head
search))))
- (ring-elements el-search-history)))
+ (unless (or (and not-current-buffer (eq buffer (current-buffer)))
+ (and el-search--current-search
+ (eq buffer (el-search-head-buffer
+ (el-search-object-head
el-search--current-search))))
+ (with-current-buffer buffer (el-search--pending-search-p)))
(kill-buffer buffer)))))
@@ -1320,7 +1315,12 @@ PATTERN and combining the heuristic matchers of the
subpatterns."
;; SEARCH's head accordingly. When specified, PREDICATE should accept
;; a file name or buffer, and we skip all buffers and files not
;; fulfilling it. Return the new buffer to search in or nil if done.
- (unless keep-highlighting (el-search-hl-remove))
+ (unless keep-highlighting
+ (el-search-hl-remove)
+ ;; Ensure that `el-search--pending-search-p' returns nil in this
+ ;; buffer even when `el-search-hl-post-command-fun' doesn't get a
+ ;; chance to clean up before that call.
+ (remove-hook 'post-command-hook 'el-search-hl-post-command-fun t))
(let ((original-predicate (or predicate #'el-search-true))
(heuristic-buffer-matcher
(el-search-head-heuristic-buffer-matcher (el-search-object-head
search))))
- [elpa] externals/el-search effcb50 271/332: [el-search] Make r hit twice restore a replaced match, (continued)
- [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, 2020/12/01
- [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 <=
- [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
- [elpa] externals/el-search adbf76d 262/332: [el-search] Open invisible text, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search 60ad12e 268/332: [el-search] Small fix in el-search--reset-wrap-flag, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search 73a15d2 274/332: [el-search] Stop for problematic comments, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search 4961830 273/332: [el-search] Make replacement editable and ediff'able, Stefan Monnier, 2020/12/01