[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/consult 4f4d29d3e6: consult--multi: Support multiple na
From: |
ELPA Syncer |
Subject: |
[elpa] externals/consult 4f4d29d3e6: consult--multi: Support multiple narrow keys per source |
Date: |
Tue, 10 Dec 2024 03:57:47 -0500 (EST) |
branch: externals/consult
commit 4f4d29d3e6665c73dbfbe743e0c2ae7e6f8cb8af
Author: Daniel Mendler <mail@daniel-mendler.de>
Commit: Daniel Mendler <mail@daniel-mendler.de>
consult--multi: Support multiple narrow keys per source
---
CHANGELOG.org | 2 ++
README.org | 2 ++
consult.el | 20 ++++++++++++--------
3 files changed, 16 insertions(+), 8 deletions(-)
diff --git a/CHANGELOG.org b/CHANGELOG.org
index dccfcd72ff..8b183aced5 100644
--- a/CHANGELOG.org
+++ b/CHANGELOG.org
@@ -15,6 +15,8 @@
- Remove special ~org-fold~ code. Set ~org-fold-core-style~ to ~overlays~ if
unfolding
in Org files does not work for you.
- ~consult-info~: Support sub files.
+- ~consult--multi~: Support multiple narrow keys per source. Used by the
project
+ buffer and project recent file source.
- ~consult--async-sink~: The new action ~cancel~ was added to the async
protocol.
- ~consult--read~: Add new keyword argument ~:initial-narrow~.
diff --git a/README.org b/README.org
index 22b6144652..dfdaa693c8 100644
--- a/README.org
+++ b/README.org
@@ -101,6 +101,8 @@ their descriptions.
- r File registers
- m Bookmarks
- p Project
+ - B Project buffers
+ - F Project files
- Custom [[#multiple-sources][other sources]] configured in
=consult-buffer-sources=.
- =consult-buffer-other-window=, =consult-buffer-other-frame=,
=consult-buffer-other-tab=: Variants of =consult-buffer=.
diff --git a/consult.el b/consult.el
index 692a58eed6..724dea96ec 100644
--- a/consult.el
+++ b/consult.el
@@ -2711,21 +2711,23 @@ KEYMAP is a command-specific keymap."
(defun consult--multi-predicate (sources cand)
"Predicate function called for each candidate CAND given SOURCES."
(let* ((src (consult--multi-source sources cand))
- (narrow (plist-get src :narrow))
- (type (or (car-safe narrow) narrow -1)))
- (or (eq consult--narrow type)
+ (narrow (or (plist-get src :narrow) -1)))
+ (or (pcase narrow
+ (`((,_ . ,_) . ,_) (assq consult--narrow narrow))
+ (`(,k . ,_) (eq consult--narrow k))
+ (k (eq consult--narrow k)))
(not (or consult--narrow (plist-get src :hidden))))))
(defun consult--multi-narrow (sources)
"Return narrow list from SOURCES."
(thread-last
sources
- (mapcar (lambda (src)
+ (mapcan (lambda (src)
(when-let (narrow (plist-get src :narrow))
(if (consp narrow)
- narrow
+ (if (consp (car narrow)) (append narrow nil) (list narrow))
(when-let (name (plist-get src :name))
- (cons narrow name))))))
+ (list (cons narrow name)))))))
(delq nil)
(delete-dups)))
@@ -4530,11 +4532,13 @@ If NORECORD is non-nil, do not record the buffer switch
in the buffer list."
"Project file candidate source for `consult-buffer'.")
(defvar consult--source-project-buffer-hidden
- `(:hidden t :narrow (?p . "Project") ,@consult--source-project-buffer)
+ `(:hidden t :narrow ((?p . "Project") (?B . "Project Buffer"))
+ ,@consult--source-project-buffer)
"Like `consult--source-project-buffer' but hidden by default.")
(defvar consult--source-project-recent-file-hidden
- `(:hidden t :narrow (?p . "Project") ,@consult--source-project-recent-file)
+ `(:hidden t :narrow ((?p . "Project") (?F . "Project File"))
+ ,@consult--source-project-recent-file)
"Like `consult--source-project-recent-file' but hidden by default.")
(defvar consult--source-hidden-buffer
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [elpa] externals/consult 4f4d29d3e6: consult--multi: Support multiple narrow keys per source,
ELPA Syncer <=