branch: externals/cape
commit c0ffca8c87882273ae833f13027e344f886f23f2
Author: Daniel Mendler <m...@daniel-mendler.de>
Commit: Daniel Mendler <m...@daniel-mendler.de>

    Revert "Add cape-dict-grep customization option (Fix #147)"
    
    This reverts commit cc9cf45c651ad4784444cfdbdf238ac18dce39c9.
---
 CHANGELOG.org |  4 +---
 cape.el       | 53 ++++++++++++-----------------------------------------
 2 files changed, 13 insertions(+), 44 deletions(-)

diff --git a/CHANGELOG.org b/CHANGELOG.org
index 38700e3a92..79a0cbdc63 100644
--- a/CHANGELOG.org
+++ b/CHANGELOG.org
@@ -4,10 +4,8 @@
 
 * Development
 
-- ~cape-dict~: Add new customization variable ~cape-dict-grep~. Set to ~nil~ 
to filter
-  the dictionary in Lisp.
 - ~cape-file~: Improve handling of environment variables as part of the path,
-  e.g., ~$HOME~.
+  e.g., $HOME.
 - ~cape-company-to-capf~: Handle updated return value convention of the 
~prefix~
   action of Company backends.
 
diff --git a/cape.el b/cape.el
index 21fde3b069..1142e7202c 100644
--- a/cape.el
+++ b/cape.el
@@ -67,11 +67,6 @@
   "Maximal number of completion candidates returned by `cape-dict'."
   :type '(choice (const nil) natnum))
 
-(defcustom cape-dict-grep t
-  "Filter the dictionary via grep instead of in Lisp.
-It may be beneficial to disable this setting depending on your system."
-  :type 'boolean)
-
 (defcustom cape-dict-file "/usr/share/dict/words"
   "Path to dictionary word list file.
 This variable can also be a list of paths or
@@ -622,8 +617,6 @@ See the user options `cape-dabbrev-min-length' and
         :category 'cape-dict)
   "Completion extra properties for `cape-dict'.")
 
-(defvar cape--dict-cache nil)
-
 (defun cape--dict-list (input)
   "Return all words from `cape-dict-file' matching INPUT."
   (let* ((inhibit-message t)
@@ -633,40 +626,18 @@ See the user options `cape-dabbrev-min-length' and
                    (file-directory-p default-directory))
               default-directory
             user-emacs-directory))
-         (files (sort (mapcar #'expand-file-name
-                              (ensure-list
-                               (if (functionp cape-dict-file)
-                                   (funcall cape-dict-file)
-                                 cape-dict-file)))
-                      #'string<))
-         (words nil))
-    (if cape-dict-grep
-        (setq words (apply #'process-lines-ignore-status
-                           "grep"
-                           (concat "-Fh"
-                                   (and (cape--case-fold-p 
cape-dict-case-fold) "i")
-                                   (and cape-dict-limit (format "m%d" 
cape-dict-limit)))
-                           input files))
-      (let ((completion-ignore-case (cape--case-fold-p cape-dict-case-fold))
-            (completion-regexp-list (list (regexp-quote input)))
-            (count 0))
-        (catch 'limit
-          (all-completions
-           ""
-           (with-memoization (alist-get files cape--dict-cache nil nil #'equal)
-             (with-temp-buffer
-               (dolist (file files)
-                 (insert-file-contents file)
-                 (insert "\n"))
-               (when (> (count-lines (point-min) (point-max)) 100000)
-                 (error "Too many words in `cape-dict-file'.  Use 
`cape-dict-grep'"))
-               (split-string (buffer-string) "[\r\n]+" t)))
-           (lambda (word)
-             (when cape-dict-limit
-               (when (>= count cape-dict-limit) (throw 'limit nil))
-               (cl-incf count))
-             (push word words)
-             nil)))))
+         (files (mapcar #'expand-file-name
+                        (ensure-list
+                         (if (functionp cape-dict-file)
+                             (funcall cape-dict-file)
+                           cape-dict-file))))
+         (words
+          (apply #'process-lines-ignore-status
+                 "grep"
+                 (concat "-Fh"
+                         (and (cape--case-fold-p cape-dict-case-fold) "i")
+                         (and cape-dict-limit (format "m%d" cape-dict-limit)))
+                 input files)))
     (cons
      (apply-partially
       (if (and cape-dict-limit (length= words cape-dict-limit))

Reply via email to