Mercurial > hg > xemacs-beta
diff 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 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lisp/ilisp/ilisp-def.el Mon Aug 13 08:45:50 2007 +0200 @@ -0,0 +1,377 @@ +;;; -*- Mode: Emacs-Lisp -*- + +;;; ilisp-def.el -- + +;;; This file is part of ILISP. +;;; Version: 5.7 +;;; +;;; Copyright (C) 1990, 1991, 1992, 1993 Chris McConnell +;;; 1993, 1994 Ivan Vasquez +;;; 1994, 1995 Marco Antoniotti and Rick Busdiecker +;;; +;;; Other authors' names for which this Copyright notice also holds +;;; may appear later in this file. +;;; +;;; Send mail to 'ilisp-request@lehman.com' to be included in the +;;; ILISP mailing list. 'ilisp@lehman.com' is the general ILISP +;;; mailing list were bugs and improvements are discussed. +;;; +;;; ILISP is freely redistributable under the terms found in the file +;;; COPYING. + + + +;;; +;;; ILISP defvar's +;;; + +;;;%Variables +;;;%%Deflocal +(defvar ilisp-locals '(comint-prompt-regexp + input-ring-size + comint-get-old-input + comint-input-sentinel + comint-input-filter + comint-input-sender + comint-eol-on-send + comint-send-newline + comint-always-scroll + comint-fix-error + comint-continue + comint-interrupt-regexp + comint-error-regexp + comint-output-filter + comint-interrupt-start + comint-handler + comint-update-status + comint-prompt-status + comint-abort-hook) + "List of ilisp local variables.") +(defun lisp-deflocal (local) + (if (not (memq local ilisp-locals)) + (setq ilisp-locals (cons local ilisp-locals)))) + + +;;; +(defmacro deflocal (variable default &optional documentation) + "Define an ilisp local variable." + (` (progn (lisp-deflocal '(, variable)) + (defvar (, variable) (, default) (, documentation))))) + +;;;%%Simple customization +(defvar ilisp-prefix "\C-z" "Prefix sequence for ilisp commands.") + +(deflocal ilisp-program nil + "*Program and arguments for invoking an inferior LISP. The program +can be an rsh to run on a remote machine. If there is not a common +file system, the interface files will be sent down the pipe instead. +The value of this variable is set from DIALECT-program, or inherited +from a less specific dialect if DIALECT-program is nil.") + +(defvar ilisp-motd + "ILISP V%s Use M-x ilisp-bug for problems and suggestions." + "*Message of the day format string for ILISP given VERSION. To +prevent any message from being printed, set this to nil.") + +(defvar lisp-wait-p nil + "*T if LISP eval/compile commands should wait for the result. A +minus prefix to the command will change the sense of this switch for +just the next command.") + +(defvar lisp-no-popper 'message + "*T if you want all output in the inferior LISP rather than in a +pop-up window. 'message if you want output of one line to go to the +message window (or to the inferior LISP if more). You should probably +also set comint-always-scroll to T as well so that output is always visible.") + +(defvar lisp-show-status t + "*Set to nil to stop showing process status in lisp-mode buffers.") + +(defvar ilisp-prefix-match nil + "*Set to T to match only as a prefix when completing through the +inferior LISP. This will speed up completion, but you no longer get +partial completion.") + +(deflocal ilisp-filter-regexp nil + "*What not to save on an inferior LISP's input history. +Input matching this regexp is not saved on the input history in ilisp +mode.") + +(deflocal ilisp-filter-length 3 + "*Do not save strings less than this in the command history.") + +(deflocal ilisp-other-prompt nil + "*Regexp to recognise prompts in the inferior LISP that are prompts +of non-(read/eval/print) top-levels so that bol-ilisp skips them.") + +(deflocal ilisp-raw-echo nil + "*Set this to T to cause echoing in raw keyboard mode.") + +(deflocal ilisp-load-no-compile-query nil + "*Set this to T to stop load querying about compile.") + +;;;%%%Hooks +(defvar ilisp-site-hook nil + "Hook for site customization of ilisp mode when it is loaded.") + +(defvar ilisp-load-hook '() + "Hook for customizing ilisp mode when it is loaded.") + +(defvar ilisp-mode-hook '() + "Hook for customizing ilisp mode.") + +(deflocal ilisp-init-hook nil + "Hook of functions to call on first prompt in inferior LISP.") + +;;;%%Advanced customization +;;;%%%Commands +(deflocal ilisp-reset nil + "String for resetting the top-level of the inferior LISP.") + +(deflocal ilisp-load-or-send-command nil + "Format string for loading BINARY if possible otherwise loading +FILE. If you can't load either, return NIL.") + +(deflocal ilisp-package-regexp nil + "Regular expression for finding a package specification in a buffer. +The entire sexp starting with this pattern will be passed to +ilisp-package-command to find the package.") + +(deflocal ilisp-package-command nil + "Format string to find the package given PACKAGE.") + +(deflocal ilisp-package-name-command nil + "Format string to return the name of the current package.") + +(deflocal ilisp-in-package-command nil + "Format string to set the package given PACKAGE.") + +(deflocal ilisp-last-command nil + "Format string for getting the last returned value.") + +(deflocal ilisp-save-command nil + "Format string for saving result history given FORM.") + +(deflocal ilisp-restore-command nil + "Format string for restoring result history.") + +(deflocal ilisp-block-command nil + "Format string for grouping FORMS into one.") + +(deflocal ilisp-eval-command nil + "Format string for evaluating FORM in PACKAGE from FILE.") + +(deflocal ilisp-defvar-regexp nil + "Regular expression for identifying a defvar form.") + +(deflocal ilisp-defvar-command nil + "Format string for re-evaluating DEFVAR in PACKAGE from FILE.") + +(deflocal ilisp-describe-command nil + "Format string for describing FORM in PACKAGE.") + +(deflocal ilisp-compile-command nil + "Format string for compiling FORM in PACKAGE.") + +(deflocal ilisp-inspect-command nil + "Format string for inspecting FORM in PACKAGE.") + +(deflocal ilisp-arglist-command nil + "Format string for arglist of SYMBOL in PACKAGE.") + +(deflocal ilisp-documentation-types nil + "((\"type\") ...) possible LISP documentation types.") + +(deflocal ilisp-documentation-command nil + "Format string for documentation given SYMBOL in PACKAGE and TYPE.") + +(deflocal ilisp-macroexpand-1-command nil + "Format string for top-level macroexpand given FORM and PACKAGE.") + +(deflocal ilisp-macroexpand-command nil + "Format string for macroexpand given FORM and PACKAGE.") + +(deflocal ilisp-complete-command nil + "Format string for finding possibly matching symbols given SYMBOL, +PACKAGE, FUNCTIONP, EXTERNALP and PARTIAL-MATCHP. It should print +((string) (string) ...).") + +(deflocal ilisp-callers-command nil + "Format for finding the callers of SYMBOL in PACKAGE. The function +should print out callers with one per line.") + +(deflocal ilisp-trace-command nil + "Format for tracing SYMBOL in PACKAGE.") +(deflocal ilisp-untrace-command nil + "Format for untracing SYMBOL in PACKAGE.") + +(deflocal ilisp-directory-command nil + "Format for getting default DIRECTORY.") +(deflocal ilisp-set-directory-command nil + "Format for setting default DIRECTORY.") + +(deflocal ilisp-binary-command nil + "Command to return the extension for binary files.") + +(deflocal ilisp-binary-extension nil + "*The extension to use for LISP binaries. If there is an +ilisp-binary-command, this string will be determined at initilization time.") + +(deflocal ilisp-init-binary-command nil + "Command to return the extension for initialization binary files.") + +(deflocal ilisp-init-binary-extension nil + "The extension for initialization binary files. If there is an +ilisp-init-binary-command, this string will be determined at +initilization time.") + +(deflocal ilisp-load-command nil + "Format string for loading a file in LISP given FILE.") + +(deflocal ilisp-compile-file-command nil + "Format string for compiling a file in LISP given FILE and EXTENSION.") + +;;;%%%%Source +(deflocal ilisp-source-types nil + "Alist of strings for source types. The strings can be either +symbols or list expressions since the input accepts symbols or open +ended lists as type specifiers.") + +(deflocal ilisp-find-source-command nil + "Format string for finding the source file that defined SYMBOL in +PACKAGE. It should return NIL if no source is found.") + +(deflocal ilisp-locator nil + "Function \(SYMBOL TYPE FIRST-P BACK-P) that finds the next SYMBOL TYPE +definition in the current buffer. FIRST-P is T the first time it is +called in a buffer. BACK-P is T to move backwards.") + +(deflocal ilisp-calls-locator nil + "Function \(SYMBOL TYPE FIRST-P BACK-P ) that finds calls to SYMBOL +in the current buffer. FIRST-P is T the first time it is called in a +buffer. BACK-P is T to move backwards.") + +(deflocal ilisp-source-directory-fixup-alist + nil + "*An alist of (REGEXP . FIXUP-FUNCTION) which will be applied to +lists of source filenames to be used with edit-definitions-list. +FIXUP-FUNCTION takes no arguments and should use replace-match to fix +the filenames.") + + +;;;%%%Misc +(deflocal ilisp-use-map nil "Keymap to use in ILISP mode.") + +(defvar ilisp-bugs-to "ilisp@lehman.com" "Who to send bug reports to.") + +(defvar ilisp-modes '(ilisp-mode) "List of all inferior ilisp modes.") +(defvar lisp-source-modes '(lisp-mode scheme-mode) + "Used to determine if a buffer contains Lisp source code. +If it's loaded into a buffer that is in one of these major modes, it's +considered a lisp source file by find-file-lisp, load-file-lisp and +compile-file-lisp. Used by these commands to determine defaults.") + +(deflocal ilisp-no-newline nil + "Set to T to stop ilisp from inserting a newline after a command.") + +(deflocal ilisp-error-filter nil "Function to filter error output.") +(deflocal ilisp-error-regexp nil "Regular expression to match error.") + +(deflocal ilisp-symbol-delimiters nil + "Delimiters found around symbols.") + +;;;%%Program +(defvar ilisp-completion-map nil "Keymap for reading ilisp readers.") +(defvar ilisp-epoch-running (and (boundp 'epoch::version) epoch::version) + "Non-nil if epoch is running.") +(defvar ilisp-version + "5.7" ;; ILISP-VERSION marker + "Interface version.") +(defvar ilisp-directory nil "The directory that ilisp is found in.") +(defvar ilisp-mode-map nil "Key map for ILISP.") +(defvar ilisp-raw-map nil + "Keyboard map for sending characters directly to the inferior LISP.") +(defvar ilisp-raw-message "Raw keyboard mode until C-g" + "Message for how to stop raw mode.") +(defvar ilisp-buffer nil "Name of selected ilisp buffer.") +(defvar ilisp-status nil "Status string for selected ilisp buffer.") +(defvar ilisp-buffers nil "List of ILISP buffers.") +(defvar ilisp-dialects nil "List of ILISP dialects.") + +(deflocal ilisp-load-inits nil + "Alist of dialect files to load when initializing an inferior LISP. +By default the file will be loaded from the ilisp-directory.") + +;;; This is useful to have a clause in ilisp code like: +;;; (if (memq 'allegro (ilisp-value 'ilisp-dialect)) +;;; allegro-code +;;; normal-code) +(deflocal ilisp-dialect nil + "List of the dialects that defined the current inferior LISP.") + +(defvar ilisp-initialized nil + "List of buffer names that have been initialized.") +(deflocal ilisp-initializing nil + "Set to T while waiting for inferior LISP to get initialized.") + +(deflocal ilisp-load-files nil "List of files being loaded.") + +(defvar lisp-changes nil + "List of markers for changed forms.") +(deflocal ilisp-pending-changes nil + "List of changes that are pending, but have not been confirmed yet.") + +;;;%%%Completion +;;; Dynamically bound variables for controlling reading +(defvar ilisp-complete nil "T if in minibuffer completion mode.") +(defvar ilisp-no-complete nil "T if incomplete symbols are allowed.") +(defvar ilisp-table nil "Completion table for ilisp readers.") +(defvar ilisp-paren nil "T if paren is allowed in ilisp readers.") +(defvar ilisp-completion-package nil + "Package of buffer requesting completion.") +(defvar ilisp-completion-function-p nil + "T if only symbols with function values are allowed.") + +;;; State variables for ilisp reading +(defvar ilisp-mini-prefix nil "Package and qualification from minibuffer.") +(defvar ilisp-original nil "Original string for ilisp completion.") +(defvar ilisp-original-function-p nil "Function-p for ilisp completion.") +(defvar ilisp-original-table nil "Completion table for ilisp-original.") + +;;;%Buffer +;;;%Packages +(defvar buffer-package 'not-yet-computed "Cached package name.") +(defvar buffer-mode-name nil "Original mode name.") +(defvar lisp-buffer-package nil "T if in lisp-buffer-package.") +(defvar lisp-dont-cache-package nil + "If Non-Nil then refind the most recent in-package each time.") + +;;;%Globals from ilisp-ext.el +;;; +(defvar ilisp-ext-load-hook nil "Hook to run when extensions are loaded.") +(defvar left-delimiter "\(" "*Left delimiter for find-unbalanced.") +(defvar right-delimiter "\)" "*Right delimiter for find-unbalanced.") + +;;; Copies of ilisp var definitions +(defvar ilisp-complete nil "T when ilisp is in completion mode.") +(defvar ilisp-modes '(ilisp-mode) "List of all inferior ilisp modes.") +(defvar lisp-fill-marker (make-marker) + "Keeps track of point so that it does not move during a reindent-lisp.") +(defvar ilisp-comment-marker (make-marker) + "Marker for end of a comment region.") + + +(defvar lisp-buffer-file nil + "Cons of buffer-file-name and the expanded name.") +(make-variable-buffer-local 'lisp-buffer-file) + +(defvar ilisp-last-message nil) +(defvar ilisp-last-prompt nil) + +(defvar lisp-prev-l/c-dir/file nil + "Saves the (directory . file) pair used in the last find-file-lisp, +load-file-lisp or compile-file-lisp command. Used for determining the +default in the next one.") + +(defvar ilisp-last-buffer nil + "The last used LISP buffer.")