branch: externals/bufferlo
commit f2c670b7592ce0703143dfb452a49e03ed690de1
Author: shipmints <[email protected]>
Commit: shipmints <[email protected]>
Expand multiple matches in bufferlo--bookmark-completing-read-multiple
This allows CRM completions such as:
todo$, foobar, f[0-9]
Useful for users that want to open many bookmarks by matching names
with regexps, for example.
---
bufferlo.el | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/bufferlo.el b/bufferlo.el
index 736844bdde..aedeba7663 100644
--- a/bufferlo.el
+++ b/bufferlo.el
@@ -2513,11 +2513,20 @@ When non-nil, NO-SORT uses the natural order of the
CANDIDATES list."
PROMPT is the prompt text ending with a space.
CANDIDATES are the prompt options to select.
When non-nil, NO-SORT uses the natural order of the CANDIDATES list."
- (let* ((comps
+ (let* ((raw-comps
(completing-read-multiple
prompt
(bufferlo--bookmark-completion-table candidates no-sort)
nil 'require-match nil 'bufferlo-bookmark-history))
+ (comps (mapcan (lambda (raw-comp)
+ (let ((tmp-comps
+ (completion-all-completions
+ raw-comp
+ candidates nil nil)))
+ (when (cdr (last tmp-comps))
+ (setcdr (last tmp-comps) nil))
+ tmp-comps))
+ raw-comps))
(comps (seq-uniq (mapcar (lambda (x) (substring-no-properties x))
comps))))
comps))