Mercurial > emacs
annotate lisp/autoinsert.el @ 24419:30e478cd167e
(shell-command-default-error-buffer): Renamed from
shell-command-on-region-default-error-buffer.
(shell-command-on-region): Mention in echo area when there
is some error output. Mention success or failure, too.
Accumulate multiple error outputs
going forward, with formfeed in between. Display the error buffer
when we have put something in it.
(shell-command): Add the ERROR-BUFFER argument feature.
author | Karl Heuer <kwzh@gnu.org> |
---|---|
date | Mon, 01 Mar 1999 03:19:32 +0000 |
parents | 8d2bb5d1416a |
children | 2bbd3f3c6eca |
rev | line source |
---|---|
662
8a533acedb77
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
180
diff
changeset
|
1 ;;; autoinsert.el --- automatic mode-dependent insertion of text into new files |
14169 | 2 |
21287
f61d91aef100
(auto-insert, auto-insert-query): :tag choices.
Dave Love <fx@gnu.org>
parents:
20809
diff
changeset
|
3 ;; Copyright (C) 1985, 86, 87, 94, 95, 98 Free Software Foundation, Inc. |
845 | 4 |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
5 ;; Author: Charlie Martin <crm@cs.duke.edu> |
23869 | 6 ;; Adapted-By: Daniel Pfeiffer <occitan@esperanto.org> |
22250
a77d473867b8
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21287
diff
changeset
|
7 ;; Keywords: convenience |
17976 | 8 ;; Maintainer: FSF |
180 | 9 |
10 ;; This file is part of GNU Emacs. | |
11 | |
12 ;; GNU Emacs is free software; you can redistribute it and/or modify | |
13 ;; it under the terms of the GNU General Public License as published by | |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
14 ;; the Free Software Foundation; either version 2, or (at your option) |
180 | 15 ;; any later version. |
16 | |
17 ;; GNU Emacs is distributed in the hope that it will be useful, | |
18 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
19 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
20 ;; GNU General Public License for more details. | |
21 | |
22 ;; You should have received a copy of the GNU General Public License | |
14169 | 23 ;; along with GNU Emacs; see the file COPYING. If not, write to the |
24 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, | |
25 ;; Boston, MA 02111-1307, USA. | |
180 | 26 |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
27 ;;; Commentary: |
180 | 28 |
12502
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
29 ;; The following defines an association list for text to be |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
30 ;; automatically inserted when a new file is created, and a function |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
31 ;; which automatically inserts these files; the idea is to insert |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
32 ;; default text much as the mode is automatically set using |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
33 ;; auto-mode-alist. |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
34 ;; |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
35 ;; To use: |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
36 ;; (add-hook 'find-file-hooks 'auto-insert) |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
37 ;; setq auto-insert-directory to an appropriate slash-terminated value |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
38 ;; |
20809
c582e15d8cfc
(auto-insert-mode): New function.
Stephen Eglen <stephen@gnu.org>
parents:
18383
diff
changeset
|
39 ;; You can also customize the variable `auto-insert-mode' to load the |
c582e15d8cfc
(auto-insert-mode): New function.
Stephen Eglen <stephen@gnu.org>
parents:
18383
diff
changeset
|
40 ;; package. Alternatively, add the following to your .emacs file: |
c582e15d8cfc
(auto-insert-mode): New function.
Stephen Eglen <stephen@gnu.org>
parents:
18383
diff
changeset
|
41 ;; (auto-insert-mode 1) |
c582e15d8cfc
(auto-insert-mode): New function.
Stephen Eglen <stephen@gnu.org>
parents:
18383
diff
changeset
|
42 ;; |
12502
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
43 ;; Author: Charlie Martin |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
44 ;; Department of Computer Science and |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
45 ;; National Biomedical Simulation Resource |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
46 ;; Box 3709 |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
47 ;; Duke University Medical Center |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
48 ;; Durham, NC 27710 |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
49 ;; (crm@cs.duke.edu,mcnc!duke!crm) |
180 | 50 |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
51 ;;; Code: |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
52 |
20809
c582e15d8cfc
(auto-insert-mode): New function.
Stephen Eglen <stephen@gnu.org>
parents:
18383
diff
changeset
|
53 (defgroup auto-insert nil |
c582e15d8cfc
(auto-insert-mode): New function.
Stephen Eglen <stephen@gnu.org>
parents:
18383
diff
changeset
|
54 "Automatic mode-dependent insertion of text into new files." |
c582e15d8cfc
(auto-insert-mode): New function.
Stephen Eglen <stephen@gnu.org>
parents:
18383
diff
changeset
|
55 :prefix "auto-insert-" |
22250
a77d473867b8
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21287
diff
changeset
|
56 :group 'files |
a77d473867b8
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21287
diff
changeset
|
57 :group 'convenience) |
20809
c582e15d8cfc
(auto-insert-mode): New function.
Stephen Eglen <stephen@gnu.org>
parents:
18383
diff
changeset
|
58 |
c582e15d8cfc
(auto-insert-mode): New function.
Stephen Eglen <stephen@gnu.org>
parents:
18383
diff
changeset
|
59 |
c582e15d8cfc
(auto-insert-mode): New function.
Stephen Eglen <stephen@gnu.org>
parents:
18383
diff
changeset
|
60 (defcustom auto-insert-mode nil |
c582e15d8cfc
(auto-insert-mode): New function.
Stephen Eglen <stephen@gnu.org>
parents:
18383
diff
changeset
|
61 "Toggle auto-insert-mode. |
c582e15d8cfc
(auto-insert-mode): New function.
Stephen Eglen <stephen@gnu.org>
parents:
18383
diff
changeset
|
62 You must modify via \\[customize] for this variable to have an effect." |
c582e15d8cfc
(auto-insert-mode): New function.
Stephen Eglen <stephen@gnu.org>
parents:
18383
diff
changeset
|
63 :set (lambda (symbol value) |
c582e15d8cfc
(auto-insert-mode): New function.
Stephen Eglen <stephen@gnu.org>
parents:
18383
diff
changeset
|
64 (auto-insert-mode (or value 0))) |
c582e15d8cfc
(auto-insert-mode): New function.
Stephen Eglen <stephen@gnu.org>
parents:
18383
diff
changeset
|
65 :initialize 'custom-initialize-default |
c582e15d8cfc
(auto-insert-mode): New function.
Stephen Eglen <stephen@gnu.org>
parents:
18383
diff
changeset
|
66 :type 'boolean |
c582e15d8cfc
(auto-insert-mode): New function.
Stephen Eglen <stephen@gnu.org>
parents:
18383
diff
changeset
|
67 :group 'auto-insert |
c582e15d8cfc
(auto-insert-mode): New function.
Stephen Eglen <stephen@gnu.org>
parents:
18383
diff
changeset
|
68 :require 'autoinsert) |
c582e15d8cfc
(auto-insert-mode): New function.
Stephen Eglen <stephen@gnu.org>
parents:
18383
diff
changeset
|
69 |
c582e15d8cfc
(auto-insert-mode): New function.
Stephen Eglen <stephen@gnu.org>
parents:
18383
diff
changeset
|
70 (defcustom auto-insert 'not-modified |
12502
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
71 "*Controls automatic insertion into newly found empty files: |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
72 nil do nothing |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
73 t insert if possible |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
74 other insert if possible, but mark as unmodified. |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
75 Insertion is possible when something appropriate is found in |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
76 `auto-insert-alist'. When the insertion is marked as unmodified, you can |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
77 save it with \\[write-file] RET. |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
78 This variable is used when `auto-insert' is called as a function, e.g. |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
79 when you do (add-hook 'find-file-hooks 'auto-insert). |
20809
c582e15d8cfc
(auto-insert-mode): New function.
Stephen Eglen <stephen@gnu.org>
parents:
18383
diff
changeset
|
80 With \\[auto-insert], this is always treated as if it were `t'." |
21287
f61d91aef100
(auto-insert, auto-insert-query): :tag choices.
Dave Love <fx@gnu.org>
parents:
20809
diff
changeset
|
81 :type '(choice (const :tag "Insert if possible" t) |
f61d91aef100
(auto-insert, auto-insert-query): :tag choices.
Dave Love <fx@gnu.org>
parents:
20809
diff
changeset
|
82 (const :tag "Do nothing" nil) |
22567
b20af24c6cdd
(auto-insert, auto-insert-query): Use `other'
Andreas Schwab <schwab@suse.de>
parents:
22250
diff
changeset
|
83 (other :tag "insert if possible, mark as unmodified." |
21287
f61d91aef100
(auto-insert, auto-insert-query): :tag choices.
Dave Love <fx@gnu.org>
parents:
20809
diff
changeset
|
84 not-modified)) |
20809
c582e15d8cfc
(auto-insert-mode): New function.
Stephen Eglen <stephen@gnu.org>
parents:
18383
diff
changeset
|
85 :group 'auto-insert) |
c582e15d8cfc
(auto-insert-mode): New function.
Stephen Eglen <stephen@gnu.org>
parents:
18383
diff
changeset
|
86 |
c582e15d8cfc
(auto-insert-mode): New function.
Stephen Eglen <stephen@gnu.org>
parents:
18383
diff
changeset
|
87 (defcustom auto-insert-query 'function |
c582e15d8cfc
(auto-insert-mode): New function.
Stephen Eglen <stephen@gnu.org>
parents:
18383
diff
changeset
|
88 "*If non-`nil', ask user before auto-inserting. |
c582e15d8cfc
(auto-insert-mode): New function.
Stephen Eglen <stephen@gnu.org>
parents:
18383
diff
changeset
|
89 When this is `function', only ask when called non-interactively." |
22567
b20af24c6cdd
(auto-insert, auto-insert-query): Use `other'
Andreas Schwab <schwab@suse.de>
parents:
22250
diff
changeset
|
90 :type '(choice (const :tag "Don't ask" nil) |
b20af24c6cdd
(auto-insert, auto-insert-query): Use `other'
Andreas Schwab <schwab@suse.de>
parents:
22250
diff
changeset
|
91 (const :tag "Ask if called non-interactively" function) |
b20af24c6cdd
(auto-insert, auto-insert-query): Use `other'
Andreas Schwab <schwab@suse.de>
parents:
22250
diff
changeset
|
92 (other :tag "Ask" t)) |
20809
c582e15d8cfc
(auto-insert-mode): New function.
Stephen Eglen <stephen@gnu.org>
parents:
18383
diff
changeset
|
93 :group 'auto-insert) |
c582e15d8cfc
(auto-insert-mode): New function.
Stephen Eglen <stephen@gnu.org>
parents:
18383
diff
changeset
|
94 |
c582e15d8cfc
(auto-insert-mode): New function.
Stephen Eglen <stephen@gnu.org>
parents:
18383
diff
changeset
|
95 (defcustom auto-insert-prompt "Perform %s auto-insertion? " |
c582e15d8cfc
(auto-insert-mode): New function.
Stephen Eglen <stephen@gnu.org>
parents:
18383
diff
changeset
|
96 "*Prompt to use when querying whether to auto-insert. |
c582e15d8cfc
(auto-insert-mode): New function.
Stephen Eglen <stephen@gnu.org>
parents:
18383
diff
changeset
|
97 If this contains a %s, that will be replaced by the matching rule." |
c582e15d8cfc
(auto-insert-mode): New function.
Stephen Eglen <stephen@gnu.org>
parents:
18383
diff
changeset
|
98 :type 'string |
c582e15d8cfc
(auto-insert-mode): New function.
Stephen Eglen <stephen@gnu.org>
parents:
18383
diff
changeset
|
99 :group 'auto-insert) |
12502
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
100 |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
101 |
20809
c582e15d8cfc
(auto-insert-mode): New function.
Stephen Eglen <stephen@gnu.org>
parents:
18383
diff
changeset
|
102 (defcustom auto-insert-alist |
12502
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
103 '((("\\.\\([Hh]\\|hh\\|hpp\\)\\'" . "C / C++ header") |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
104 (upcase (concat (file-name-nondirectory |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
105 (substring buffer-file-name 0 (match-beginning 0))) |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
106 "_" |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
107 (substring buffer-file-name (1+ (match-beginning 0))))) |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
108 "#ifndef " str \n |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
109 "#define " str "\n\n" |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
110 _ "\n\n#endif") |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
111 |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
112 (("\\.\\([Cc]\\|cc\\|cpp\\)\\'" . "C / C++ program") |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
113 nil |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
114 "#include \"" |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
115 ;; nop without latest cc-mode |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
116 (and (fboundp 'c-companion-file) |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
117 ;(file-readable-p (c-companion-file 'name)) |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
118 (file-name-nondirectory (c-companion-file 'name))) & ?\" |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
119 | -10) |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
120 |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
121 ("[Mm]akefile\\'" . "makefile.inc") |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
122 |
14153
3e949d37e46f
(auto-insert-alist): For html-mode, use `sgml-tag'.
Richard M. Stallman <rms@gnu.org>
parents:
12502
diff
changeset
|
123 (html-mode . (lambda () (sgml-tag "html"))) |
12502
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
124 |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
125 (plain-tex-mode . "tex-insert.tex") |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
126 (bibtex-mode . "tex-insert.tex") |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
127 (latex-mode |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
128 ;; should try to offer completing read for these |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
129 "options, RET: " |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
130 "\\documentstyle[" str & ?\] | -1 |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
131 ?{ (read-string "class: ") "}\n" |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
132 ("package, %s: " |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
133 "\\usepackage[" (read-string "options, RET: ") & ?\] | -1 ?{ str "}\n") |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
134 _ "\n\\begin{document}\n" _ |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
135 "\n\\end{document}") |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
136 |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
137 (("/bin/.*[^/]\\'" . "Shell-Script mode magic number") |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
138 lambda () |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
139 (if (eq major-mode default-major-mode) |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
140 (sh-mode))) |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
141 |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
142 (ada-mode . ada-header) |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
143 |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
144 (("\\.el\\'" . "Emacs Lisp header") |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
145 "Short description: " |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
146 ";;; " (file-name-nondirectory (buffer-file-name)) " --- " str " |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
147 |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
148 ;; Copyright (C) " (substring (current-time-string) -4) " by " |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
149 (getenv "ORGANIZATION") | "Free Software Foundation, Inc." " |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
150 |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
151 ;; Author: " (user-full-name) |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
152 '(if (search-backward "&" (save-excursion (beginning-of-line 1) (point)) t) |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
153 (replace-match (capitalize (user-login-name)) t t)) |
23782
ffae9b995e65
(auto-insert-alist): Use user-mail-address.
Richard M. Stallman <rms@gnu.org>
parents:
23708
diff
changeset
|
154 '(end-of-line 1) " <" (progn user-mail-address) "> |
12502
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
155 ;; Keywords: " |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
156 '(require 'finder) |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
157 ;;'(setq v1 (apply 'vector (mapcar 'car finder-known-keywords))) |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
158 '(setq v1 (mapcar (lambda (x) (list (symbol-name (car x)))) |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
159 finder-known-keywords) |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
160 v2 (mapconcat (lambda (x) (format "%10.0s: %s" (car x) (cdr x))) |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
161 finder-known-keywords |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
162 "\n")) |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
163 ((let ((minibuffer-help-form v2)) |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
164 (completing-read "Keyword, C-h: " v1 nil t)) |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
165 str ", ") & -2 " |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
166 |
23708
b91d56a036ef
(auto-insert-alist): Don't assume *.el is part of GNU Emacs.
Karl Heuer <kwzh@gnu.org>
parents:
22567
diff
changeset
|
167 ;; This file is free software; you can redistribute it and/or modify |
12502
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
168 ;; it under the terms of the GNU General Public License as published by |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
169 ;; the Free Software Foundation; either version 2, or (at your option) |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
170 ;; any later version. |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
171 |
23708
b91d56a036ef
(auto-insert-alist): Don't assume *.el is part of GNU Emacs.
Karl Heuer <kwzh@gnu.org>
parents:
22567
diff
changeset
|
172 ;; This file is distributed in the hope that it will be useful, |
12502
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
173 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
174 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
175 ;; GNU General Public License for more details. |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
176 |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
177 ;; You should have received a copy of the GNU General Public License |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
178 ;; along with GNU Emacs; see the file COPYING. If not, write to |
14181
aacf08497202
(auto-insert-alist): Use FSF's new address.
Erik Naggum <erik@naggum.no>
parents:
14169
diff
changeset
|
179 ;; the Free Software Foundation, Inc., 59 Temple Place - Suite 330, |
aacf08497202
(auto-insert-alist): Use FSF's new address.
Erik Naggum <erik@naggum.no>
parents:
14169
diff
changeset
|
180 ;; Boston, MA 02111-1307, USA. |
12502
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
181 |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
182 ;;; Commentary: |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
183 |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
184 ;; " _ " |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
185 |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
186 ;;; Code: |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
187 |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
188 |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
189 |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
190 ;;; " (file-name-nondirectory (buffer-file-name)) " ends here")) |
180 | 191 "A list specifying text to insert by default into a new file. |
12502
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
192 Elements look like (CONDITION . ACTION) or ((CONDITION . DESCRIPTION) . ACTION). |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
193 CONDITION maybe a regexp that must match the new file's name, or it may be |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
194 a symbol that must match the major mode for this element to apply. |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
195 Only the first matching element is effective. |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
196 Optional DESCRIPTION is a string for filling `auto-insert-prompt'. |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
197 ACTION may be a skeleton to insert (see `skeleton-insert'), an absolute |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
198 file-name or one relative to `auto-insert-directory' or a function to call. |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
199 ACTION may also be a vector containing several successive single actions as |
20809
c582e15d8cfc
(auto-insert-mode): New function.
Stephen Eglen <stephen@gnu.org>
parents:
18383
diff
changeset
|
200 described above, e.g. [\"header.insert\" date-and-author-update]." |
c582e15d8cfc
(auto-insert-mode): New function.
Stephen Eglen <stephen@gnu.org>
parents:
18383
diff
changeset
|
201 :type 'sexp |
c582e15d8cfc
(auto-insert-mode): New function.
Stephen Eglen <stephen@gnu.org>
parents:
18383
diff
changeset
|
202 :group 'auto-insert) |
180 | 203 |
12502
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
204 |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
205 ;; Establish a default value for auto-insert-directory |
20809
c582e15d8cfc
(auto-insert-mode): New function.
Stephen Eglen <stephen@gnu.org>
parents:
18383
diff
changeset
|
206 (defcustom auto-insert-directory "~/insert/" |
c582e15d8cfc
(auto-insert-mode): New function.
Stephen Eglen <stephen@gnu.org>
parents:
18383
diff
changeset
|
207 "*Directory from which auto-inserted files are taken." |
c582e15d8cfc
(auto-insert-mode): New function.
Stephen Eglen <stephen@gnu.org>
parents:
18383
diff
changeset
|
208 :type 'directory |
c582e15d8cfc
(auto-insert-mode): New function.
Stephen Eglen <stephen@gnu.org>
parents:
18383
diff
changeset
|
209 :group 'auto-insert) |
180 | 210 |
12502
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
211 |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
212 ;;;###autoload |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
213 (defun auto-insert () |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
214 "Insert default contents into a new file if `auto-insert' is non-nil. |
180 | 215 Matches the visited file name against the elements of `auto-insert-alist'." |
12502
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
216 (interactive) |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
217 (and (not buffer-read-only) |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
218 (or (eq this-command 'auto-insert) |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
219 (and auto-insert |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
220 (bobp) (eobp))) |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
221 (let ((alist auto-insert-alist) |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
222 case-fold-search cond desc action) |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
223 (goto-char 1) |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
224 ;; find first matching alist entry |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
225 (while alist |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
226 (if (atom (setq cond (car (car alist)))) |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
227 (setq desc cond) |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
228 (setq desc (cdr cond) |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
229 cond (car cond))) |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
230 (if (if (symbolp cond) |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
231 (eq cond major-mode) |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
232 (string-match cond buffer-file-name)) |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
233 (setq action (cdr (car alist)) |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
234 alist nil) |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
235 (setq alist (cdr alist)))) |
180 | 236 |
12502
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
237 ;; Now, if we found something, do it |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
238 (and action |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
239 (if (stringp action) |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
240 (file-readable-p (concat auto-insert-directory action)) |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
241 t) |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
242 (if auto-insert-query |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
243 (or (if (eq auto-insert-query 'function) |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
244 (eq this-command 'auto-insert)) |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
245 (y-or-n-p (format auto-insert-prompt desc))) |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
246 t) |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
247 (mapcar |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
248 (lambda (action) |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
249 (if (stringp action) |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
250 (if (file-readable-p |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
251 (setq action (concat auto-insert-directory action))) |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
252 (insert-file-contents action)) |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
253 (save-window-excursion |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
254 ;; make buffer visible before skeleton or function |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
255 ;; which might ask the user for something |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
256 (switch-to-buffer (current-buffer)) |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
257 (if (and (consp action) |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
258 (not (eq (car action) 'lambda))) |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
259 (skeleton-insert action) |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
260 (funcall action))))) |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
261 (if (vectorp action) |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
262 action |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
263 (vector action)))) |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
264 (and (buffer-modified-p) |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
265 (not (eq this-command 'auto-insert)) |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
266 (set-buffer-modified-p (eq auto-insert t)))))) |
180 | 267 |
12502
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
268 |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
269 ;;;###autoload |
21287
f61d91aef100
(auto-insert, auto-insert-query): :tag choices.
Dave Love <fx@gnu.org>
parents:
20809
diff
changeset
|
270 (defun define-auto-insert (condition action &optional after) |
12502
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
271 "Associate CONDITION with (additional) ACTION in `auto-insert-alist'. |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
272 Optional AFTER means to insert action after all existing actions for CONDITION, |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
273 or if CONDITION had no actions, after all other CONDITIONs." |
21287
f61d91aef100
(auto-insert, auto-insert-query): :tag choices.
Dave Love <fx@gnu.org>
parents:
20809
diff
changeset
|
274 (let ((elt (assoc condition auto-insert-alist))) |
12502
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
275 (if elt |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
276 (setcdr elt |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
277 (if (vectorp (cdr elt)) |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
278 (vconcat (if after (cdr elt)) |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
279 (if (vectorp action) action (vector action)) |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
280 (if after () (cdr elt))) |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
281 (if after |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
282 (vector (cdr elt) action) |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
283 (vector action (cdr elt))))) |
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
284 (if after |
21287
f61d91aef100
(auto-insert, auto-insert-query): :tag choices.
Dave Love <fx@gnu.org>
parents:
20809
diff
changeset
|
285 (nconc auto-insert-alist (list (cons condition action))) |
f61d91aef100
(auto-insert, auto-insert-query): :tag choices.
Dave Love <fx@gnu.org>
parents:
20809
diff
changeset
|
286 (setq auto-insert-alist (cons (cons condition action) |
12502
8bb3424bf745
extended to use skeletons or call functions
Karl Heuer <kwzh@gnu.org>
parents:
8764
diff
changeset
|
287 auto-insert-alist)))))) |
662
8a533acedb77
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
180
diff
changeset
|
288 |
20809
c582e15d8cfc
(auto-insert-mode): New function.
Stephen Eglen <stephen@gnu.org>
parents:
18383
diff
changeset
|
289 ;;;###autoload |
c582e15d8cfc
(auto-insert-mode): New function.
Stephen Eglen <stephen@gnu.org>
parents:
18383
diff
changeset
|
290 (defun auto-insert-mode (&optional arg) |
c582e15d8cfc
(auto-insert-mode): New function.
Stephen Eglen <stephen@gnu.org>
parents:
18383
diff
changeset
|
291 "Toggle auto-insert mode. |
c582e15d8cfc
(auto-insert-mode): New function.
Stephen Eglen <stephen@gnu.org>
parents:
18383
diff
changeset
|
292 With prefix ARG, turn auto-insert mode on if and only if ARG is positive. |
c582e15d8cfc
(auto-insert-mode): New function.
Stephen Eglen <stephen@gnu.org>
parents:
18383
diff
changeset
|
293 Returns the new status of auto-insert mode (non-nil means on). |
c582e15d8cfc
(auto-insert-mode): New function.
Stephen Eglen <stephen@gnu.org>
parents:
18383
diff
changeset
|
294 |
c582e15d8cfc
(auto-insert-mode): New function.
Stephen Eglen <stephen@gnu.org>
parents:
18383
diff
changeset
|
295 When auto-insert mode is enabled, when new files are created you can |
c582e15d8cfc
(auto-insert-mode): New function.
Stephen Eglen <stephen@gnu.org>
parents:
18383
diff
changeset
|
296 insert a template for the file depending on the mode of the buffer." |
c582e15d8cfc
(auto-insert-mode): New function.
Stephen Eglen <stephen@gnu.org>
parents:
18383
diff
changeset
|
297 (interactive "P") |
c582e15d8cfc
(auto-insert-mode): New function.
Stephen Eglen <stephen@gnu.org>
parents:
18383
diff
changeset
|
298 (let ((on-p (if arg |
c582e15d8cfc
(auto-insert-mode): New function.
Stephen Eglen <stephen@gnu.org>
parents:
18383
diff
changeset
|
299 (> (prefix-numeric-value arg) 0) |
c582e15d8cfc
(auto-insert-mode): New function.
Stephen Eglen <stephen@gnu.org>
parents:
18383
diff
changeset
|
300 (not auto-insert-mode)))) |
c582e15d8cfc
(auto-insert-mode): New function.
Stephen Eglen <stephen@gnu.org>
parents:
18383
diff
changeset
|
301 (if on-p |
c582e15d8cfc
(auto-insert-mode): New function.
Stephen Eglen <stephen@gnu.org>
parents:
18383
diff
changeset
|
302 (add-hook 'find-file-hooks 'auto-insert) |
c582e15d8cfc
(auto-insert-mode): New function.
Stephen Eglen <stephen@gnu.org>
parents:
18383
diff
changeset
|
303 (remove-hook 'find-file-hooks 'auto-insert)) |
c582e15d8cfc
(auto-insert-mode): New function.
Stephen Eglen <stephen@gnu.org>
parents:
18383
diff
changeset
|
304 (if (interactive-p) |
c582e15d8cfc
(auto-insert-mode): New function.
Stephen Eglen <stephen@gnu.org>
parents:
18383
diff
changeset
|
305 (message "Auto-insert now %s." (if on-p "on" "off"))) |
c582e15d8cfc
(auto-insert-mode): New function.
Stephen Eglen <stephen@gnu.org>
parents:
18383
diff
changeset
|
306 (setq auto-insert-mode on-p) |
c582e15d8cfc
(auto-insert-mode): New function.
Stephen Eglen <stephen@gnu.org>
parents:
18383
diff
changeset
|
307 )) |
c582e15d8cfc
(auto-insert-mode): New function.
Stephen Eglen <stephen@gnu.org>
parents:
18383
diff
changeset
|
308 |
c582e15d8cfc
(auto-insert-mode): New function.
Stephen Eglen <stephen@gnu.org>
parents:
18383
diff
changeset
|
309 (if auto-insert-mode |
c582e15d8cfc
(auto-insert-mode): New function.
Stephen Eglen <stephen@gnu.org>
parents:
18383
diff
changeset
|
310 (auto-insert-mode 1)) |
c582e15d8cfc
(auto-insert-mode): New function.
Stephen Eglen <stephen@gnu.org>
parents:
18383
diff
changeset
|
311 |
18383 | 312 (provide 'autoinsert) |
313 | |
662
8a533acedb77
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
180
diff
changeset
|
314 ;;; autoinsert.el ends here |