branch: externals/cape
commit 3434342af95b624c80bdc6aa7189cd6f25c075c4
Author: Daniel Mendler <[email protected]>
Commit: Daniel Mendler <[email protected]>

    Improve cape-dabbrev
    
    Also trigger on empty input for compatibility with cape-capf-super
---
 cape.el | 37 +++++++++++++++++++------------------
 1 file changed, 19 insertions(+), 18 deletions(-)

diff --git a/cape.el b/cape.el
index 288ae05b2c..7782885f32 100644
--- a/cape.el
+++ b/cape.el
@@ -582,21 +582,22 @@ If INTERACTIVE is nil the function acts like a Capf."
     (require 'dabbrev))
   (let ((re (or dabbrev-abbrev-char-regexp "\\sw\\|\\s_"))
         (limit (minibuffer-prompt-end)))
-    (when (or (looking-at re)
-              (and (> (point) limit)
-                   (save-excursion (forward-char -1) (looking-at re))))
-      (cons (save-excursion
-              (while (and (> (point) limit)
-                          (save-excursion (forward-char -1) (looking-at re)))
-                (forward-char -1))
-              (when dabbrev-abbrev-skip-leading-regexp
-                (while (looking-at dabbrev-abbrev-skip-leading-regexp)
-                  (forward-char 1)))
-              (point))
-            (save-excursion
-              (while (looking-at re)
-                (forward-char 1))
-              (point))))))
+    (if (or (looking-at re)
+            (and (> (point) limit)
+                 (save-excursion (forward-char -1) (looking-at re))))
+        (cons (save-excursion
+                (while (and (> (point) limit)
+                            (save-excursion (forward-char -1) (looking-at re)))
+                  (forward-char -1))
+                (when dabbrev-abbrev-skip-leading-regexp
+                  (while (looking-at dabbrev-abbrev-skip-leading-regexp)
+                    (forward-char 1)))
+                (point))
+              (save-excursion
+                (while (looking-at re)
+                  (forward-char 1))
+                (point)))
+      (cons (point) (point)))))
 
 ;;;###autoload
 (defun cape-dabbrev (&optional interactive)
@@ -609,10 +610,10 @@ See the user option `cape-dabbrev-buffer-function'."
   (interactive (list t))
   (if interactive
       (cape-interactive #'cape-dabbrev)
-    (when-let ((bounds (cape--dabbrev-bounds)))
-      `(,(car bounds) ,(cdr bounds)
+    (pcase-let ((`(,beg . ,end) (cape--bounds 'word)))
+      `(,beg ,end
         ,(completion-table-case-fold
-          (cape--dynamic-table (car bounds) (cdr bounds) #'cape--dabbrev-list)
+          (cape--dynamic-table beg end #'cape--dabbrev-list)
           (not (cape--case-fold-p dabbrev-case-fold-search)))
         ,@cape--dabbrev-properties))))
 

Reply via email to