annotate lisp/progmodes/inf-lisp.el @ 98182:19ec1646fe6c

The Rmail/mbox merge has been abandoned in favor of a restart using the current rmail.el file. A comprehensive list of changes will be supplied when pmail.el is morphed back into rmail.el The current status is that pmail.el supports basic Rmail navigation (no summary support) and shows the current message in a special buffer using buffer-swap-text. No decoding is done yet. That is the next step.
author Paul Reilly <pmr@pajato.com>
date Mon, 15 Sep 2008 20:56:53 +0000
parents 52b7a8c22af5
children a9dc0e7c3f2b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
835
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
1 ;;; inf-lisp.el --- an inferior-lisp mode
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13644
diff changeset
2
79717
a1342e6e097a Add 2008 to copyright years.
Glenn Morris <rgm@gnu.org>
parents: 78234
diff changeset
3 ;; Copyright (C) 1988, 1993, 1994, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
64699
629afbe74e61 Update copyright for release of 22.1 for progmodes directory.
Nick Roberts <nickrob@snap.net.nz>
parents: 64085
diff changeset
4 ;; Free Software Foundation, Inc.
846
20674ae6bf52 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 836
diff changeset
5
798
b7932f859d4e *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 727
diff changeset
6 ;; Author: Olin Shivers <shivers@cs.cmu.edu>
2247
2c7997f249eb Add or correct keywords
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 957
diff changeset
7 ;; Keywords: processes, lisp
798
b7932f859d4e *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 727
diff changeset
8
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13644
diff changeset
9 ;; This file is part of GNU Emacs.
835
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
10
94673
52b7a8c22af5 Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 93975
diff changeset
11 ;; GNU Emacs is free software: you can redistribute it and/or modify
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13644
diff changeset
12 ;; it under the terms of the GNU General Public License as published by
94673
52b7a8c22af5 Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 93975
diff changeset
13 ;; the Free Software Foundation, either version 3 of the License, or
52b7a8c22af5 Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 93975
diff changeset
14 ;; (at your option) any later version.
835
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
15
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13644
diff changeset
16 ;; GNU Emacs is distributed in the hope that it will be useful,
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13644
diff changeset
17 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13644
diff changeset
18 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13644
diff changeset
19 ;; GNU General Public License for more details.
835
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
20
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13644
diff changeset
21 ;; You should have received a copy of the GNU General Public License
94673
52b7a8c22af5 Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 93975
diff changeset
22 ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
23
798
b7932f859d4e *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 727
diff changeset
24 ;;; Commentary:
b7932f859d4e *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 727
diff changeset
25
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13644
diff changeset
26 ;; Hacked from tea.el by Olin Shivers (shivers@cs.cmu.edu). 8/88
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
27
46153
654257005f05 Fix typo.
Juanma Barranquero <lekktu@gmail.com>
parents: 42205
diff changeset
28 ;; This file defines a lisp-in-a-buffer package (inferior-lisp mode)
46158
61df14a62e39 Fix spacing (garbled by previous patch).
Juanma Barranquero <lekktu@gmail.com>
parents: 46153
diff changeset
29 ;; built on top of comint mode. This version is more featureful,
61df14a62e39 Fix spacing (garbled by previous patch).
Juanma Barranquero <lekktu@gmail.com>
parents: 46153
diff changeset
30 ;; robust, and uniform than the Emacs 18 version. The key bindings are
46153
654257005f05 Fix typo.
Juanma Barranquero <lekktu@gmail.com>
parents: 42205
diff changeset
31 ;; also more compatible with the bindings of Hemlock and Zwei (the
654257005f05 Fix typo.
Juanma Barranquero <lekktu@gmail.com>
parents: 42205
diff changeset
32 ;; Lisp Machine emacs).
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
33
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13644
diff changeset
34 ;; Since this mode is built on top of the general command-interpreter-in-
32367
7c181d033dae use lisp-mode-shared-map instead of shared-lisp-mode-map
Sam Steingold <sds@gnu.org>
parents: 30647
diff changeset
35 ;; a-buffer mode (comint mode), it shares a common base functionality,
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13644
diff changeset
36 ;; and a common set of bindings, with all modes derived from comint mode.
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13644
diff changeset
37 ;; This makes these modes easier to use.
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
38
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13644
diff changeset
39 ;; For documentation on the functionality provided by comint mode, and
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13644
diff changeset
40 ;; the hooks available for customising it, see the file comint.el.
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13644
diff changeset
41 ;; For further information on inferior-lisp mode, see the comments below.
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
42
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13644
diff changeset
43 ;; Needs fixin:
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13644
diff changeset
44 ;; The load-file/compile-file default mechanism could be smarter -- it
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13644
diff changeset
45 ;; doesn't know about the relationship between filename extensions and
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13644
diff changeset
46 ;; whether the file is source or executable. If you compile foo.lisp
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13644
diff changeset
47 ;; with compile-file, then the next load-file should use foo.bin for
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13644
diff changeset
48 ;; the default, not foo.lisp. This is tricky to do right, particularly
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13644
diff changeset
49 ;; because the extension for executable files varies so much (.o, .bin,
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13644
diff changeset
50 ;; .lbin, .mo, .vo, .ao, ...).
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13644
diff changeset
51 ;;
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13644
diff changeset
52 ;; It would be nice if inferior-lisp (and inferior scheme, T, ...) modes
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13644
diff changeset
53 ;; had a verbose minor mode wherein sending or compiling defuns, etc.
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13644
diff changeset
54 ;; would be reflected in the transcript with suitable comments, e.g.
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13644
diff changeset
55 ;; ";;; redefining fact". Several ways to do this. Which is right?
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13644
diff changeset
56 ;;
32367
7c181d033dae use lisp-mode-shared-map instead of shared-lisp-mode-map
Sam Steingold <sds@gnu.org>
parents: 30647
diff changeset
57 ;; When sending text from a source file to a subprocess, the process-mark can
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13644
diff changeset
58 ;; move off the window, so you can lose sight of the process interactions.
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13644
diff changeset
59 ;; Maybe I should ensure the process mark is in the window when I send
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13644
diff changeset
60 ;; text to the process? Switch selectable?
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
61
798
b7932f859d4e *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 727
diff changeset
62 ;;; Code:
b7932f859d4e *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 727
diff changeset
63
b7932f859d4e *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 727
diff changeset
64 (require 'comint)
836
a7cc5061c4de *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 835
diff changeset
65 (require 'lisp-mode)
a7cc5061c4de *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 835
diff changeset
66
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
67
61707
5a21477f3dd8 (inferior-lisp): New defgroup.
Luc Teirlinck <teirllm@auburn.edu>
parents: 52401
diff changeset
68 (defgroup inferior-lisp nil
5a21477f3dd8 (inferior-lisp): New defgroup.
Luc Teirlinck <teirllm@auburn.edu>
parents: 52401
diff changeset
69 "Run an outside Lisp in an Emacs buffer."
5a21477f3dd8 (inferior-lisp): New defgroup.
Luc Teirlinck <teirllm@auburn.edu>
parents: 52401
diff changeset
70 :group 'lisp
5a21477f3dd8 (inferior-lisp): New defgroup.
Luc Teirlinck <teirllm@auburn.edu>
parents: 52401
diff changeset
71 :version "22.1")
5a21477f3dd8 (inferior-lisp): New defgroup.
Luc Teirlinck <teirllm@auburn.edu>
parents: 52401
diff changeset
72
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 925
diff changeset
73 ;;;###autoload
61707
5a21477f3dd8 (inferior-lisp): New defgroup.
Luc Teirlinck <teirllm@auburn.edu>
parents: 52401
diff changeset
74 (defcustom inferior-lisp-filter-regexp
5a21477f3dd8 (inferior-lisp): New defgroup.
Luc Teirlinck <teirllm@auburn.edu>
parents: 52401
diff changeset
75 "\\`\\s *\\(:\\(\\w\\|\\s_\\)\\)?\\s *\\'"
3663
25743b083fe8 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
76 "*What not to save on inferior Lisp's input history.
25743b083fe8 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
77 Input matching this regexp is not saved on the input history in Inferior Lisp
32367
7c181d033dae use lisp-mode-shared-map instead of shared-lisp-mode-map
Sam Steingold <sds@gnu.org>
parents: 30647
diff changeset
78 mode. Default is whitespace followed by 0 or 1 single-letter colon-keyword
61707
5a21477f3dd8 (inferior-lisp): New defgroup.
Luc Teirlinck <teirllm@auburn.edu>
parents: 52401
diff changeset
79 \(as in :a, :c, etc.)"
5a21477f3dd8 (inferior-lisp): New defgroup.
Luc Teirlinck <teirllm@auburn.edu>
parents: 52401
diff changeset
80 :type 'regexp
5a21477f3dd8 (inferior-lisp): New defgroup.
Luc Teirlinck <teirllm@auburn.edu>
parents: 52401
diff changeset
81 :group 'inferior-lisp)
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
82
835
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
83 (defvar inferior-lisp-mode-map nil)
32367
7c181d033dae use lisp-mode-shared-map instead of shared-lisp-mode-map
Sam Steingold <sds@gnu.org>
parents: 30647
diff changeset
84 (unless inferior-lisp-mode-map
7c181d033dae use lisp-mode-shared-map instead of shared-lisp-mode-map
Sam Steingold <sds@gnu.org>
parents: 30647
diff changeset
85 (setq inferior-lisp-mode-map (copy-keymap comint-mode-map))
7c181d033dae use lisp-mode-shared-map instead of shared-lisp-mode-map
Sam Steingold <sds@gnu.org>
parents: 30647
diff changeset
86 (set-keymap-parent inferior-lisp-mode-map lisp-mode-shared-map)
7c181d033dae use lisp-mode-shared-map instead of shared-lisp-mode-map
Sam Steingold <sds@gnu.org>
parents: 30647
diff changeset
87 (define-key inferior-lisp-mode-map "\C-x\C-e" 'lisp-eval-last-sexp)
7c181d033dae use lisp-mode-shared-map instead of shared-lisp-mode-map
Sam Steingold <sds@gnu.org>
parents: 30647
diff changeset
88 (define-key inferior-lisp-mode-map "\C-c\C-l" 'lisp-load-file)
7c181d033dae use lisp-mode-shared-map instead of shared-lisp-mode-map
Sam Steingold <sds@gnu.org>
parents: 30647
diff changeset
89 (define-key inferior-lisp-mode-map "\C-c\C-k" 'lisp-compile-file)
7c181d033dae use lisp-mode-shared-map instead of shared-lisp-mode-map
Sam Steingold <sds@gnu.org>
parents: 30647
diff changeset
90 (define-key inferior-lisp-mode-map "\C-c\C-a" 'lisp-show-arglist)
7c181d033dae use lisp-mode-shared-map instead of shared-lisp-mode-map
Sam Steingold <sds@gnu.org>
parents: 30647
diff changeset
91 (define-key inferior-lisp-mode-map "\C-c\C-d" 'lisp-describe-sym)
7c181d033dae use lisp-mode-shared-map instead of shared-lisp-mode-map
Sam Steingold <sds@gnu.org>
parents: 30647
diff changeset
92 (define-key inferior-lisp-mode-map "\C-c\C-f"
7c181d033dae use lisp-mode-shared-map instead of shared-lisp-mode-map
Sam Steingold <sds@gnu.org>
parents: 30647
diff changeset
93 'lisp-show-function-documentation)
7c181d033dae use lisp-mode-shared-map instead of shared-lisp-mode-map
Sam Steingold <sds@gnu.org>
parents: 30647
diff changeset
94 (define-key inferior-lisp-mode-map "\C-c\C-v"
7c181d033dae use lisp-mode-shared-map instead of shared-lisp-mode-map
Sam Steingold <sds@gnu.org>
parents: 30647
diff changeset
95 'lisp-show-variable-documentation))
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
96
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
97 ;;; These commands augment Lisp mode, so you can process Lisp code in
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
98 ;;; the source files.
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
99 (define-key lisp-mode-map "\M-\C-x" 'lisp-eval-defun) ; Gnu convention
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
100 (define-key lisp-mode-map "\C-x\C-e" 'lisp-eval-last-sexp) ; Gnu convention
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
101 (define-key lisp-mode-map "\C-c\C-e" 'lisp-eval-defun)
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
102 (define-key lisp-mode-map "\C-c\C-r" 'lisp-eval-region)
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
103 (define-key lisp-mode-map "\C-c\C-c" 'lisp-compile-defun)
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
104 (define-key lisp-mode-map "\C-c\C-z" 'switch-to-lisp)
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
105 (define-key lisp-mode-map "\C-c\C-l" 'lisp-load-file)
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
106 (define-key lisp-mode-map "\C-c\C-k" 'lisp-compile-file) ; "kompile" file
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
107 (define-key lisp-mode-map "\C-c\C-a" 'lisp-show-arglist)
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
108 (define-key lisp-mode-map "\C-c\C-d" 'lisp-describe-sym)
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
109 (define-key lisp-mode-map "\C-c\C-f" 'lisp-show-function-documentation)
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
110 (define-key lisp-mode-map "\C-c\C-v" 'lisp-show-variable-documentation)
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
111
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
112
727
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
113 ;;; This function exists for backwards compatibility.
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
114 ;;; Previous versions of this package bound commands to C-c <letter>
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
115 ;;; bindings, which is not allowed by the gnumacs standard.
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
116
3663
25743b083fe8 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
117 ;;; "This function binds many inferior-lisp commands to C-c <letter> bindings,
25743b083fe8 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
118 ;;;where they are more accessible. C-c <letter> bindings are reserved for the
25743b083fe8 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
119 ;;;user, so these bindings are non-standard. If you want them, you should
25743b083fe8 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
120 ;;;have this function called by the inferior-lisp-load-hook:
61707
5a21477f3dd8 (inferior-lisp): New defgroup.
Luc Teirlinck <teirllm@auburn.edu>
parents: 52401
diff changeset
121 ;;; (add-hook 'inferior-lisp-load-hook 'inferior-lisp-install-letter-bindings)
3663
25743b083fe8 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
122 ;;;You can modify this function to install just the bindings you want."
835
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
123 (defun inferior-lisp-install-letter-bindings ()
727
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
124 (define-key lisp-mode-map "\C-ce" 'lisp-eval-defun-and-go)
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
125 (define-key lisp-mode-map "\C-cr" 'lisp-eval-region-and-go)
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
126 (define-key lisp-mode-map "\C-cc" 'lisp-compile-defun-and-go)
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
127 (define-key lisp-mode-map "\C-cz" 'switch-to-lisp)
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
128 (define-key lisp-mode-map "\C-cl" 'lisp-load-file)
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
129 (define-key lisp-mode-map "\C-ck" 'lisp-compile-file)
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
130 (define-key lisp-mode-map "\C-ca" 'lisp-show-arglist)
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
131 (define-key lisp-mode-map "\C-cd" 'lisp-describe-sym)
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
132 (define-key lisp-mode-map "\C-cf" 'lisp-show-function-documentation)
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
133 (define-key lisp-mode-map "\C-cv" 'lisp-show-variable-documentation)
32367
7c181d033dae use lisp-mode-shared-map instead of shared-lisp-mode-map
Sam Steingold <sds@gnu.org>
parents: 30647
diff changeset
134
835
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
135 (define-key inferior-lisp-mode-map "\C-cl" 'lisp-load-file)
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
136 (define-key inferior-lisp-mode-map "\C-ck" 'lisp-compile-file)
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
137 (define-key inferior-lisp-mode-map "\C-ca" 'lisp-show-arglist)
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
138 (define-key inferior-lisp-mode-map "\C-cd" 'lisp-describe-sym)
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
139 (define-key inferior-lisp-mode-map "\C-cf" 'lisp-show-function-documentation)
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
140 (define-key inferior-lisp-mode-map "\C-cv"
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
141 'lisp-show-variable-documentation))
727
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
142
61707
5a21477f3dd8 (inferior-lisp): New defgroup.
Luc Teirlinck <teirllm@auburn.edu>
parents: 52401
diff changeset
143 ;;;###autoload
5a21477f3dd8 (inferior-lisp): New defgroup.
Luc Teirlinck <teirllm@auburn.edu>
parents: 52401
diff changeset
144 (defcustom inferior-lisp-program "lisp"
5a21477f3dd8 (inferior-lisp): New defgroup.
Luc Teirlinck <teirllm@auburn.edu>
parents: 52401
diff changeset
145 "*Program name for invoking an inferior Lisp in Inferior Lisp mode."
5a21477f3dd8 (inferior-lisp): New defgroup.
Luc Teirlinck <teirllm@auburn.edu>
parents: 52401
diff changeset
146 :type 'string
5a21477f3dd8 (inferior-lisp): New defgroup.
Luc Teirlinck <teirllm@auburn.edu>
parents: 52401
diff changeset
147 :group 'inferior-lisp)
727
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
148
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 925
diff changeset
149 ;;;###autoload
61707
5a21477f3dd8 (inferior-lisp): New defgroup.
Luc Teirlinck <teirllm@auburn.edu>
parents: 52401
diff changeset
150 (defcustom inferior-lisp-load-command "(load \"%s\")\n"
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
151 "*Format-string for building a Lisp expression to load a file.
3663
25743b083fe8 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
152 This format string should use `%s' to substitute a file name
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
153 and should result in a Lisp expression that will command the inferior Lisp
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
154 to load that file. The default works acceptably on most Lisps.
13644
e36da6ad58fe (inferior-lisp-load-command): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 12868
diff changeset
155 The string \"(progn (load \\\"%s\\\" :verbose nil :print t) (values))\\n\"
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
156 produces cosmetically superior output for this application,
61707
5a21477f3dd8 (inferior-lisp): New defgroup.
Luc Teirlinck <teirllm@auburn.edu>
parents: 52401
diff changeset
157 but it works only in Common Lisp."
5a21477f3dd8 (inferior-lisp): New defgroup.
Luc Teirlinck <teirllm@auburn.edu>
parents: 52401
diff changeset
158 :type 'string
5a21477f3dd8 (inferior-lisp): New defgroup.
Luc Teirlinck <teirllm@auburn.edu>
parents: 52401
diff changeset
159 :group 'inferior-lisp)
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
160
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 925
diff changeset
161 ;;;###autoload
61707
5a21477f3dd8 (inferior-lisp): New defgroup.
Luc Teirlinck <teirllm@auburn.edu>
parents: 52401
diff changeset
162 (defcustom inferior-lisp-prompt "^[^> \n]*>+:? *"
63519
e33c4b9caa8a (inferior-lisp-prompt): Fix spelling in docstrings.
Juanma Barranquero <lekktu@gmail.com>
parents: 62874
diff changeset
163 "Regexp to recognize prompts in the Inferior Lisp mode.
5303
8e6ba05e1271 (inferior-lisp-prompt): Don't match more than one line.
Richard M. Stallman <rms@gnu.org>
parents: 5104
diff changeset
164 Defaults to \"^[^> \\n]*>+:? *\", which works pretty good for Lucid, kcl,
32367
7c181d033dae use lisp-mode-shared-map instead of shared-lisp-mode-map
Sam Steingold <sds@gnu.org>
parents: 30647
diff changeset
165 and franz. This variable is used to initialize `comint-prompt-regexp' in the
3663
25743b083fe8 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
166 Inferior Lisp buffer.
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
167
30647
9d266998439c (inferior-lisp-prompt): Doc change.
Miles Bader <miles@gnu.org>
parents: 28656
diff changeset
168 This variable is only used if the variable
61877
395f55ef5adc (inferior-lisp-prompt): Doc fix.
Luc Teirlinck <teirllm@auburn.edu>
parents: 61707
diff changeset
169 `comint-use-prompt-regexp' is non-nil.
30647
9d266998439c (inferior-lisp-prompt): Doc change.
Miles Bader <miles@gnu.org>
parents: 28656
diff changeset
170
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
171 More precise choices:
13644
e36da6ad58fe (inferior-lisp-load-command): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 12868
diff changeset
172 Lucid Common Lisp: \"^\\\\(>\\\\|\\\\(->\\\\)+\\\\) *\"
e36da6ad58fe (inferior-lisp-load-command): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 12868
diff changeset
173 franz: \"^\\\\(->\\\\|<[0-9]*>:\\\\) *\"
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
174 kcl: \"^>+ *\"
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
175
61707
5a21477f3dd8 (inferior-lisp): New defgroup.
Luc Teirlinck <teirllm@auburn.edu>
parents: 52401
diff changeset
176 This is a fine thing to set in your .emacs file or through Custom."
5a21477f3dd8 (inferior-lisp): New defgroup.
Luc Teirlinck <teirllm@auburn.edu>
parents: 52401
diff changeset
177 :type 'regexp
5a21477f3dd8 (inferior-lisp): New defgroup.
Luc Teirlinck <teirllm@auburn.edu>
parents: 52401
diff changeset
178 :group 'inferior-lisp)
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
179
3744
f344542ac7fd (inferior-lisp-buffer): Move defvar earlier.
Richard M. Stallman <rms@gnu.org>
parents: 3663
diff changeset
180 (defvar inferior-lisp-buffer nil "*The current inferior-lisp process buffer.
f344542ac7fd (inferior-lisp-buffer): Move defvar earlier.
Richard M. Stallman <rms@gnu.org>
parents: 3663
diff changeset
181
f344542ac7fd (inferior-lisp-buffer): Move defvar earlier.
Richard M. Stallman <rms@gnu.org>
parents: 3663
diff changeset
182 MULTIPLE PROCESS SUPPORT
f344542ac7fd (inferior-lisp-buffer): Move defvar earlier.
Richard M. Stallman <rms@gnu.org>
parents: 3663
diff changeset
183 ===========================================================================
f344542ac7fd (inferior-lisp-buffer): Move defvar earlier.
Richard M. Stallman <rms@gnu.org>
parents: 3663
diff changeset
184 To run multiple Lisp processes, you start the first up
f344542ac7fd (inferior-lisp-buffer): Move defvar earlier.
Richard M. Stallman <rms@gnu.org>
parents: 3663
diff changeset
185 with \\[inferior-lisp]. It will be in a buffer named `*inferior-lisp*'.
f344542ac7fd (inferior-lisp-buffer): Move defvar earlier.
Richard M. Stallman <rms@gnu.org>
parents: 3663
diff changeset
186 Rename this buffer with \\[rename-buffer]. You may now start up a new
f344542ac7fd (inferior-lisp-buffer): Move defvar earlier.
Richard M. Stallman <rms@gnu.org>
parents: 3663
diff changeset
187 process with another \\[inferior-lisp]. It will be in a new buffer,
f344542ac7fd (inferior-lisp-buffer): Move defvar earlier.
Richard M. Stallman <rms@gnu.org>
parents: 3663
diff changeset
188 named `*inferior-lisp*'. You can switch between the different process
f344542ac7fd (inferior-lisp-buffer): Move defvar earlier.
Richard M. Stallman <rms@gnu.org>
parents: 3663
diff changeset
189 buffers with \\[switch-to-buffer].
f344542ac7fd (inferior-lisp-buffer): Move defvar earlier.
Richard M. Stallman <rms@gnu.org>
parents: 3663
diff changeset
190
f344542ac7fd (inferior-lisp-buffer): Move defvar earlier.
Richard M. Stallman <rms@gnu.org>
parents: 3663
diff changeset
191 Commands that send text from source buffers to Lisp processes --
f344542ac7fd (inferior-lisp-buffer): Move defvar earlier.
Richard M. Stallman <rms@gnu.org>
parents: 3663
diff changeset
192 like `lisp-eval-defun' or `lisp-show-arglist' -- have to choose a process
f344542ac7fd (inferior-lisp-buffer): Move defvar earlier.
Richard M. Stallman <rms@gnu.org>
parents: 3663
diff changeset
193 to send to, when you have more than one Lisp process around. This
f344542ac7fd (inferior-lisp-buffer): Move defvar earlier.
Richard M. Stallman <rms@gnu.org>
parents: 3663
diff changeset
194 is determined by the global variable `inferior-lisp-buffer'. Suppose you
f344542ac7fd (inferior-lisp-buffer): Move defvar earlier.
Richard M. Stallman <rms@gnu.org>
parents: 3663
diff changeset
195 have three inferior Lisps running:
f344542ac7fd (inferior-lisp-buffer): Move defvar earlier.
Richard M. Stallman <rms@gnu.org>
parents: 3663
diff changeset
196 Buffer Process
f344542ac7fd (inferior-lisp-buffer): Move defvar earlier.
Richard M. Stallman <rms@gnu.org>
parents: 3663
diff changeset
197 foo inferior-lisp
f344542ac7fd (inferior-lisp-buffer): Move defvar earlier.
Richard M. Stallman <rms@gnu.org>
parents: 3663
diff changeset
198 bar inferior-lisp<2>
f344542ac7fd (inferior-lisp-buffer): Move defvar earlier.
Richard M. Stallman <rms@gnu.org>
parents: 3663
diff changeset
199 *inferior-lisp* inferior-lisp<3>
32367
7c181d033dae use lisp-mode-shared-map instead of shared-lisp-mode-map
Sam Steingold <sds@gnu.org>
parents: 30647
diff changeset
200 If you do a \\[lisp-eval-defun] command on some Lisp source code,
3744
f344542ac7fd (inferior-lisp-buffer): Move defvar earlier.
Richard M. Stallman <rms@gnu.org>
parents: 3663
diff changeset
201 what process do you send it to?
f344542ac7fd (inferior-lisp-buffer): Move defvar earlier.
Richard M. Stallman <rms@gnu.org>
parents: 3663
diff changeset
202
32367
7c181d033dae use lisp-mode-shared-map instead of shared-lisp-mode-map
Sam Steingold <sds@gnu.org>
parents: 30647
diff changeset
203 - If you're in a process buffer (foo, bar, or *inferior-lisp*),
3744
f344542ac7fd (inferior-lisp-buffer): Move defvar earlier.
Richard M. Stallman <rms@gnu.org>
parents: 3663
diff changeset
204 you send it to that process.
f344542ac7fd (inferior-lisp-buffer): Move defvar earlier.
Richard M. Stallman <rms@gnu.org>
parents: 3663
diff changeset
205 - If you're in some other buffer (e.g., a source file), you
f344542ac7fd (inferior-lisp-buffer): Move defvar earlier.
Richard M. Stallman <rms@gnu.org>
parents: 3663
diff changeset
206 send it to the process attached to buffer `inferior-lisp-buffer'.
f344542ac7fd (inferior-lisp-buffer): Move defvar earlier.
Richard M. Stallman <rms@gnu.org>
parents: 3663
diff changeset
207 This process selection is performed by function `inferior-lisp-proc'.
f344542ac7fd (inferior-lisp-buffer): Move defvar earlier.
Richard M. Stallman <rms@gnu.org>
parents: 3663
diff changeset
208
f344542ac7fd (inferior-lisp-buffer): Move defvar earlier.
Richard M. Stallman <rms@gnu.org>
parents: 3663
diff changeset
209 Whenever \\[inferior-lisp] fires up a new process, it resets
f344542ac7fd (inferior-lisp-buffer): Move defvar earlier.
Richard M. Stallman <rms@gnu.org>
parents: 3663
diff changeset
210 `inferior-lisp-buffer' to be the new process's buffer. If you only run
f344542ac7fd (inferior-lisp-buffer): Move defvar earlier.
Richard M. Stallman <rms@gnu.org>
parents: 3663
diff changeset
211 one process, this does the right thing. If you run multiple
f344542ac7fd (inferior-lisp-buffer): Move defvar earlier.
Richard M. Stallman <rms@gnu.org>
parents: 3663
diff changeset
212 processes, you can change `inferior-lisp-buffer' to another process
f344542ac7fd (inferior-lisp-buffer): Move defvar earlier.
Richard M. Stallman <rms@gnu.org>
parents: 3663
diff changeset
213 buffer with \\[set-variable].")
f344542ac7fd (inferior-lisp-buffer): Move defvar earlier.
Richard M. Stallman <rms@gnu.org>
parents: 3663
diff changeset
214
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 925
diff changeset
215 ;;;###autoload
62270
a5516bad2c77 (inferior-lisp-mode-hook, inferior-lisp-load-hook): Convert defcustoms
Luc Teirlinck <teirllm@auburn.edu>
parents: 61877
diff changeset
216 (defvar inferior-lisp-mode-hook '()
a5516bad2c77 (inferior-lisp-mode-hook, inferior-lisp-load-hook): Convert defcustoms
Luc Teirlinck <teirllm@auburn.edu>
parents: 61877
diff changeset
217 "*Hook for customising Inferior Lisp mode.")
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
218
17654
9005c1013176 (inferior-lisp-mode): Add a mode-class property.
Richard M. Stallman <rms@gnu.org>
parents: 14857
diff changeset
219 (put 'inferior-lisp-mode 'mode-class 'special)
9005c1013176 (inferior-lisp-mode): Add a mode-class property.
Richard M. Stallman <rms@gnu.org>
parents: 14857
diff changeset
220
32367
7c181d033dae use lisp-mode-shared-map instead of shared-lisp-mode-map
Sam Steingold <sds@gnu.org>
parents: 30647
diff changeset
221 (defun inferior-lisp-mode ()
7c181d033dae use lisp-mode-shared-map instead of shared-lisp-mode-map
Sam Steingold <sds@gnu.org>
parents: 30647
diff changeset
222 "Major mode for interacting with an inferior Lisp process.
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
223 Runs a Lisp interpreter as a subprocess of Emacs, with Lisp I/O through an
3663
25743b083fe8 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
224 Emacs buffer. Variable `inferior-lisp-program' controls which Lisp interpreter
25743b083fe8 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
225 is run. Variables `inferior-lisp-prompt', `inferior-lisp-filter-regexp' and
25743b083fe8 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
226 `inferior-lisp-load-command' can customize this mode for different Lisp
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
227 interpreters.
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
228
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
229 For information on running multiple processes in multiple buffers, see
3663
25743b083fe8 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
230 documentation for variable `inferior-lisp-buffer'.
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
231
835
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
232 \\{inferior-lisp-mode-map}
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
233
71143
12144c8b3b94 (inferior-lisp-mode): Doc fixes.
Luc Teirlinck <teirllm@auburn.edu>
parents: 68773
diff changeset
234 Customization: Entry to this mode runs the hooks on `comint-mode-hook' and
3663
25743b083fe8 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
235 `inferior-lisp-mode-hook' (in that order).
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
236
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
237 You can send text to the inferior Lisp process from other buffers containing
32367
7c181d033dae use lisp-mode-shared-map instead of shared-lisp-mode-map
Sam Steingold <sds@gnu.org>
parents: 30647
diff changeset
238 Lisp source.
71143
12144c8b3b94 (inferior-lisp-mode): Doc fixes.
Luc Teirlinck <teirllm@auburn.edu>
parents: 68773
diff changeset
239 `switch-to-lisp' switches the current buffer to the Lisp process buffer.
12144c8b3b94 (inferior-lisp-mode): Doc fixes.
Luc Teirlinck <teirllm@auburn.edu>
parents: 68773
diff changeset
240 `lisp-eval-defun' sends the current defun to the Lisp process.
12144c8b3b94 (inferior-lisp-mode): Doc fixes.
Luc Teirlinck <teirllm@auburn.edu>
parents: 68773
diff changeset
241 `lisp-compile-defun' compiles the current defun.
12144c8b3b94 (inferior-lisp-mode): Doc fixes.
Luc Teirlinck <teirllm@auburn.edu>
parents: 68773
diff changeset
242 `lisp-eval-region' sends the current region to the Lisp process.
12144c8b3b94 (inferior-lisp-mode): Doc fixes.
Luc Teirlinck <teirllm@auburn.edu>
parents: 68773
diff changeset
243 `lisp-compile-region' compiles the current region.
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
244
727
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
245 Prefixing the lisp-eval/compile-defun/region commands with
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
246 a \\[universal-argument] causes a switch to the Lisp process buffer after sending
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
247 the text.
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
248
71143
12144c8b3b94 (inferior-lisp-mode): Doc fixes.
Luc Teirlinck <teirllm@auburn.edu>
parents: 68773
diff changeset
249 Commands:\\<inferior-lisp-mode-map>
12144c8b3b94 (inferior-lisp-mode): Doc fixes.
Luc Teirlinck <teirllm@auburn.edu>
parents: 68773
diff changeset
250 \\[comint-send-input] after the end of the process' output sends the text from the
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
251 end of process to point.
71143
12144c8b3b94 (inferior-lisp-mode): Doc fixes.
Luc Teirlinck <teirllm@auburn.edu>
parents: 68773
diff changeset
252 \\[comint-send-input] before the end of the process' output copies the sexp ending at point
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
253 to the end of the process' output, and sends it.
71143
12144c8b3b94 (inferior-lisp-mode): Doc fixes.
Luc Teirlinck <teirllm@auburn.edu>
parents: 68773
diff changeset
254 \\[comint-copy-old-input] copies the sexp ending at point to the end of the process' output,
12144c8b3b94 (inferior-lisp-mode): Doc fixes.
Luc Teirlinck <teirllm@auburn.edu>
parents: 68773
diff changeset
255 allowing you to edit it before sending it.
12144c8b3b94 (inferior-lisp-mode): Doc fixes.
Luc Teirlinck <teirllm@auburn.edu>
parents: 68773
diff changeset
256 If `comint-use-prompt-regexp' is nil (the default), \\[comint-insert-input] on old input
12144c8b3b94 (inferior-lisp-mode): Doc fixes.
Luc Teirlinck <teirllm@auburn.edu>
parents: 68773
diff changeset
257 copies the entire old input to the end of the process' output, allowing
12144c8b3b94 (inferior-lisp-mode): Doc fixes.
Luc Teirlinck <teirllm@auburn.edu>
parents: 68773
diff changeset
258 you to edit it before sending it. When not used on old input, or if
12144c8b3b94 (inferior-lisp-mode): Doc fixes.
Luc Teirlinck <teirllm@auburn.edu>
parents: 68773
diff changeset
259 `comint-use-prompt-regexp' is non-nil, \\[comint-insert-input] behaves according to
12144c8b3b94 (inferior-lisp-mode): Doc fixes.
Luc Teirlinck <teirllm@auburn.edu>
parents: 68773
diff changeset
260 its global binding.
12144c8b3b94 (inferior-lisp-mode): Doc fixes.
Luc Teirlinck <teirllm@auburn.edu>
parents: 68773
diff changeset
261 \\[backward-delete-char-untabify] converts tabs to spaces as it moves back.
12144c8b3b94 (inferior-lisp-mode): Doc fixes.
Luc Teirlinck <teirllm@auburn.edu>
parents: 68773
diff changeset
262 \\[lisp-indent-line] indents for Lisp; with argument, shifts rest
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
263 of expression rigidly with the current line.
71143
12144c8b3b94 (inferior-lisp-mode): Doc fixes.
Luc Teirlinck <teirllm@auburn.edu>
parents: 68773
diff changeset
264 \\[indent-sexp] does \\[lisp-indent-line] on each line starting within following expression.
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
265 Paragraphs are separated only by blank lines. Semicolons start comments.
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
266 If you accidentally suspend your process, use \\[comint-continue-subjob]
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
267 to continue it."
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
268 (interactive)
62874
e179d5e9c0fe (inferior-lisp-mode): Use delay-mode-hooks.
Luc Teirlinck <teirllm@auburn.edu>
parents: 62772
diff changeset
269 (delay-mode-hooks
e179d5e9c0fe (inferior-lisp-mode): Use delay-mode-hooks.
Luc Teirlinck <teirllm@auburn.edu>
parents: 62772
diff changeset
270 (comint-mode))
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
271 (setq comint-prompt-regexp inferior-lisp-prompt)
835
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
272 (setq major-mode 'inferior-lisp-mode)
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
273 (setq mode-name "Inferior Lisp")
7075
7c7b98107b4c (inferior-lisp-mode): Remove space after `:' in mode-line-process.
Richard M. Stallman <rms@gnu.org>
parents: 6151
diff changeset
274 (setq mode-line-process '(":%s"))
835
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
275 (lisp-mode-variables t)
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
276 (use-local-map inferior-lisp-mode-map) ;c-c c-k for "kompile" file
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
277 (setq comint-get-old-input (function lisp-get-old-input))
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
278 (setq comint-input-filter (function lisp-input-filter))
62772
f2892faa87d4 * progmodes/ada-mode.el (ada-mode):
Lute Kamstra <lute@gnu.org>
parents: 62270
diff changeset
279 (run-mode-hooks 'inferior-lisp-mode-hook))
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
280
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
281 (defun lisp-get-old-input ()
3663
25743b083fe8 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
282 "Return a string containing the sexp ending at point."
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
283 (save-excursion
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
284 (let ((end (point)))
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
285 (backward-sexp)
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
286 (buffer-substring (point) end))))
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
287
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
288 (defun lisp-input-filter (str)
3663
25743b083fe8 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
289 "t if STR does not match `inferior-lisp-filter-regexp'."
835
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
290 (not (string-match inferior-lisp-filter-regexp str)))
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
291
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 925
diff changeset
292 ;;;###autoload
835
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
293 (defun inferior-lisp (cmd)
3663
25743b083fe8 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
294 "Run an inferior Lisp process, input and output via buffer `*inferior-lisp*'.
25743b083fe8 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
295 If there is a process already running in `*inferior-lisp*', just switch
835
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
296 to that buffer.
727
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
297 With argument, allows you to edit the command line (default is value
3663
25743b083fe8 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
298 of `inferior-lisp-program'). Runs the hooks from
25743b083fe8 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
299 `inferior-lisp-mode-hook' (after the `comint-mode-hook' is run).
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
300 \(Type \\[describe-mode] in the process buffer for a list of commands.)"
727
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
301 (interactive (list (if current-prefix-arg
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
302 (read-string "Run lisp: " inferior-lisp-program)
835
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
303 inferior-lisp-program)))
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
304 (if (not (comint-check-proc "*inferior-lisp*"))
28656
ebc349d16eb9 (inferior-lisp-mode): Don't set
Gerd Moellmann <gerd@gnu.org>
parents: 23700
diff changeset
305 (let ((cmdlist (split-string cmd)))
835
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
306 (set-buffer (apply (function make-comint)
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
307 "inferior-lisp" (car cmdlist) nil (cdr cmdlist)))
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
308 (inferior-lisp-mode)))
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
309 (setq inferior-lisp-buffer "*inferior-lisp*")
12868
8c777db02099 (inferior-lisp): Use pop-to-buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
310 (pop-to-buffer "*inferior-lisp*"))
8c777db02099 (inferior-lisp): Use pop-to-buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
311 ;;;###autoload (add-hook 'same-window-buffer-names "*inferior-lisp*")
835
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
312
3663
25743b083fe8 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
313 ;;;###autoload
25743b083fe8 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
314 (defalias 'run-lisp 'inferior-lisp)
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
315
727
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
316 (defun lisp-eval-region (start end &optional and-go)
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
317 "Send the current region to the inferior Lisp process.
3663
25743b083fe8 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
318 Prefix argument means switch to the Lisp buffer afterwards."
727
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
319 (interactive "r\nP")
835
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
320 (comint-send-region (inferior-lisp-proc) start end)
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
321 (comint-send-string (inferior-lisp-proc) "\n")
727
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
322 (if and-go (switch-to-lisp t)))
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
323
93823
11a95e2059c8 lisp-eval-defun & lisp-compile-defun: DEFVAR forms reset the variables
Sam Steingold <sds@gnu.org>
parents: 79717
diff changeset
324 (defun lisp-compile-string (string)
11a95e2059c8 lisp-eval-defun & lisp-compile-defun: DEFVAR forms reset the variables
Sam Steingold <sds@gnu.org>
parents: 79717
diff changeset
325 "Send the string to the inferior Lisp process to be compiled and executed."
11a95e2059c8 lisp-eval-defun & lisp-compile-defun: DEFVAR forms reset the variables
Sam Steingold <sds@gnu.org>
parents: 79717
diff changeset
326 (comint-send-string
11a95e2059c8 lisp-eval-defun & lisp-compile-defun: DEFVAR forms reset the variables
Sam Steingold <sds@gnu.org>
parents: 79717
diff changeset
327 (inferior-lisp-proc)
11a95e2059c8 lisp-eval-defun & lisp-compile-defun: DEFVAR forms reset the variables
Sam Steingold <sds@gnu.org>
parents: 79717
diff changeset
328 (format "(funcall (compile nil (lambda () %s)))\n" string)))
11a95e2059c8 lisp-eval-defun & lisp-compile-defun: DEFVAR forms reset the variables
Sam Steingold <sds@gnu.org>
parents: 79717
diff changeset
329
11a95e2059c8 lisp-eval-defun & lisp-compile-defun: DEFVAR forms reset the variables
Sam Steingold <sds@gnu.org>
parents: 79717
diff changeset
330 (defun lisp-eval-string (string)
11a95e2059c8 lisp-eval-defun & lisp-compile-defun: DEFVAR forms reset the variables
Sam Steingold <sds@gnu.org>
parents: 79717
diff changeset
331 "Send the string to the inferior Lisp process to be executed."
11a95e2059c8 lisp-eval-defun & lisp-compile-defun: DEFVAR forms reset the variables
Sam Steingold <sds@gnu.org>
parents: 79717
diff changeset
332 (comint-send-string (inferior-lisp-proc) (concat string "\n")))
11a95e2059c8 lisp-eval-defun & lisp-compile-defun: DEFVAR forms reset the variables
Sam Steingold <sds@gnu.org>
parents: 79717
diff changeset
333
11a95e2059c8 lisp-eval-defun & lisp-compile-defun: DEFVAR forms reset the variables
Sam Steingold <sds@gnu.org>
parents: 79717
diff changeset
334 (defun lisp-do-defun (do-string do-region)
727
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
335 "Send the current defun to the inferior Lisp process.
93823
11a95e2059c8 lisp-eval-defun & lisp-compile-defun: DEFVAR forms reset the variables
Sam Steingold <sds@gnu.org>
parents: 79717
diff changeset
336 The actually processing is done by `do-string' and `do-region'
11a95e2059c8 lisp-eval-defun & lisp-compile-defun: DEFVAR forms reset the variables
Sam Steingold <sds@gnu.org>
parents: 79717
diff changeset
337 which determine whether the code is compiled before evaluation.
11a95e2059c8 lisp-eval-defun & lisp-compile-defun: DEFVAR forms reset the variables
Sam Steingold <sds@gnu.org>
parents: 79717
diff changeset
338 DEFVAR forms reset the variables to the init values."
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
339 (save-excursion
727
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
340 (end-of-defun)
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
341 (skip-chars-backward " \t\n\r\f") ; Makes allegro happy
93823
11a95e2059c8 lisp-eval-defun & lisp-compile-defun: DEFVAR forms reset the variables
Sam Steingold <sds@gnu.org>
parents: 79717
diff changeset
342 (let ((end (point)) (case-fold-search t))
727
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
343 (beginning-of-defun)
93823
11a95e2059c8 lisp-eval-defun & lisp-compile-defun: DEFVAR forms reset the variables
Sam Steingold <sds@gnu.org>
parents: 79717
diff changeset
344 (if (looking-at "(defvar")
11a95e2059c8 lisp-eval-defun & lisp-compile-defun: DEFVAR forms reset the variables
Sam Steingold <sds@gnu.org>
parents: 79717
diff changeset
345 (funcall do-string
11a95e2059c8 lisp-eval-defun & lisp-compile-defun: DEFVAR forms reset the variables
Sam Steingold <sds@gnu.org>
parents: 79717
diff changeset
346 ;; replace `defvar' with `defparameter'
11a95e2059c8 lisp-eval-defun & lisp-compile-defun: DEFVAR forms reset the variables
Sam Steingold <sds@gnu.org>
parents: 79717
diff changeset
347 (concat "(defparameter "
11a95e2059c8 lisp-eval-defun & lisp-compile-defun: DEFVAR forms reset the variables
Sam Steingold <sds@gnu.org>
parents: 79717
diff changeset
348 (buffer-substring-no-properties (+ (point) 7) end)
11a95e2059c8 lisp-eval-defun & lisp-compile-defun: DEFVAR forms reset the variables
Sam Steingold <sds@gnu.org>
parents: 79717
diff changeset
349 "\n"))
11a95e2059c8 lisp-eval-defun & lisp-compile-defun: DEFVAR forms reset the variables
Sam Steingold <sds@gnu.org>
parents: 79717
diff changeset
350 (funcall do-region (point) end)))))
11a95e2059c8 lisp-eval-defun & lisp-compile-defun: DEFVAR forms reset the variables
Sam Steingold <sds@gnu.org>
parents: 79717
diff changeset
351
11a95e2059c8 lisp-eval-defun & lisp-compile-defun: DEFVAR forms reset the variables
Sam Steingold <sds@gnu.org>
parents: 79717
diff changeset
352 (defun lisp-eval-defun (&optional and-go)
11a95e2059c8 lisp-eval-defun & lisp-compile-defun: DEFVAR forms reset the variables
Sam Steingold <sds@gnu.org>
parents: 79717
diff changeset
353 "Send the current defun to the inferior Lisp process.
11a95e2059c8 lisp-eval-defun & lisp-compile-defun: DEFVAR forms reset the variables
Sam Steingold <sds@gnu.org>
parents: 79717
diff changeset
354 DEFVAR forms reset the variables to the init values.
11a95e2059c8 lisp-eval-defun & lisp-compile-defun: DEFVAR forms reset the variables
Sam Steingold <sds@gnu.org>
parents: 79717
diff changeset
355 Prefix argument means switch to the Lisp buffer afterwards."
11a95e2059c8 lisp-eval-defun & lisp-compile-defun: DEFVAR forms reset the variables
Sam Steingold <sds@gnu.org>
parents: 79717
diff changeset
356 (interactive "P")
11a95e2059c8 lisp-eval-defun & lisp-compile-defun: DEFVAR forms reset the variables
Sam Steingold <sds@gnu.org>
parents: 79717
diff changeset
357 (lisp-do-defun 'lisp-eval-string 'lisp-eval-region)
727
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
358 (if and-go (switch-to-lisp t)))
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
359
727
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
360 (defun lisp-eval-last-sexp (&optional and-go)
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
361 "Send the previous sexp to the inferior Lisp process.
3663
25743b083fe8 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
362 Prefix argument means switch to the Lisp buffer afterwards."
727
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
363 (interactive "P")
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
364 (lisp-eval-region (save-excursion (backward-sexp) (point)) (point) and-go))
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
365
727
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
366 (defun lisp-compile-region (start end &optional and-go)
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
367 "Compile the current region in the inferior Lisp process.
3663
25743b083fe8 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
368 Prefix argument means switch to the Lisp buffer afterwards."
727
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
369 (interactive "r\nP")
93823
11a95e2059c8 lisp-eval-defun & lisp-compile-defun: DEFVAR forms reset the variables
Sam Steingold <sds@gnu.org>
parents: 79717
diff changeset
370 (lisp-compile-string (buffer-substring-no-properties start end))
727
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
371 (if and-go (switch-to-lisp t)))
835
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
372
727
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
373 (defun lisp-compile-defun (&optional and-go)
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
374 "Compile the current defun in the inferior Lisp process.
93823
11a95e2059c8 lisp-eval-defun & lisp-compile-defun: DEFVAR forms reset the variables
Sam Steingold <sds@gnu.org>
parents: 79717
diff changeset
375 DEFVAR forms reset the variables to the init values.
3663
25743b083fe8 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
376 Prefix argument means switch to the Lisp buffer afterwards."
727
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
377 (interactive "P")
93823
11a95e2059c8 lisp-eval-defun & lisp-compile-defun: DEFVAR forms reset the variables
Sam Steingold <sds@gnu.org>
parents: 79717
diff changeset
378 (lisp-do-defun 'lisp-compile-string 'lisp-compile-region)
727
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
379 (if and-go (switch-to-lisp t)))
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
380
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
381 (defun switch-to-lisp (eob-p)
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
382 "Switch to the inferior Lisp process buffer.
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
383 With argument, positions cursor at end of buffer."
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
384 (interactive "P")
23700
3be52677d330 (switch-to-lisp): if no inferior lisp present, call
Karl Heuer <kwzh@gnu.org>
parents: 17654
diff changeset
385 (if (get-buffer-process inferior-lisp-buffer)
14857
eb23eca2abf9 (switch-to-lisp): Sometimes turn on pop-up-frames.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
386 (let ((pop-up-frames
eb23eca2abf9 (switch-to-lisp): Sometimes turn on pop-up-frames.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
387 ;; Be willing to use another frame
eb23eca2abf9 (switch-to-lisp): Sometimes turn on pop-up-frames.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
388 ;; that already has the window in it.
eb23eca2abf9 (switch-to-lisp): Sometimes turn on pop-up-frames.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
389 (or pop-up-frames
eb23eca2abf9 (switch-to-lisp): Sometimes turn on pop-up-frames.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
390 (get-buffer-window inferior-lisp-buffer t))))
eb23eca2abf9 (switch-to-lisp): Sometimes turn on pop-up-frames.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
391 (pop-to-buffer inferior-lisp-buffer))
23700
3be52677d330 (switch-to-lisp): if no inferior lisp present, call
Karl Heuer <kwzh@gnu.org>
parents: 17654
diff changeset
392 (run-lisp inferior-lisp-program))
3be52677d330 (switch-to-lisp): if no inferior lisp present, call
Karl Heuer <kwzh@gnu.org>
parents: 17654
diff changeset
393 (when eob-p
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
394 (push-mark)
23700
3be52677d330 (switch-to-lisp): if no inferior lisp present, call
Karl Heuer <kwzh@gnu.org>
parents: 17654
diff changeset
395 (goto-char (point-max))))
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
396
727
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
397
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
398 ;;; Now that lisp-compile/eval-defun/region takes an optional prefix arg,
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
399 ;;; these commands are redundant. But they are kept around for the user
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
400 ;;; to bind if he wishes, for backwards functionality, and because it's
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
401 ;;; easier to type C-c e than C-u C-c C-e.
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
402
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
403 (defun lisp-eval-region-and-go (start end)
3663
25743b083fe8 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
404 "Send the current region to the inferior Lisp, and switch to its buffer."
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
405 (interactive "r")
727
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
406 (lisp-eval-region start end t))
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
407
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
408 (defun lisp-eval-defun-and-go ()
3663
25743b083fe8 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
409 "Send the current defun to the inferior Lisp, and switch to its buffer."
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
410 (interactive)
727
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
411 (lisp-eval-defun t))
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
412
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
413 (defun lisp-compile-region-and-go (start end)
3663
25743b083fe8 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
414 "Compile the current region in the inferior Lisp, and switch to its buffer."
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
415 (interactive "r")
727
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
416 (lisp-compile-region start end t))
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
417
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
418 (defun lisp-compile-defun-and-go ()
3663
25743b083fe8 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
419 "Compile the current defun in the inferior Lisp, and switch to its buffer."
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
420 (interactive)
727
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
421 (lisp-compile-defun t))
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
422
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
423 ;;; A version of the form in H. Shevis' soar-mode.el package. Less robust.
835
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
424 ;;; (defun lisp-compile-sexp (start end)
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
425 ;;; "Compile the s-expression bounded by START and END in the inferior lisp.
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
426 ;;; If the sexp isn't a DEFUN form, it is evaluated instead."
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
427 ;;; (cond ((looking-at "(defun\\s +")
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
428 ;;; (goto-char (match-end 0))
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
429 ;;; (let ((name-start (point)))
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
430 ;;; (forward-sexp 1)
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
431 ;;; (process-send-string "inferior-lisp"
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
432 ;;; (format "(compile '%s #'(lambda "
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
433 ;;; (buffer-substring name-start
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
434 ;;; (point)))))
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
435 ;;; (let ((body-start (point)))
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
436 ;;; (goto-char start) (forward-sexp 1) ; Can't use end-of-defun.
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
437 ;;; (process-send-region "inferior-lisp"
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
438 ;;; (buffer-substring body-start (point))))
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
439 ;;; (process-send-string "inferior-lisp" ")\n"))
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
440 ;;; (t (lisp-eval-region start end)))))
32367
7c181d033dae use lisp-mode-shared-map instead of shared-lisp-mode-map
Sam Steingold <sds@gnu.org>
parents: 30647
diff changeset
441 ;;;
835
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
442 ;;; (defun lisp-compile-region (start end)
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
443 ;;; "Each s-expression in the current region is compiled (if a DEFUN)
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
444 ;;; or evaluated (if not) in the inferior lisp."
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
445 ;;; (interactive "r")
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
446 ;;; (save-excursion
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
447 ;;; (goto-char start) (end-of-defun) (beginning-of-defun) ; error check
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
448 ;;; (if (< (point) start) (error "region begins in middle of defun"))
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
449 ;;; (goto-char start)
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
450 ;;; (let ((s start))
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
451 ;;; (end-of-defun)
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
452 ;;; (while (<= (point) end) ; Zip through
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
453 ;;; (lisp-compile-sexp s (point)) ; compiling up defun-sized chunks.
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
454 ;;; (setq s (point))
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
455 ;;; (end-of-defun))
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
456 ;;; (if (< s end) (lisp-compile-sexp s end)))))
32367
7c181d033dae use lisp-mode-shared-map instead of shared-lisp-mode-map
Sam Steingold <sds@gnu.org>
parents: 30647
diff changeset
457 ;;;
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
458 ;;; End of HS-style code
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
459
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
460
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
461 (defvar lisp-prev-l/c-dir/file nil
3663
25743b083fe8 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
462 "Record last directory and file used in loading or compiling.
25743b083fe8 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
463 This holds a cons cell of the form `(DIRECTORY . FILE)'
25743b083fe8 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
464 describing the last `lisp-load-file' or `lisp-compile-file' command.")
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
465
61707
5a21477f3dd8 (inferior-lisp): New defgroup.
Luc Teirlinck <teirllm@auburn.edu>
parents: 52401
diff changeset
466 (defcustom lisp-source-modes '(lisp-mode)
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
467 "*Used to determine if a buffer contains Lisp source code.
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
468 If it's loaded into a buffer that is in one of these major modes, it's
3663
25743b083fe8 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
469 considered a Lisp source file by `lisp-load-file' and `lisp-compile-file'.
61707
5a21477f3dd8 (inferior-lisp): New defgroup.
Luc Teirlinck <teirllm@auburn.edu>
parents: 52401
diff changeset
470 Used by these commands to determine defaults."
5a21477f3dd8 (inferior-lisp): New defgroup.
Luc Teirlinck <teirllm@auburn.edu>
parents: 52401
diff changeset
471 :type '(repeat symbol)
5a21477f3dd8 (inferior-lisp): New defgroup.
Luc Teirlinck <teirllm@auburn.edu>
parents: 52401
diff changeset
472 :group 'inferior-lisp)
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
473
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
474 (defun lisp-load-file (file-name)
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
475 "Load a Lisp file into the inferior Lisp process."
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
476 (interactive (comint-get-source "Load Lisp file: " lisp-prev-l/c-dir/file
42205
7308bbc423d5 Doc fixes.
Pavel Janík <Pavel@Janik.cz>
parents: 32367
diff changeset
477 lisp-source-modes nil)) ; nil because LOAD
835
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
478 ; doesn't need an exact name
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
479 (comint-check-source file-name) ; Check to see if buffer needs saved.
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
480 (setq lisp-prev-l/c-dir/file (cons (file-name-directory file-name)
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
481 (file-name-nondirectory file-name)))
835
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
482 (comint-send-string (inferior-lisp-proc)
727
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
483 (format inferior-lisp-load-command file-name))
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
484 (switch-to-lisp t))
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
485
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
486
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
487 (defun lisp-compile-file (file-name)
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
488 "Compile a Lisp file in the inferior Lisp process."
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
489 (interactive (comint-get-source "Compile Lisp file: " lisp-prev-l/c-dir/file
42205
7308bbc423d5 Doc fixes.
Pavel Janík <Pavel@Janik.cz>
parents: 32367
diff changeset
490 lisp-source-modes nil)) ; nil = don't need
835
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
491 ; suffix .lisp
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
492 (comint-check-source file-name) ; Check to see if buffer needs saved.
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
493 (setq lisp-prev-l/c-dir/file (cons (file-name-directory file-name)
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
494 (file-name-nondirectory file-name)))
835
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
495 (comint-send-string (inferior-lisp-proc) (concat "(compile-file \""
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
496 file-name
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
497 "\"\)\n"))
727
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
498 (switch-to-lisp t))
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
499
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
500
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
501
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
502 ;;; Documentation functions: function doc, var doc, arglist, and
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
503 ;;; describe symbol.
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
504 ;;; ===========================================================================
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
505
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
506 ;;; Command strings
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
507 ;;; ===============
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
508
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
509 (defvar lisp-function-doc-command
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
510 "(let ((fn '%s))
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
511 (format t \"Documentation for ~a:~&~a\"
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
512 fn (documentation fn 'function))
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
513 (values))\n"
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
514 "Command to query inferior Lisp for a function's documentation.")
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
515
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
516 (defvar lisp-var-doc-command
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
517 "(let ((v '%s))
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
518 (format t \"Documentation for ~a:~&~a\"
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
519 v (documentation v 'variable))
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
520 (values))\n"
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
521 "Command to query inferior Lisp for a variable's documentation.")
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
522
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
523 (defvar lisp-arglist-command
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
524 "(let ((fn '%s))
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
525 (format t \"Arglist for ~a: ~a\" fn (arglist fn))
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
526 (values))\n"
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
527 "Command to query inferior Lisp for a function's arglist.")
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
528
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
529 (defvar lisp-describe-sym-command
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
530 "(describe '%s)\n"
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
531 "Command to query inferior Lisp for a variable's documentation.")
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
532
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
533
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
534 ;;; Ancillary functions
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
535 ;;; ===================
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
536
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
537 ;;; Reads a string from the user.
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
538 (defun lisp-symprompt (prompt default)
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
539 (list (let* ((prompt (if default
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
540 (format "%s (default %s): " prompt default)
835
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
541 (concat prompt ": ")))
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
542 (ans (read-string prompt)))
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
543 (if (zerop (length ans)) default ans))))
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
544
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
545
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
546 ;;; Adapted from function-called-at-point in help.el.
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
547 (defun lisp-fn-called-at-pt ()
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
548 "Returns the name of the function called in the current call.
3663
25743b083fe8 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
549 The value is nil if it can't find one."
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
550 (condition-case nil
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
551 (save-excursion
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
552 (save-restriction
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
553 (narrow-to-region (max (point-min) (- (point) 1000)) (point-max))
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
554 (backward-up-list 1)
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
555 (forward-char 1)
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
556 (let ((obj (read (current-buffer))))
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
557 (and (symbolp obj) obj))))
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
558 (error nil)))
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
559
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
560
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
561 ;;; Adapted from variable-at-point in help.el.
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
562 (defun lisp-var-at-pt ()
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
563 (condition-case ()
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
564 (save-excursion
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
565 (forward-sexp -1)
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
566 (skip-chars-forward "'")
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
567 (let ((obj (read (current-buffer))))
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
568 (and (symbolp obj) obj)))
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
569 (error nil)))
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
570
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
571
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
572 ;;; Documentation functions: fn and var doc, arglist, and symbol describe.
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
573 ;;; ======================================================================
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
574
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
575 (defun lisp-show-function-documentation (fn)
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
576 "Send a command to the inferior Lisp to give documentation for function FN.
3663
25743b083fe8 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
577 See variable `lisp-function-doc-command'."
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
578 (interactive (lisp-symprompt "Function doc" (lisp-fn-called-at-pt)))
835
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
579 (comint-proc-query (inferior-lisp-proc)
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
580 (format lisp-function-doc-command fn)))
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
581
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
582 (defun lisp-show-variable-documentation (var)
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
583 "Send a command to the inferior Lisp to give documentation for function FN.
3663
25743b083fe8 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
584 See variable `lisp-var-doc-command'."
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
585 (interactive (lisp-symprompt "Variable doc" (lisp-var-at-pt)))
835
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
586 (comint-proc-query (inferior-lisp-proc) (format lisp-var-doc-command var)))
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
587
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
588 (defun lisp-show-arglist (fn)
3663
25743b083fe8 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
589 "Send a query to the inferior Lisp for the arglist for function FN.
25743b083fe8 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
590 See variable `lisp-arglist-command'."
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
591 (interactive (lisp-symprompt "Arglist" (lisp-fn-called-at-pt)))
835
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
592 (comint-proc-query (inferior-lisp-proc) (format lisp-arglist-command fn)))
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
593
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
594 (defun lisp-describe-sym (sym)
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
595 "Send a command to the inferior Lisp to describe symbol SYM.
3663
25743b083fe8 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
596 See variable `lisp-describe-sym-command'."
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
597 (interactive (lisp-symprompt "Describe" (lisp-var-at-pt)))
835
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
598 (comint-proc-query (inferior-lisp-proc)
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
599 (format lisp-describe-sym-command sym)))
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
600
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
601
3663
25743b083fe8 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
602 ;; "Returns the current inferior Lisp process.
25743b083fe8 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
603 ;; See variable `inferior-lisp-buffer'."
835
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
604 (defun inferior-lisp-proc ()
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
605 (let ((proc (get-buffer-process (if (eq major-mode 'inferior-lisp-mode)
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
606 (current-buffer)
835
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
607 inferior-lisp-buffer))))
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
608 (or proc
5104
bcf4b8ed1c60 (inferior-lisp-proc): Clean up error message.
Richard M. Stallman <rms@gnu.org>
parents: 3744
diff changeset
609 (error "No Lisp subprocess; see variable `inferior-lisp-buffer'"))))
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
610
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
611
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
612 ;;; Do the user's customisation...
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
613 ;;;===============================
62270
a5516bad2c77 (inferior-lisp-mode-hook, inferior-lisp-load-hook): Convert defcustoms
Luc Teirlinck <teirllm@auburn.edu>
parents: 61877
diff changeset
614 (defvar inferior-lisp-load-hook nil
a5516bad2c77 (inferior-lisp-mode-hook, inferior-lisp-load-hook): Convert defcustoms
Luc Teirlinck <teirllm@auburn.edu>
parents: 61877
diff changeset
615 "This hook is run when the library `inf-lisp' is loaded.")
835
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
616
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
617 (run-hooks 'inferior-lisp-load-hook)
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
618
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
619 ;;; CHANGE LOG
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
620 ;;; ===========================================================================
835
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
621 ;;; 7/21/92 Jim Blandy
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
622 ;;; - Changed all uses of the cmulisp name or prefix to inferior-lisp;
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
623 ;;; this is now the official inferior lisp package. Use the global
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
624 ;;; ChangeLog from now on.
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
625 ;;; 5/24/90 Olin
32367
7c181d033dae use lisp-mode-shared-map instead of shared-lisp-mode-map
Sam Steingold <sds@gnu.org>
parents: 30647
diff changeset
626 ;;; - Split cmulisp and cmushell modes into separate files.
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
627 ;;; Not only is this a good idea, it's apparently the way it'll be rel 19.
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
628 ;;; - Upgraded process sends to use comint-send-string instead of
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
629 ;;; process-send-string.
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
630 ;;; - Explicit references to process "cmulisp" have been replaced with
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
631 ;;; (cmulisp-proc). This allows better handling of multiple process bufs.
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
632 ;;; - Added process query and var/function/symbol documentation
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
633 ;;; commands. Based on code written by Douglas Roberts.
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
634 ;;; - Added lisp-eval-last-sexp, bound to C-x C-e.
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
635 ;;;
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
636 ;;; 9/20/90 Olin
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
637 ;;; Added a save-restriction to lisp-fn-called-at-pt. This bug and fix
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
638 ;;; reported by Lennart Staflin.
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
639 ;;;
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
640 ;;; 3/12/90 Olin
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
641 ;;; - lisp-load-file and lisp-compile-file no longer switch-to-lisp.
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
642 ;;; Tale suggested this.
727
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
643 ;;; - Reversed this decision 7/15/91. You need the visual feedback.
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
644 ;;;
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
645 ;;; 7/25/91 Olin
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
646 ;;; Changed all keybindings of the form C-c <letter>. These are
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
647 ;;; supposed to be reserved for the user to bind. This affected
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
648 ;;; mainly the compile/eval-defun/region[-and-go] commands.
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
649 ;;; This was painful, but necessary to adhere to the gnumacs standard.
32367
7c181d033dae use lisp-mode-shared-map instead of shared-lisp-mode-map
Sam Steingold <sds@gnu.org>
parents: 30647
diff changeset
650 ;;; For some backwards compatibility, see the
727
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
651 ;;; cmulisp-install-letter-bindings
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
652 ;;; function.
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
653 ;;;
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
654 ;;; 8/2/91 Olin
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
655 ;;; - The lisp-compile/eval-defun/region commands now take a prefix arg,
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
656 ;;; which means switch-to-lisp after sending the text to the Lisp process.
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
657 ;;; This obsoletes all the -and-go commands. The -and-go commands are
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
658 ;;; kept around for historical reasons, and because the user can bind
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
659 ;;; them to key sequences shorter than C-u C-c C-<letter>.
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
660 ;;; - If M-x cmulisp is invoked with a prefix arg, it allows you to
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 662
diff changeset
661 ;;; edit the command line.
584
4cd7543be581 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 267
diff changeset
662
835
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
663 (provide 'inf-lisp)
584
4cd7543be581 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 267
diff changeset
664
93975
1e3a407766b9 Fix up comment convention on the arch-tag lines.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 93823
diff changeset
665 ;; arch-tag: 5b74abc3-a085-4b91-8ab8-8da6899d3b92
835
bb2da66da13c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 811
diff changeset
666 ;;; inf-lisp.el ends here