annotate lisp/minibuf-eldef.el @ 107777:13c077500eb3

2010-04-04 John Wiegley <jwiegley@gmail.com> * ido.el (ido-use-virtual-buffers): New variable to indicate whether "virtual buffer" support is enabled for IDO. Essentially it works as follows: Say you are visiting a file and the buffer gets cleaned up by mignight.el. Later, you want to switch to that buffer, but find it's no longer open. With virtual buffers enabled, the buffer name stays in the buffer list (using the ido-virtual face, and always at the end), and if you select it, it opens the file back up again. This allows you to think less about whether recently opened files are still open or not. Most of the time you can quit Emacs, restart, and then switch to a file buffer that was previously open as if it still were. NOTE: This feature has been present in iswitchb for several years now, and I'm porting the same logic to IDO. (ido-virtual): Face used to indicate virtual buffers in the list. (ido-buffer-internal): If a buffer is chosen, and no such buffer exists, but a virtual buffer of that name does (which would be why it was in the list), recreate the buffer by reopening the file. (ido-make-buffer-list): If virtual buffers are being used, call `ido-add-virtual-buffers-to-list' before the make list hook. (ido-virtual-buffers): New variable which contains a copy of the current contents of the `recentf-list', albeit pared down for the sake of speed, and with proper faces applied. (ido-add-virtual-buffers-to-list): Using the `recentf-list', create a list of "virtual buffers" to present to the user in addition to the currently open set. Note that this logic could get rather slow if that list is too large. With the default `recentf-max-saved-items' of 200, there is little speed penalty.
author jwiegley@gmail.com
date Sun, 04 Apr 2010 02:55:19 -0400
parents 1d1d5d9bd884
children 376148b31b5e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
34392
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
1 ;;; minibuf-eldef.el --- Only show defaults in prompts when applicable
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
2 ;;
64762
41bb365f41c4 Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents: 64091
diff changeset
3 ;; Copyright (C) 2000, 2001, 2002, 2003, 2004,
106815
1d1d5d9bd884 Add 2010 to copyright years.
Glenn Morris <rgm@gnu.org>
parents: 100908
diff changeset
4 ;; 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
34392
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
5 ;;
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
6 ;; Author: Miles Bader <miles@gnu.org>
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
7 ;; Keywords: convenience
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
8
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
9 ;; This file is part of GNU Emacs.
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
10
94678
ee5932bf781d Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 79721
diff changeset
11 ;; GNU Emacs is free software: you can redistribute it and/or modify
34392
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
12 ;; it under the terms of the GNU General Public License as published by
94678
ee5932bf781d Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 79721
diff changeset
13 ;; the Free Software Foundation, either version 3 of the License, or
ee5932bf781d Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 79721
diff changeset
14 ;; (at your option) any later version.
34392
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
15
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
16 ;; GNU Emacs is distributed in the hope that it will be useful,
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
17 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
18 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
19 ;; GNU General Public License for more details.
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
20
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
21 ;; You should have received a copy of the GNU General Public License
94678
ee5932bf781d Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 79721
diff changeset
22 ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
34392
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
23
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
24 ;;; Commentary:
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
25 ;;
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
26 ;; Defines the mode `minibuffer-electric-default-mode'.
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
27 ;;
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
28 ;; When active, minibuffer prompts that show a default value only show
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
29 ;; the default when it's applicable -- that is, when hitting RET would
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
30 ;; yield the default value. If the user modifies the input such that
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
31 ;; hitting RET would enter a non-default value, the prompt is modified
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
32 ;; to remove the default indication (which is restored if the input is
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
33 ;; ever restore to the match the initial input).
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
34
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
35 ;;; Code:
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
36
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
37 (defvar minibuffer-default-in-prompt-regexps
55890
e046a551c6da Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-362
Miles Bader <miles@gnu.org>
parents: 52401
diff changeset
38 '(("\\( (default\\>.*)\\):? \\'" . 1) ("\\( \\[.*\\]\\):? *\\'" . 1))
34392
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
39 "*A list of regexps matching the parts of minibuffer prompts showing defaults.
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
40 When `minibuffer-electric-default-mode' is active, these regexps are
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
41 used to identify the portions of prompts to elide.
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
42
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
43 Each entry is either a string, which should be a regexp matching the
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
44 default portion of the prompt, or a cons cell, who's car is a regexp
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
45 matching the default part of the prompt, and who's cdr indicates the
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
46 regexp subexpression that matched.")
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
47
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
48
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
49 ;;; Internal variables
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
50
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
51 ;; A list of minibuffers to which we've added a post-command-hook.
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
52 (defvar minibuf-eldef-frobbed-minibufs nil)
49597
e88404e8f2cf Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 41953
diff changeset
53
34392
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
54 ;;; The following are all local variables in the minibuffer
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
55
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
56 ;; Input pre-inserted into the minibuffer before the user can edit it.
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
57 (defvar minibuf-eldef-initial-input)
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
58 (make-variable-buffer-local 'minibuf-eldef-initial-input)
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
59 ;; and the length of the buffer with it inserted.
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
60 (defvar minibuf-eldef-initial-buffer-length)
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
61 (make-variable-buffer-local 'minibuf-eldef-initial-buffer-length)
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
62
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
63 ;; True if the current minibuffer prompt contains the default spec.
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
64 (defvar minibuf-eldef-showing-default-in-prompt)
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
65 (make-variable-buffer-local 'minibuf-eldef-showing-default-in-prompt)
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
66
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
67 ;; An overlay covering the default portion of the prompt
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
68 (defvar minibuf-eldef-overlay)
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
69 (make-variable-buffer-local 'minibuf-eldef-overlay)
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
70
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
71
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
72 ;;; Hook functions
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
73
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
74 ;; This function goes on minibuffer-setup-hook
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
75 (defun minibuf-eldef-setup-minibuffer ()
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
76 "Set up a minibuffer for `minibuffer-electric-default-mode'.
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
77 The prompt and initial input should already have been inserted."
39596
fc100d4d02bc (minibuf-eldef-setup-minibuffer)
Miles Bader <miles@gnu.org>
parents: 34392
diff changeset
78 (let ((regexps minibuffer-default-in-prompt-regexps)
34392
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
79 (match nil)
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
80 (inhibit-point-motion-hooks t))
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
81 (save-excursion
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
82 (save-restriction
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
83 ;; Narrow to only the prompt
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
84 (goto-char (point-min))
39596
fc100d4d02bc (minibuf-eldef-setup-minibuffer)
Miles Bader <miles@gnu.org>
parents: 34392
diff changeset
85 (narrow-to-region (point) (minibuffer-prompt-end))
34392
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
86 ;; See the prompt contains a default input indicator
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
87 (while regexps
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
88 (setq match (pop regexps))
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
89 (if (re-search-forward (if (stringp match) match (car match)) nil t)
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
90 (setq regexps nil)
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
91 (setq match nil)))))
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
92 (if (not match)
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
93 ;; Nope, so just make sure our post-command-hook isn't left around.
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
94 (remove-hook 'post-command-hook #'minibuf-eldef-update-minibuffer t)
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
95 ;; Yup; set things up so we can frob the prompt as the state of
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
96 ;; the input string changes.
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
97 (setq match (if (consp match) (cdr match) 0))
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
98 (setq minibuf-eldef-overlay
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
99 (make-overlay (match-beginning match) (match-end match)))
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
100 (setq minibuf-eldef-showing-default-in-prompt t)
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
101 (setq minibuf-eldef-initial-input
39596
fc100d4d02bc (minibuf-eldef-setup-minibuffer)
Miles Bader <miles@gnu.org>
parents: 34392
diff changeset
102 (minibuffer-contents-no-properties))
34392
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
103 (setq minibuf-eldef-initial-buffer-length (point-max))
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
104 (add-to-list 'minibuf-eldef-frobbed-minibufs (current-buffer))
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
105 (add-hook 'post-command-hook #'minibuf-eldef-update-minibuffer nil t))))
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
106
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
107 ;; post-command-hook to swap prompts when necessary
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
108 (defun minibuf-eldef-update-minibuffer ()
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
109 "Update a minibuffer's prompt to include a default only when applicable.
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
110 This is intended to be used as a minibuffer post-command-hook for
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
111 `minibuffer-electric-default-mode'; the minibuffer should have already
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
112 been set up by `minibuf-eldef-setup-minibuffer'."
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
113 (unless (eq minibuf-eldef-showing-default-in-prompt
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
114 (and (= (point-max) minibuf-eldef-initial-buffer-length)
39596
fc100d4d02bc (minibuf-eldef-setup-minibuffer)
Miles Bader <miles@gnu.org>
parents: 34392
diff changeset
115 (string-equal (minibuffer-contents-no-properties)
34392
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
116 minibuf-eldef-initial-input)))
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
117 ;; swap state
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
118 (setq minibuf-eldef-showing-default-in-prompt
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
119 (not minibuf-eldef-showing-default-in-prompt))
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
120 (cond (minibuf-eldef-showing-default-in-prompt
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
121 (overlay-put minibuf-eldef-overlay 'invisible nil)
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
122 (overlay-put minibuf-eldef-overlay 'intangible nil))
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
123 (t
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
124 (overlay-put minibuf-eldef-overlay 'invisible t)
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
125 (overlay-put minibuf-eldef-overlay 'intangible t)))))
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
126
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
127
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
128 ;;; Note this definition must be at the end of the file, because
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
129 ;;; `define-minor-mode' actually calls the mode-function if the
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
130 ;;; associated variable is non-nil, which requires that all needed
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
131 ;;; functions be already defined. [This is arguably a bug in d-m-m]
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
132 ;;;###autoload
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
133 (define-minor-mode minibuffer-electric-default-mode
41953
395d420d4f73 (minibuffer-electric-default-mode): Doc fix.
Pavel Janík <Pavel@Janik.cz>
parents: 39596
diff changeset
134 "Toggle Minibuffer Electric Default mode.
34392
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
135 When active, minibuffer prompts that show a default value only show the
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
136 default when it's applicable -- that is, when hitting RET would yield
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
137 the default value. If the user modifies the input such that hitting RET
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
138 would enter a non-default value, the prompt is modified to remove the
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
139 default indication.
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
140
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
141 With prefix argument ARG, turn on if positive, otherwise off.
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
142 Returns non-nil if the new state is enabled."
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
143 :global t
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
144 :group 'minibuffer
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
145 (if minibuffer-electric-default-mode
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
146 ;; Enable the mode
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
147 (add-hook 'minibuffer-setup-hook 'minibuf-eldef-setup-minibuffer)
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
148 ;; Disable the mode
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
149 (remove-hook 'minibuffer-setup-hook 'minibuf-eldef-setup-minibuffer)
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
150 ;; Remove our entry from any post-command-hook variable's it's still in
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
151 (dolist (minibuf minibuf-eldef-frobbed-minibufs)
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
152 (with-current-buffer minibuf
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
153 (remove-hook 'post-command-hook #'minibuf-eldef-update-minibuffer t)))
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
154 (setq minibuf-eldef-frobbed-minibufs nil)))
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
155
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
156
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
157 (provide 'minibuf-eldef)
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
158
55890
e046a551c6da Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-362
Miles Bader <miles@gnu.org>
parents: 52401
diff changeset
159 ;; arch-tag: 7e421fae-c275-4729-b0da-7836af377d3d
34392
03fdc0082cc3 Initial checkin.
Miles Bader <miles@gnu.org>
parents:
diff changeset
160 ;;; minibuf-eldef.el ends here