Mercurial > hg > xemacs-beta
comparison lisp/ilisp/ilisp-def.el @ 0:376386a54a3c r19-14
Import from CVS: tag r19-14
author | cvs |
---|---|
date | Mon, 13 Aug 2007 08:45:50 +0200 |
parents | |
children | b82b59fe008d |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:376386a54a3c |
---|---|
1 ;;; -*- Mode: Emacs-Lisp -*- | |
2 | |
3 ;;; ilisp-def.el -- | |
4 | |
5 ;;; This file is part of ILISP. | |
6 ;;; Version: 5.7 | |
7 ;;; | |
8 ;;; Copyright (C) 1990, 1991, 1992, 1993 Chris McConnell | |
9 ;;; 1993, 1994 Ivan Vasquez | |
10 ;;; 1994, 1995 Marco Antoniotti and Rick Busdiecker | |
11 ;;; | |
12 ;;; Other authors' names for which this Copyright notice also holds | |
13 ;;; may appear later in this file. | |
14 ;;; | |
15 ;;; Send mail to 'ilisp-request@lehman.com' to be included in the | |
16 ;;; ILISP mailing list. 'ilisp@lehman.com' is the general ILISP | |
17 ;;; mailing list were bugs and improvements are discussed. | |
18 ;;; | |
19 ;;; ILISP is freely redistributable under the terms found in the file | |
20 ;;; COPYING. | |
21 | |
22 | |
23 | |
24 ;;; | |
25 ;;; ILISP defvar's | |
26 ;;; | |
27 | |
28 ;;;%Variables | |
29 ;;;%%Deflocal | |
30 (defvar ilisp-locals '(comint-prompt-regexp | |
31 input-ring-size | |
32 comint-get-old-input | |
33 comint-input-sentinel | |
34 comint-input-filter | |
35 comint-input-sender | |
36 comint-eol-on-send | |
37 comint-send-newline | |
38 comint-always-scroll | |
39 comint-fix-error | |
40 comint-continue | |
41 comint-interrupt-regexp | |
42 comint-error-regexp | |
43 comint-output-filter | |
44 comint-interrupt-start | |
45 comint-handler | |
46 comint-update-status | |
47 comint-prompt-status | |
48 comint-abort-hook) | |
49 "List of ilisp local variables.") | |
50 (defun lisp-deflocal (local) | |
51 (if (not (memq local ilisp-locals)) | |
52 (setq ilisp-locals (cons local ilisp-locals)))) | |
53 | |
54 | |
55 ;;; | |
56 (defmacro deflocal (variable default &optional documentation) | |
57 "Define an ilisp local variable." | |
58 (` (progn (lisp-deflocal '(, variable)) | |
59 (defvar (, variable) (, default) (, documentation))))) | |
60 | |
61 ;;;%%Simple customization | |
62 (defvar ilisp-prefix "\C-z" "Prefix sequence for ilisp commands.") | |
63 | |
64 (deflocal ilisp-program nil | |
65 "*Program and arguments for invoking an inferior LISP. The program | |
66 can be an rsh to run on a remote machine. If there is not a common | |
67 file system, the interface files will be sent down the pipe instead. | |
68 The value of this variable is set from DIALECT-program, or inherited | |
69 from a less specific dialect if DIALECT-program is nil.") | |
70 | |
71 (defvar ilisp-motd | |
72 "ILISP V%s Use M-x ilisp-bug for problems and suggestions." | |
73 "*Message of the day format string for ILISP given VERSION. To | |
74 prevent any message from being printed, set this to nil.") | |
75 | |
76 (defvar lisp-wait-p nil | |
77 "*T if LISP eval/compile commands should wait for the result. A | |
78 minus prefix to the command will change the sense of this switch for | |
79 just the next command.") | |
80 | |
81 (defvar lisp-no-popper 'message | |
82 "*T if you want all output in the inferior LISP rather than in a | |
83 pop-up window. 'message if you want output of one line to go to the | |
84 message window (or to the inferior LISP if more). You should probably | |
85 also set comint-always-scroll to T as well so that output is always visible.") | |
86 | |
87 (defvar lisp-show-status t | |
88 "*Set to nil to stop showing process status in lisp-mode buffers.") | |
89 | |
90 (defvar ilisp-prefix-match nil | |
91 "*Set to T to match only as a prefix when completing through the | |
92 inferior LISP. This will speed up completion, but you no longer get | |
93 partial completion.") | |
94 | |
95 (deflocal ilisp-filter-regexp nil | |
96 "*What not to save on an inferior LISP's input history. | |
97 Input matching this regexp is not saved on the input history in ilisp | |
98 mode.") | |
99 | |
100 (deflocal ilisp-filter-length 3 | |
101 "*Do not save strings less than this in the command history.") | |
102 | |
103 (deflocal ilisp-other-prompt nil | |
104 "*Regexp to recognise prompts in the inferior LISP that are prompts | |
105 of non-(read/eval/print) top-levels so that bol-ilisp skips them.") | |
106 | |
107 (deflocal ilisp-raw-echo nil | |
108 "*Set this to T to cause echoing in raw keyboard mode.") | |
109 | |
110 (deflocal ilisp-load-no-compile-query nil | |
111 "*Set this to T to stop load querying about compile.") | |
112 | |
113 ;;;%%%Hooks | |
114 (defvar ilisp-site-hook nil | |
115 "Hook for site customization of ilisp mode when it is loaded.") | |
116 | |
117 (defvar ilisp-load-hook '() | |
118 "Hook for customizing ilisp mode when it is loaded.") | |
119 | |
120 (defvar ilisp-mode-hook '() | |
121 "Hook for customizing ilisp mode.") | |
122 | |
123 (deflocal ilisp-init-hook nil | |
124 "Hook of functions to call on first prompt in inferior LISP.") | |
125 | |
126 ;;;%%Advanced customization | |
127 ;;;%%%Commands | |
128 (deflocal ilisp-reset nil | |
129 "String for resetting the top-level of the inferior LISP.") | |
130 | |
131 (deflocal ilisp-load-or-send-command nil | |
132 "Format string for loading BINARY if possible otherwise loading | |
133 FILE. If you can't load either, return NIL.") | |
134 | |
135 (deflocal ilisp-package-regexp nil | |
136 "Regular expression for finding a package specification in a buffer. | |
137 The entire sexp starting with this pattern will be passed to | |
138 ilisp-package-command to find the package.") | |
139 | |
140 (deflocal ilisp-package-command nil | |
141 "Format string to find the package given PACKAGE.") | |
142 | |
143 (deflocal ilisp-package-name-command nil | |
144 "Format string to return the name of the current package.") | |
145 | |
146 (deflocal ilisp-in-package-command nil | |
147 "Format string to set the package given PACKAGE.") | |
148 | |
149 (deflocal ilisp-last-command nil | |
150 "Format string for getting the last returned value.") | |
151 | |
152 (deflocal ilisp-save-command nil | |
153 "Format string for saving result history given FORM.") | |
154 | |
155 (deflocal ilisp-restore-command nil | |
156 "Format string for restoring result history.") | |
157 | |
158 (deflocal ilisp-block-command nil | |
159 "Format string for grouping FORMS into one.") | |
160 | |
161 (deflocal ilisp-eval-command nil | |
162 "Format string for evaluating FORM in PACKAGE from FILE.") | |
163 | |
164 (deflocal ilisp-defvar-regexp nil | |
165 "Regular expression for identifying a defvar form.") | |
166 | |
167 (deflocal ilisp-defvar-command nil | |
168 "Format string for re-evaluating DEFVAR in PACKAGE from FILE.") | |
169 | |
170 (deflocal ilisp-describe-command nil | |
171 "Format string for describing FORM in PACKAGE.") | |
172 | |
173 (deflocal ilisp-compile-command nil | |
174 "Format string for compiling FORM in PACKAGE.") | |
175 | |
176 (deflocal ilisp-inspect-command nil | |
177 "Format string for inspecting FORM in PACKAGE.") | |
178 | |
179 (deflocal ilisp-arglist-command nil | |
180 "Format string for arglist of SYMBOL in PACKAGE.") | |
181 | |
182 (deflocal ilisp-documentation-types nil | |
183 "((\"type\") ...) possible LISP documentation types.") | |
184 | |
185 (deflocal ilisp-documentation-command nil | |
186 "Format string for documentation given SYMBOL in PACKAGE and TYPE.") | |
187 | |
188 (deflocal ilisp-macroexpand-1-command nil | |
189 "Format string for top-level macroexpand given FORM and PACKAGE.") | |
190 | |
191 (deflocal ilisp-macroexpand-command nil | |
192 "Format string for macroexpand given FORM and PACKAGE.") | |
193 | |
194 (deflocal ilisp-complete-command nil | |
195 "Format string for finding possibly matching symbols given SYMBOL, | |
196 PACKAGE, FUNCTIONP, EXTERNALP and PARTIAL-MATCHP. It should print | |
197 ((string) (string) ...).") | |
198 | |
199 (deflocal ilisp-callers-command nil | |
200 "Format for finding the callers of SYMBOL in PACKAGE. The function | |
201 should print out callers with one per line.") | |
202 | |
203 (deflocal ilisp-trace-command nil | |
204 "Format for tracing SYMBOL in PACKAGE.") | |
205 (deflocal ilisp-untrace-command nil | |
206 "Format for untracing SYMBOL in PACKAGE.") | |
207 | |
208 (deflocal ilisp-directory-command nil | |
209 "Format for getting default DIRECTORY.") | |
210 (deflocal ilisp-set-directory-command nil | |
211 "Format for setting default DIRECTORY.") | |
212 | |
213 (deflocal ilisp-binary-command nil | |
214 "Command to return the extension for binary files.") | |
215 | |
216 (deflocal ilisp-binary-extension nil | |
217 "*The extension to use for LISP binaries. If there is an | |
218 ilisp-binary-command, this string will be determined at initilization time.") | |
219 | |
220 (deflocal ilisp-init-binary-command nil | |
221 "Command to return the extension for initialization binary files.") | |
222 | |
223 (deflocal ilisp-init-binary-extension nil | |
224 "The extension for initialization binary files. If there is an | |
225 ilisp-init-binary-command, this string will be determined at | |
226 initilization time.") | |
227 | |
228 (deflocal ilisp-load-command nil | |
229 "Format string for loading a file in LISP given FILE.") | |
230 | |
231 (deflocal ilisp-compile-file-command nil | |
232 "Format string for compiling a file in LISP given FILE and EXTENSION.") | |
233 | |
234 ;;;%%%%Source | |
235 (deflocal ilisp-source-types nil | |
236 "Alist of strings for source types. The strings can be either | |
237 symbols or list expressions since the input accepts symbols or open | |
238 ended lists as type specifiers.") | |
239 | |
240 (deflocal ilisp-find-source-command nil | |
241 "Format string for finding the source file that defined SYMBOL in | |
242 PACKAGE. It should return NIL if no source is found.") | |
243 | |
244 (deflocal ilisp-locator nil | |
245 "Function \(SYMBOL TYPE FIRST-P BACK-P) that finds the next SYMBOL TYPE | |
246 definition in the current buffer. FIRST-P is T the first time it is | |
247 called in a buffer. BACK-P is T to move backwards.") | |
248 | |
249 (deflocal ilisp-calls-locator nil | |
250 "Function \(SYMBOL TYPE FIRST-P BACK-P ) that finds calls to SYMBOL | |
251 in the current buffer. FIRST-P is T the first time it is called in a | |
252 buffer. BACK-P is T to move backwards.") | |
253 | |
254 (deflocal ilisp-source-directory-fixup-alist | |
255 nil | |
256 "*An alist of (REGEXP . FIXUP-FUNCTION) which will be applied to | |
257 lists of source filenames to be used with edit-definitions-list. | |
258 FIXUP-FUNCTION takes no arguments and should use replace-match to fix | |
259 the filenames.") | |
260 | |
261 | |
262 ;;;%%%Misc | |
263 (deflocal ilisp-use-map nil "Keymap to use in ILISP mode.") | |
264 | |
265 (defvar ilisp-bugs-to "ilisp@lehman.com" "Who to send bug reports to.") | |
266 | |
267 (defvar ilisp-modes '(ilisp-mode) "List of all inferior ilisp modes.") | |
268 (defvar lisp-source-modes '(lisp-mode scheme-mode) | |
269 "Used to determine if a buffer contains Lisp source code. | |
270 If it's loaded into a buffer that is in one of these major modes, it's | |
271 considered a lisp source file by find-file-lisp, load-file-lisp and | |
272 compile-file-lisp. Used by these commands to determine defaults.") | |
273 | |
274 (deflocal ilisp-no-newline nil | |
275 "Set to T to stop ilisp from inserting a newline after a command.") | |
276 | |
277 (deflocal ilisp-error-filter nil "Function to filter error output.") | |
278 (deflocal ilisp-error-regexp nil "Regular expression to match error.") | |
279 | |
280 (deflocal ilisp-symbol-delimiters nil | |
281 "Delimiters found around symbols.") | |
282 | |
283 ;;;%%Program | |
284 (defvar ilisp-completion-map nil "Keymap for reading ilisp readers.") | |
285 (defvar ilisp-epoch-running (and (boundp 'epoch::version) epoch::version) | |
286 "Non-nil if epoch is running.") | |
287 (defvar ilisp-version | |
288 "5.7" ;; ILISP-VERSION marker | |
289 "Interface version.") | |
290 (defvar ilisp-directory nil "The directory that ilisp is found in.") | |
291 (defvar ilisp-mode-map nil "Key map for ILISP.") | |
292 (defvar ilisp-raw-map nil | |
293 "Keyboard map for sending characters directly to the inferior LISP.") | |
294 (defvar ilisp-raw-message "Raw keyboard mode until C-g" | |
295 "Message for how to stop raw mode.") | |
296 (defvar ilisp-buffer nil "Name of selected ilisp buffer.") | |
297 (defvar ilisp-status nil "Status string for selected ilisp buffer.") | |
298 (defvar ilisp-buffers nil "List of ILISP buffers.") | |
299 (defvar ilisp-dialects nil "List of ILISP dialects.") | |
300 | |
301 (deflocal ilisp-load-inits nil | |
302 "Alist of dialect files to load when initializing an inferior LISP. | |
303 By default the file will be loaded from the ilisp-directory.") | |
304 | |
305 ;;; This is useful to have a clause in ilisp code like: | |
306 ;;; (if (memq 'allegro (ilisp-value 'ilisp-dialect)) | |
307 ;;; allegro-code | |
308 ;;; normal-code) | |
309 (deflocal ilisp-dialect nil | |
310 "List of the dialects that defined the current inferior LISP.") | |
311 | |
312 (defvar ilisp-initialized nil | |
313 "List of buffer names that have been initialized.") | |
314 (deflocal ilisp-initializing nil | |
315 "Set to T while waiting for inferior LISP to get initialized.") | |
316 | |
317 (deflocal ilisp-load-files nil "List of files being loaded.") | |
318 | |
319 (defvar lisp-changes nil | |
320 "List of markers for changed forms.") | |
321 (deflocal ilisp-pending-changes nil | |
322 "List of changes that are pending, but have not been confirmed yet.") | |
323 | |
324 ;;;%%%Completion | |
325 ;;; Dynamically bound variables for controlling reading | |
326 (defvar ilisp-complete nil "T if in minibuffer completion mode.") | |
327 (defvar ilisp-no-complete nil "T if incomplete symbols are allowed.") | |
328 (defvar ilisp-table nil "Completion table for ilisp readers.") | |
329 (defvar ilisp-paren nil "T if paren is allowed in ilisp readers.") | |
330 (defvar ilisp-completion-package nil | |
331 "Package of buffer requesting completion.") | |
332 (defvar ilisp-completion-function-p nil | |
333 "T if only symbols with function values are allowed.") | |
334 | |
335 ;;; State variables for ilisp reading | |
336 (defvar ilisp-mini-prefix nil "Package and qualification from minibuffer.") | |
337 (defvar ilisp-original nil "Original string for ilisp completion.") | |
338 (defvar ilisp-original-function-p nil "Function-p for ilisp completion.") | |
339 (defvar ilisp-original-table nil "Completion table for ilisp-original.") | |
340 | |
341 ;;;%Buffer | |
342 ;;;%Packages | |
343 (defvar buffer-package 'not-yet-computed "Cached package name.") | |
344 (defvar buffer-mode-name nil "Original mode name.") | |
345 (defvar lisp-buffer-package nil "T if in lisp-buffer-package.") | |
346 (defvar lisp-dont-cache-package nil | |
347 "If Non-Nil then refind the most recent in-package each time.") | |
348 | |
349 ;;;%Globals from ilisp-ext.el | |
350 ;;; | |
351 (defvar ilisp-ext-load-hook nil "Hook to run when extensions are loaded.") | |
352 (defvar left-delimiter "\(" "*Left delimiter for find-unbalanced.") | |
353 (defvar right-delimiter "\)" "*Right delimiter for find-unbalanced.") | |
354 | |
355 ;;; Copies of ilisp var definitions | |
356 (defvar ilisp-complete nil "T when ilisp is in completion mode.") | |
357 (defvar ilisp-modes '(ilisp-mode) "List of all inferior ilisp modes.") | |
358 (defvar lisp-fill-marker (make-marker) | |
359 "Keeps track of point so that it does not move during a reindent-lisp.") | |
360 (defvar ilisp-comment-marker (make-marker) | |
361 "Marker for end of a comment region.") | |
362 | |
363 | |
364 (defvar lisp-buffer-file nil | |
365 "Cons of buffer-file-name and the expanded name.") | |
366 (make-variable-buffer-local 'lisp-buffer-file) | |
367 | |
368 (defvar ilisp-last-message nil) | |
369 (defvar ilisp-last-prompt nil) | |
370 | |
371 (defvar lisp-prev-l/c-dir/file nil | |
372 "Saves the (directory . file) pair used in the last find-file-lisp, | |
373 load-file-lisp or compile-file-lisp command. Used for determining the | |
374 default in the next one.") | |
375 | |
376 (defvar ilisp-last-buffer nil | |
377 "The last used LISP buffer.") |