From ce90f6442ca40f030d3de446cd9f57c53804d7fe Mon Sep 17 00:00:00 2001 From: Mauro Aranda Date: Wed, 25 Sep 2019 19:40:35 -0300 Subject: [PATCH] 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 | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lisp/wid-edit.el b/lisp/wid-edit.el index 916d41a..9a634b7 100644 --- a/lisp/wid-edit.el +++ b/lisp/wid-edit.el @@ -3073,7 +3073,12 @@ 'string "A string." :tag "String" :format "%{%t%}: %v" - :complete-function 'ispell-complete-word + :complete (lambda (widget) + (eval-and-compile (require 'ispell)) ; For `ispell-get-word'. + (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 -- 2.7.4