diff lisp/simple.el @ 4082:1d4aa358d9a0

(completion-mode): New major mode. (completion-setup-function): New function. Add it to completion-setup-hook.
author Richard M. Stallman <rms@gnu.org>
date Tue, 13 Jul 1993 21:34:05 +0000
parents ad0643aa3ebf
children 25a49899f199
line wrap: on
line diff
--- a/lisp/simple.el	Tue Jul 13 21:33:17 1993 +0000
+++ b/lisp/simple.el	Tue Jul 13 21:34:05 1993 +0000
@@ -2194,7 +2194,37 @@
 					   'arg))
 	       (eval-minibuffer (format "Set %s to value: " var)))))))
   (set var val))
+
+;; Define the major mode for lists of completions.
 
+(defvar completion-mode-map nil)
+(or completion-mode-map
+    (let ((map (make-sparse-keymap)))
+      (define-key map [mouse-2] 'mouse-choose-completion)
+      (setq completion-mode-map map)))
+
+;; Completion mode is suitable only for specially formatted data.
+(put 'completion-mode 'mode-class 'special)
+
+(defun completion-mode ()
+  "Major mode for buffers showing lists of possible completions.
+Type \\<completion-mode-map>\\[mouse-choose-completion] to select
+a completion with the mouse."
+  (interactive)
+  (kill-all-local-variables)
+  (use-local-map completion-mode-map)
+  (setq mode-name "Completion")
+  (setq major-mode 'completion-mode)
+  (run-hooks 'completion-mode-hook))
+
+(defun completion-setup-function ()
+  (save-excursion
+    (completion-mode)
+    (goto-char (point-min))
+    (insert (substitute-command-keys
+	     "Click \\[mouse-choose-completion] on a completion to select it.\n\n"))))
+
+(add-hook 'completion-setup-hook 'completion-setup-function)
 
 ;;;; Keypad support.