From 8bc190bc85c7fd3bb9cc5cd92df411e0bcebd851 Mon Sep 17 00:00:00 2001 From: Nicolas Graves Date: Wed, 12 Nov 2025 02:23:37 +0100 Subject: [PATCH] gnu: Add emacs-consult-recoll. * gnu/packages/emacs-xyz.scm (emacs-consult-recoll): New variable. Signed-off-by: Liliana Marie Prikler --- gnu/packages/emacs-xyz.scm | 39 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index ecf2f0840a7..828cb85fdaf 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -310,6 +310,7 @@ #:use-module (gnu packages finance) #:use-module (gnu packages ocaml) #:use-module (gnu packages erlang) + #:use-module (gnu packages search) #:use-module (gnu packages statistics) #:use-module (gnu packages libcanberra) #:use-module (gnu packages telegram) @@ -45306,6 +45307,44 @@ current buffer, it displays a list of known projects. One can then pick a file from the selected project.") (license license:gpl3+)))) +(define-public emacs-consult-recoll + (package + (name "emacs-consult-recoll") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://codeberg.org/jao/consult-recoll") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0w7c41fz6mm0i8annxr68icrcdmindafkvd3fnnnyw3ncm8vsygb")))) + (build-system emacs-build-system) + (arguments + (list + #:tests? #f ; No tests upstream. + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'inject-recollq + (lambda* (#:key inputs #:allow-other-keys) + (emacs-substitute-variables "consult-recoll.el" + ("consult-recoll-program" + `(or (executable-find "recollq") + ,(search-input-file inputs "bin/recollq"))))))))) + (inputs (list recoll-cli)) + (propagated-inputs (list emacs-consult)) + (home-page "https://codeberg.org/jao/consult-recoll") + (synopsis "Recoll queries using consult") + (description + "Recoll is a local search engine that knows how to index a wide variety +of file formats, including PDFs, org and other text files and emails. It also +offers a sophisticated query language, and, for some document kinds, snippets +in the found documents actually matching the query at hand. This package +provides an emacs interface to perform recoll queries, and display its +results, via @code{emacs-consult}.") + (license license:gpl3+))) + (define-public emacs-context-transient (package (name "emacs-context-transient")