[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] master 7d46b93 1/2: Only complete words inside of the stri
From: |
Lars Ingebrigtsen |
Subject: |
[Emacs-diffs] master 7d46b93 1/2: Only complete words inside of the string widget |
Date: |
Sun, 6 Oct 2019 23:00:31 -0400 (EDT) |
branch: master
commit 7d46b934ab60fdd58c46391636663ff85594c40b
Author: Mauro Aranda <address@hidden>
Commit: Lars Ingebrigtsen <address@hidden>
Only complete words inside of the string widget
* lisp/wid-edit.el ('string widget): Peek the word that
ispell-complete-word will try to complete, and only offer completions
when the word is inside of the field (bug#11046).
---
lisp/wid-edit.el | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/lisp/wid-edit.el b/lisp/wid-edit.el
index a5999c0..4d1a609 100644
--- a/lisp/wid-edit.el
+++ b/lisp/wid-edit.el
@@ -58,6 +58,10 @@
(require 'cl-lib)
(eval-when-compile (require 'subr-x)) ; when-let
+;; The `string' widget completion uses this.
+(declare-function ispell-get-word "ispell"
+ (following &optional extra-otherchars))
+
;;; Compatibility.
(defun widget-event-point (event)
@@ -3074,7 +3078,12 @@ as the value."
"A string."
:tag "String"
:format "%{%t%}: %v"
- :complete-function 'ispell-complete-word
+ :complete (lambda (widget)
+ (require 'ispell)
+ (let ((start (save-excursion (nth 1 (ispell-get-word nil)))))
+ (if (< start (widget-field-start widget))
+ (message "No word to complete inside field")
+ (ispell-complete-word))))
:prompt-history 'widget-string-prompt-value-history)
(define-widget 'regexp 'string