[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/el-search 2871f22 178/332: Recover from search head poi
From: |
Stefan Monnier |
Subject: |
[elpa] externals/el-search 2871f22 178/332: Recover from search head pointing to a killed buffer |
Date: |
Tue, 1 Dec 2020 15:48:39 -0500 (EST) |
branch: externals/el-search
commit 2871f227afd9d1ecf6199586d366b4d932f014f3
Author: Michael Heerdegen <michael_heerdegen@web.de>
Commit: Michael Heerdegen <michael_heerdegen@web.de>
Recover from search head pointing to a killed buffer
Try to resume from the associated buffer file; alternatively restart
the search.
---
el-search.el | 27 ++++++++++++++++++++++++---
1 file changed, 24 insertions(+), 3 deletions(-)
diff --git a/el-search.el b/el-search.el
index 11610dd..23f1abe 100644
--- a/el-search.el
+++ b/el-search.el
@@ -338,8 +338,6 @@
;;
;; - The default keys are not available in the terminal
;;
-;; - Handle buffers killed/files closed when resuming a search
-;;
;; - Make searching work in comments, too? (->
;; `parse-sexp-ignore-comments'). Related: should the pattern
;; `symbol' also match strings that contain matches for a symbol so
@@ -1911,7 +1909,30 @@ that the current search."
(current-head (el-search-object-head search))
(current-search-buffer (el-search-head-buffer current-head)))
(if (not (buffer-live-p current-search-buffer))
- (user-error "Search head points to a killed buffer")
+ (let* ((head-file-name (el-search-head-file current-head))
+ (search (el-search-reset-search search))
+ (buffer-stream (el-search-head-buffers (el-search-object-head
search)))
+ (buffer-stream-from-head-file
+ (let ((inhibit-message t))
+ (and head-file-name
+ (cadr (stream-divide-with-get-rest-fun
+ buffer-stream
+ (lambda (s)
+ (while (and (not (stream-empty-p s))
+ (or (not (stringp (stream-first
s)))
+ (not (file-equal-p
(stream-first s) head-file-name))))
+ (stream-pop s))
+ s)))))))
+ (message "Search head points to a killed buffer...")
+ (sit-for 1)
+ (if (or (not head-file-name)
+ (stream-empty-p buffer-stream-from-head-file))
+ (el-search--message-no-log "Restarting search...")
+ (setf (el-search-head-buffers (el-search-object-head search))
+ buffer-stream-from-head-file)
+ (message "Restarting from %s..." (file-name-nondirectory
head-file-name)))
+ (sit-for 2)
+ (el-search-continue-search))
(setq this-command 'el-search-pattern)
(pop-to-buffer current-search-buffer
el-search-display-buffer-popup-action)
(let ((last-match (el-search-object-last-match search)))
- [elpa] externals/el-search 7fe5fb7 126/332: Some details, (continued)
- [elpa] externals/el-search 7fe5fb7 126/332: Some details, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search 2a0773f 134/332: Use jka-compr-load-suffixes instead of hardcoded suffixes, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search 644b04d 139/332: el-search: bump version to 1.2.2, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search b500266 151/332: Tweak el-search--pp-to-string, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search 79095f6 143/332: Improve summary message of `el-search-overview', Stefan Monnier, 2020/12/01
- [elpa] externals/el-search 3772a97 133/332: Add a helpful comment; bump version to 1.2.1, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search 0808109 161/332: Fix el-search--change-p for atoms, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search f028826 163/332: Narrow down the semantics of symbol LPATs, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search c70b003 164/332: Use stream-x.el, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search a4004b3 167/332: Make `el-search-reset-search' modify its argument, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search 2871f22 178/332: Recover from search head pointing to a killed buffer,
Stefan Monnier <=
- [elpa] externals/el-search cf5b5a9 177/332: Display an x/y-style match count in the echo area, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search ca6b9f2 183/332: Add a PROMPT arg to `el-search--read-pattern-for-interactive', Stefan Monnier, 2020/12/01
- [elpa] externals/el-search d2b8f84 184/332: New command `el-search-count-matches', Stefan Monnier, 2020/12/01
- [elpa] externals/el-search 468745a 185/332: Show match count for `el-search-query-replace', Stefan Monnier, 2020/12/01
- [elpa] externals/el-search c80df81 186/332: Fix resuming search in a modified buffer, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search 0b93a25 188/332: * el-search/el-search.el: Minor tweak., Stefan Monnier, 2020/12/01
- [elpa] externals/el-search 145ce47 102/332: Update copyright, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search 24d0638 099/332: Rewrite the `change' and `changed' patterns, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search da31900 146/332: Update some copyrights, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search 94b79e5 149/332: Add new pattern type `de-morgan', Stefan Monnier, 2020/12/01