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.")