emacs-diffs
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]