ソースを参照

Add regex and multiword search

Note: multiword search puts duplicate entries in results list XXX
Fred Gilham 4 週間 前
コミット
d734a2811b
1 ファイル変更7 行追加7 行削除
  1. 7 7
      bible-mode.el

+ 7 - 7
bible-mode.el

@@ -233,7 +233,7 @@ which are of the form
   "Search query associated with the buffer.")
 
 (defvar-local bible-mode-search-mode "phrase"
-  "Search mode: either `lucene' or `phrase'.")
+  "Search mode: either `lucene', `phrase', `regex' or `multiword'.")
 
 (defvar bible-mode-search-range nil)
 
@@ -566,7 +566,7 @@ Genesis 1:1 is used."
 (defun bible-mode-set-search-range ()
   "Ask user for a new text module for the current `bible-mode' buffer."
   (interactive)
-  (let ((range (read-string "Range (<return> to clear): " nil nil nil)))
+  (let ((range (read-string "Range (<return> to clear): ")))
     (if (string-equal range "")
 	(setq bible-mode-search-range nil)
       (setq bible-mode-search-range range))
@@ -611,12 +611,12 @@ Genesis 1:1 is used."
 ;;;###autoload
 (defun bible-search (query)
   "Prompts the user for a Bible search query: word or phrase and type of
-search: either `lucene' or `phrase'. `lucene' mode requires an index
-to be built using the `mkfastmod' program. `lucene' is the default
-search."
+search: either `lucene', `phrase', `regex' or `multiword'. `lucene' mode
+requires an index to be built using the `mkfastmod' program. `lucene' is
+the default search."
   (interactive "sBible Search: ")
   (when (> (length query) 0)
-    (let* ((searchmode (completing-read "Search Mode: " '("lucene" "phrase") nil t "lucene")))
+    (let* ((searchmode (completing-read "Search Mode: " '("lucene" "phrase" "regex" "multiword") nil t "lucene")))
       (bible-mode--open-search query searchmode bible-mode-module))))
 
 ;;;###autoload
@@ -705,7 +705,7 @@ OT/NT etc. If that module doesn't have that verse...???"
 	(if searchtype
 	    (progn
 	      (setq filter nil) ; search is not compatible with filters XXX
-	      (setq args (append args (list "-s" (pcase searchtype ("lucene" "lucene") ("phrase" "phrase")))))
+	      (setq args (append args (list "-s" (pcase searchtype ("lucene" "lucene") ("phrase" "phrase") ("regex" "regex") ("multiword" "multiword")))))
 	      (when bible-mode-search-range (setq args (append args (list "-r" bible-mode-search-range)))))
 	  (progn
 	    (if filter