1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-04-18 03:51:48 -07:00

(widget-string-complete): New.

(widget-coding-system-prompt-value-history): Deleted.
(coding-system): Use coding-system-value-history.
This commit is contained in:
Dave Love 2002-09-09 22:19:53 +00:00
parent 0b520940e6
commit b0628208cb

View file

@ -2870,6 +2870,43 @@ as the value."
:complete-function 'ispell-complete-word
:prompt-history 'widget-string-prompt-value-history)
(eval-when-compile (defvar widget))
(defun widget-string-complete ()
"Complete contents of string field.
Completions are taken from the :completion-alist property of the
widget. If that isn't a list, it's evalled and expected to yield a list."
(interactive)
(let* ((prefix (buffer-substring-no-properties (widget-field-start widget)
(point)))
(completion-ignore-case (widget-get widget :completion-ignore-case))
(alist (widget-get widget :completion-alist))
(_ (unless (listp alist)
(setq alist (eval alist))))
(completion (try-completion prefix alist)))
(cond ((eq completion t)
(when completion-ignore-case
;; Replace field with completion in case its case is different.
(delete-region (widget-field-start widget)
(widget-field-end widget))
(insert-and-inherit (car (assoc-ignore-case prefix alist))))
(message "Only match"))
((null completion)
(error "No match"))
((not (eq t (compare-strings prefix nil nil completion nil nil
completion-ignore-case)))
(when completion-ignore-case
;; Replace field with completion in case its case is different.
(delete-region (widget-field-start widget)
(widget-field-end widget))
(insert-and-inherit completion)))
(t
(message "Making completion list...")
(with-output-to-temp-buffer "*Completions*"
(display-completion-list
(all-completions prefix alist nil)))
(message "Making completion list...done")))))
(define-widget 'regexp 'string
"A regular expression."
:match 'widget-regexp-match
@ -3025,16 +3062,13 @@ It will read a directory name from the minibuffer when invoked."
(interactive)
(lisp-complete-symbol 'boundp))
:tag "Variable")
(defvar widget-coding-system-prompt-value-history nil
"History of input to `widget-coding-system-prompt-value'.")
(define-widget 'coding-system 'symbol
"A MULE coding-system."
:format "%{%t%}: %v"
:tag "Coding system"
:base-only nil
:prompt-history 'widget-coding-system-prompt-value-history
:prompt-history 'coding-system-value-history
:prompt-value 'widget-coding-system-prompt-value
:action 'widget-coding-system-action
:complete-function (lambda ()