branch: externals/consult-recoll
commit 0c2c8c12b9c92f5763ab04d849b4780cbb8359d4
Author: jao <[email protected]>
Commit: jao <[email protected]>
new user option consult-recoll-search-flags
---
consult-recoll.el | 19 +++++++++++--------
1 file changed, 11 insertions(+), 8 deletions(-)
diff --git a/consult-recoll.el b/consult-recoll.el
index db95383197..43857cd402 100644
--- a/consult-recoll.el
+++ b/consult-recoll.el
@@ -44,6 +44,12 @@
"Prompt used by `consult-recoll'."
:type 'string)
+(defcustom consult-recoll-search-flags '("-a")
+ "List of flags used to perform queries via recollq."
+ :type '(choice (const :tag "Query language" nil)
+ (const :tag "All terms" ("-a"))
+ (list string)))
+
(defcustom consult-recoll-open-fn #'find-file
"Default function used to open candidate URL.
It receives a single argument, the full path to the file to open.
@@ -69,18 +75,15 @@ Set to nil to use the default 'title (path)' format."
(defun consult-recoll--command (text)
"Command used to perform queries for TEXT."
- `("recollq" "-a" "-F" "url title mtype" ,text))
+ `("recollq" ,@consult-recoll-search-flags ,text))
(defun consult-recoll--transformer (str)
"Decode STR, as returned by recollq."
- (unless (string-match-p "^\\(Recoll query:\\|[0-9]+ results\\| *$\\)" str)
- (let* ((cmps (split-string str " "))
- (fields (seq-map #'base64-decode-string cmps))
- (url (car fields))
- (title (cadr fields))
- (title (if (string= "" title) (file-name-base url) title))
+ (when (string-match "^\\([^[]+\\)\t\\[\\([^]]+\\)\\]\t\\[\\([^[]+\\)\\]" str)
+ (let* ((mime (match-string 1 str))
+ (url (match-string 2 str))
+ (title (match-string 3 str))
(urln (if (string-prefix-p "file://" url) (substring url 7) url))
- (mime (nth 2 fields))
(cand (if consult-recoll-format-candidate
(funcall consult-recoll-format-candidate title urln mime)
(format "%s (%s)"