Mercurial > emacs
annotate lisp/ledit.el @ 61263:56619c3aaf99
(fancy-splash-text): Shorten default text of
"Emacs Tutorial" line. Also, if the current language env
indicates an available tutorial file other than TUTORIAL,
extract its title and append it to the line in parentheses.
(fancy-splash-insert): If arg is a thunk, funcall it.
author | Thien-Thi Nguyen <ttn@gnuvola.org> |
---|---|
date | Mon, 04 Apr 2005 07:41:58 +0000 |
parents | 695cf19ef79e |
children | ff8adc9b90d0 375f2633d815 |
rev | line source |
---|---|
659
505130d1ddf8
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
269
diff
changeset
|
1 ;;; ledit.el --- Emacs side of ledit interface |
505130d1ddf8
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
269
diff
changeset
|
2 |
846
20674ae6bf52
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
811
diff
changeset
|
3 ;; Copyright (C) 1985 Free Software Foundation, Inc. |
20674ae6bf52
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
811
diff
changeset
|
4 |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
659
diff
changeset
|
5 ;; Maintainer: FSF |
38412
253f761ad37b
Some fixes to follow coding conventions in files maintained by FSF.
Pavel Janík <Pavel@Janik.cz>
parents:
32367
diff
changeset
|
6 ;; Keywords: languages |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
659
diff
changeset
|
7 |
36 | 8 ;; This file is part of GNU Emacs. |
9 | |
10 ;; GNU Emacs is free software; you can redistribute it and/or modify | |
11 ;; it under the terms of the GNU General Public License as published by | |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
659
diff
changeset
|
12 ;; the Free Software Foundation; either version 2, or (at your option) |
36 | 13 ;; any later version. |
14 | |
15 ;; GNU Emacs is distributed in the hope that it will be useful, | |
16 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
17 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
18 ;; GNU General Public License for more details. | |
19 | |
20 ;; You should have received a copy of the GNU General Public License | |
14169 | 21 ;; along with GNU Emacs; see the file COPYING. If not, write to the |
22 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, | |
23 ;; Boston, MA 02111-1307, USA. | |
36 | 24 |
2307
10e417efb12a
Added or corrected Commentary sections
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
923
diff
changeset
|
25 ;;; Commentary: |
10e417efb12a
Added or corrected Commentary sections
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
923
diff
changeset
|
26 |
10e417efb12a
Added or corrected Commentary sections
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
923
diff
changeset
|
27 ;; This is a major mode for editing Liszt. See etc/LEDIT for details. |
10e417efb12a
Added or corrected Commentary sections
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
923
diff
changeset
|
28 |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
659
diff
changeset
|
29 ;;; Code: |
36 | 30 |
31 ;;; To do: | |
32 ;;; o lisp -> emacs side of things (grind-definition and find-definition) | |
33 | |
34 (defvar ledit-mode-map nil) | |
35 | |
25416
851241b72ec9
(ledit-zap-file, ledit-read-file, ledit-compile-file):
Richard M. Stallman <rms@gnu.org>
parents:
18383
diff
changeset
|
36 (defconst ledit-zap-file |
851241b72ec9
(ledit-zap-file, ledit-read-file, ledit-compile-file):
Richard M. Stallman <rms@gnu.org>
parents:
18383
diff
changeset
|
37 (expand-file-name (concat (user-login-name) ".l1") temporary-file-directory) |
36 | 38 "File name for data sent to Lisp by Ledit.") |
25416
851241b72ec9
(ledit-zap-file, ledit-read-file, ledit-compile-file):
Richard M. Stallman <rms@gnu.org>
parents:
18383
diff
changeset
|
39 (defconst ledit-read-file |
851241b72ec9
(ledit-zap-file, ledit-read-file, ledit-compile-file):
Richard M. Stallman <rms@gnu.org>
parents:
18383
diff
changeset
|
40 (expand-file-name (concat (user-login-name) ".l2") temporary-file-directory) |
36 | 41 "File name for data sent to Ledit by Lisp.") |
32367
7c181d033dae
use lisp-mode-shared-map instead of shared-lisp-mode-map
Sam Steingold <sds@gnu.org>
parents:
25416
diff
changeset
|
42 (defconst ledit-compile-file |
25416
851241b72ec9
(ledit-zap-file, ledit-read-file, ledit-compile-file):
Richard M. Stallman <rms@gnu.org>
parents:
18383
diff
changeset
|
43 (expand-file-name (concat (user-login-name) ".l4") temporary-file-directory) |
36 | 44 "File name for data sent to Lisp compiler by Ledit.") |
45 (defconst ledit-buffer "*LEDIT*" | |
46 "Name of buffer in which Ledit accumulates data to send to Lisp.") | |
256 | 47 |
269 | 48 ;;;###autoload |
49 (defconst ledit-save-files t "\ | |
50 *Non-nil means Ledit should save files before transferring to Lisp.") | |
51 ;;;###autoload | |
52 (defconst ledit-go-to-lisp-string "%?lisp" "\ | |
53 *Shell commands to execute to resume Lisp job.") | |
54 ;;;###autoload | |
55 (defconst ledit-go-to-liszt-string "%?liszt" "\ | |
56 *Shell commands to execute to resume Lisp compiler job.") | |
36 | 57 |
58 (defun ledit-save-defun () | |
59 "Save the current defun in the ledit buffer" | |
60 (interactive) | |
61 (save-excursion | |
62 (end-of-defun) | |
63 (let ((end (point))) | |
64 (beginning-of-defun) | |
65 (append-to-buffer ledit-buffer (point) end)) | |
66 (message "Current defun saved for Lisp"))) | |
67 | |
68 (defun ledit-save-region (beg end) | |
69 "Save the current region in the ledit buffer" | |
70 (interactive "r") | |
71 (append-to-buffer ledit-buffer beg end) | |
72 (message "Region saved for Lisp")) | |
73 | |
74 (defun ledit-zap-defun-to-lisp () | |
214 | 75 "Carry the current defun to Lisp." |
36 | 76 (interactive) |
77 (ledit-save-defun) | |
78 (ledit-go-to-lisp)) | |
79 | |
80 (defun ledit-zap-defun-to-liszt () | |
214 | 81 "Carry the current defun to liszt." |
36 | 82 (interactive) |
83 (ledit-save-defun) | |
84 (ledit-go-to-liszt)) | |
85 | |
86 (defun ledit-zap-region-to-lisp (beg end) | |
214 | 87 "Carry the current region to Lisp." |
36 | 88 (interactive "r") |
89 (ledit-save-region beg end) | |
90 (ledit-go-to-lisp)) | |
91 | |
92 (defun ledit-go-to-lisp () | |
93 "Suspend Emacs and restart a waiting Lisp job." | |
94 (interactive) | |
95 (if ledit-save-files | |
96 (save-some-buffers)) | |
97 (if (get-buffer ledit-buffer) | |
98 (save-excursion | |
99 (set-buffer ledit-buffer) | |
100 (goto-char (point-min)) | |
101 (write-region (point-min) (point-max) ledit-zap-file) | |
102 (erase-buffer))) | |
103 (suspend-emacs ledit-go-to-lisp-string) | |
104 (load ledit-read-file t t)) | |
105 | |
106 (defun ledit-go-to-liszt () | |
107 "Suspend Emacs and restart a waiting Liszt job." | |
108 (interactive) | |
109 (if ledit-save-files | |
110 (save-some-buffers)) | |
111 (if (get-buffer ledit-buffer) | |
112 (save-excursion | |
113 (set-buffer ledit-buffer) | |
114 (goto-char (point-min)) | |
115 (insert "(declare (macros t))\n") | |
116 (write-region (point-min) (point-max) ledit-compile-file) | |
117 (erase-buffer))) | |
118 (suspend-emacs ledit-go-to-liszt-string) | |
119 (load ledit-read-file t t)) | |
120 | |
121 (defun ledit-setup () | |
214 | 122 "Set up key bindings for the Lisp/Emacs interface." |
32367
7c181d033dae
use lisp-mode-shared-map instead of shared-lisp-mode-map
Sam Steingold <sds@gnu.org>
parents:
25416
diff
changeset
|
123 (unless ledit-mode-map |
7c181d033dae
use lisp-mode-shared-map instead of shared-lisp-mode-map
Sam Steingold <sds@gnu.org>
parents:
25416
diff
changeset
|
124 (setq ledit-mode-map (make-sparse-keymap)) |
7c181d033dae
use lisp-mode-shared-map instead of shared-lisp-mode-map
Sam Steingold <sds@gnu.org>
parents:
25416
diff
changeset
|
125 (set-keymap-parent ledit-mode-map lisp-mode-shared-map)) |
36 | 126 (define-key ledit-mode-map "\e\^d" 'ledit-save-defun) |
127 (define-key ledit-mode-map "\e\^r" 'ledit-save-region) | |
128 (define-key ledit-mode-map "\^xz" 'ledit-go-to-lisp) | |
129 (define-key ledit-mode-map "\e\^c" 'ledit-go-to-liszt)) | |
130 | |
131 (ledit-setup) | |
132 | |
256 | 133 ;;;###autoload |
36 | 134 (defun ledit-mode () |
214 | 135 "\\<ledit-mode-map>Major mode for editing text and stuffing it to a Lisp job. |
36 | 136 Like Lisp mode, plus these special commands: |
214 | 137 \\[ledit-save-defun] -- record defun at or after point |
36 | 138 for later transmission to Lisp job. |
214 | 139 \\[ledit-save-region] -- record region for later transmission to Lisp job. |
140 \\[ledit-go-to-lisp] -- transfer to Lisp job and transmit saved text. | |
141 \\[ledit-go-to-liszt] -- transfer to Liszt (Lisp compiler) job | |
36 | 142 and transmit saved text. |
143 \\{ledit-mode-map} | |
144 To make Lisp mode automatically change to Ledit mode, | |
145 do (setq lisp-mode-hook 'ledit-from-lisp-mode)" | |
146 (interactive) | |
147 (lisp-mode) | |
148 (ledit-from-lisp-mode)) | |
149 | |
256 | 150 ;;;###autoload |
36 | 151 (defun ledit-from-lisp-mode () |
152 (use-local-map ledit-mode-map) | |
153 (setq mode-name "Ledit") | |
154 (setq major-mode 'ledit-mode) | |
155 (run-hooks 'ledit-mode-hook)) | |
659
505130d1ddf8
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
269
diff
changeset
|
156 |
18383 | 157 (provide 'ledit) |
158 | |
52401 | 159 ;;; arch-tag: f0f1ca13-8d31-478c-ae1b-b448c55a8faf |
659
505130d1ddf8
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
269
diff
changeset
|
160 ;;; ledit.el ends here |