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))))