annotate lisp/eos/sun-eos-menubar.el @ 143:50e7fedfe353

Added tag r20-2b5 for changeset 1856695b1fa9
author cvs
date Mon, 13 Aug 2007 09:33:20 +0200
parents 376386a54a3c
children 538048ae2ab8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1 ;;; sun-eos-menu.el --- Implements the XEmacs/SPARCworks menubar
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3 ;; Copyright (C) 1995 Sun Microsystems, Inc.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
4
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
5 ;; Maintainer: Eduardo Pelegri-Llopart <eduardo.pelegri-llopart@Eng.Sun.COM>
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
6 ;; Author: Eduardo Pelegri-Llopart <eduardo.pelegri-llopart@Eng.Sun.COM>
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
7
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
8 ;; Keywords: SPARCworks EOS Era on SPARCworks menubar
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
9
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
10 ;;; Commentary:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
11 ;; This file contains functions that populate a SPARCworks menu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
12 ;; Please send feedback to eduardo.pelegri-llopart@eng.sun.com
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
13
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
14 ;;; Code:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
15
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
16 (require 'eos-common "sun-eos-common")
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
17
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
18 (defun eos::toggle-sbrowser-selected-frame ()
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
19 ;; Toggle whether this frame is selected for SBrowser
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
20 (interactive)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
21 (if (equal eos::sbrowser-frame (selected-frame))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
22 (eos::select-sbrowser-frame nil)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
23 (eos::select-sbrowser-frame (selected-frame)))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
24 )
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
25
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
26 (defun eos::toggle-debugger-selected-frame ()
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
27 ;; Toggle whether this frame is selected for Debugger
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
28 (interactive)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
29 (if (equal eos::debugger-frame (selected-frame))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
30 (eos::select-debugger-frame nil)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
31 (eos::select-debugger-frame (selected-frame)))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
32 )
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
33
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
34 (defvar eos::long-menu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
35 '(
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
36 ["Read and Execute a Dbx Command" eos::dbx-cmd (not (eq eos::key-mode 'none))]
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
37 ["Run" eos::run (not (eq eos::key-mode 'none))]
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
38 ["Fix" eos::fix (not (eq eos::key-mode 'none))]
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
39 "-----"
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
40 ["Print" eos::print (not (eq eos::key-mode 'none))]
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
41 ["Print *" eos::print* (not (eq eos::key-mode 'none))]
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
42 ["Dismiss Print" eos::dismiss-print-frame (not (eq eos::key-mode 'none))]
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
43 "-----"
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
44 ["Continue" eos::cont (not (eq eos::key-mode 'none))]
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
45 ["Stop" eos::stop-at (not (eq eos::key-mode 'none))]
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
46 ["Clear" eos::clear-at (not (eq eos::key-mode 'none))]
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
47 ["Next" eos::next (not (eq eos::key-mode 'none))]
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
48 ["Step" eos::step (not (eq eos::key-mode 'none))]
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
49 ["Step Up" eos::step-up (not (eq eos::key-mode 'none))]
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
50 ["Continue To" eos::cont-to (not (eq eos::key-mode 'none))]
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
51 "-----"
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
52 ["Stack Up" eos::up (not (eq eos::key-mode 'none))]
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
53 ["Stack Down" eos::down (not (eq eos::key-mode 'none))]
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
54 "-----"
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
55 ("Start Tool and Enable Frame"
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
56 ["Debugger" eos::start-debugger t]
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
57 ["Dbx" eos::start-dbx t]
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
58 ["SBrowser" eos::start-sbrowser t]
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
59 )
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
60 "-----"
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
61 ["Enable Frame for SBrowser"
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
62 eos::toggle-sbrowser-selected-frame
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
63 :style toggle
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
64 :selected (equal eos::sbrowser-frame
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
65 (selected-frame))]
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
66 ["Enable Frame for Debugger and Dbx"
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
67 eos::toggle-debugger-selected-frame
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
68 :style toggle
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
69 :selected (equal eos::debugger-frame
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
70 (selected-frame))]
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
71 "-----"
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
72 ["News..." eos::sw-news t]
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
73 )
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
74 )
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
75
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
76 (defvar eos::short-menu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
77 '(
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
78 ("Start Tool and Enable Frame"
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
79 ["Debugger" eos::start-debugger t]
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
80 ["Dbx" eos::start-dbx t]
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
81 ["SBrowser" eos::start-sbrowser t]
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
82 )
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
83 "-----"
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
84 ["Enable Frame for SBrowser"
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
85 eos::toggle-sbrowser-selected-frame
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
86 :style toggle
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
87 :selected (equal eos::sbrowser-frame
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
88 (selected-frame))]
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
89 ["Enable Frame for Debugger and Dbx"
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
90 eos::toggle-debugger-selected-frame
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
91 :style toggle
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
92 :selected (equal eos::debugger-frame
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
93 (selected-frame))]
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
94 "-----"
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
95 ["News..." eos::sw-news t]
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
96 )
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
97 )
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
98
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
99 (defun eos::menubar-startup ()
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
100 ;; Actions to do at startup for eos-menubar.el
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
101 (if (and (eq (device-type (selected-device)) 'x)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
102 (or (not (local-variable-p 'current-menubar (current-buffer)))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
103 (yes-or-no-p
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
104 "SPARCworks menu will be local (menubar is buffer-local); proceed?")))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
105 (progn
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
106 (add-menu-button '("Help") ["SPARCworks..." eos::sw-intro t])
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
107 (add-submenu nil
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
108 (append '("SPARCworks") (copy-tree eos::short-menu))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
109 "VC"
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
110 )
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
111 )))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
112
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
113 ;;
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
114 ;; Insertion of text with a font
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
115 ;;
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
116
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
117 (defun eos::insert-italics (a-string)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
118 (eos::insert-with-font a-string 'italic))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
119
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
120 (defun eos::insert-bold (a-string)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
121 (eos::insert-with-font a-string 'bold))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
122
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
123 (defun eos::insert-with-font (a-string a-font)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
124 (interactive "")
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
125 (let (a b ext)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
126 (setq a (point))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
127 (insert a-string)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
128 (setq b (point))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
129 (setq ext (make-extent a b))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
130 (set-extent-face ext (find-face a-font))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
131 ))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
132
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
133 ;;
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
134 ;; Generic insert code
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
135 ;;
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
136
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
137 (defun eos::insert (s)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
138 (let ((len (length s))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
139 (pos 0)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
140 (newpos 0)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
141 (state 'normal))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
142 (while (< pos len)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
143 (setq newpos (string-match "#[bnir]" s pos))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
144 (if (and newpos (> newpos pos))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
145 (progn
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
146 (cond ((equal (aref s (+ newpos 1)) ?b) ; bold
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
147 (if (equal state 'normal)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
148 (progn
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
149 (insert (substring s pos newpos))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
150 (setq state 'bold))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
151 (error "found bold when not in normal")))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
152 ((equal (aref s (+ newpos 1)) ?r) ; red
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
153 (if (equal state 'normal)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
154 (progn
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
155 (insert (substring s pos newpos))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
156 (setq state 'red))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
157 (error "found red when not in normal")))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
158 ((equal (aref s (+ newpos 1)) ?i) ; italics
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
159 (if (equal state 'normal)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
160 (progn
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
161 (insert (substring s pos newpos))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
162 (setq state 'italics))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
163 (error "found italics when not in normal")))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
164 ((equal (aref s (+ newpos 1)) ?n) ; normal
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
165 (cond ((equal state 'italics)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
166 (eos::insert-italics (substring s pos newpos))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
167 (setq state 'normal))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
168 ((equal state 'bold)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
169 (eos::insert-bold (substring s pos newpos))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
170 (setq state 'normal))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
171 ((equal state 'normal)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
172 (error "found normal when in normal"))))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
173 (t
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
174 (error "internal error"))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
175 )
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
176 (setq pos (+ newpos 2))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
177 )
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
178 (if (equal state 'normal)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
179 (progn
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
180 (insert (substring s pos))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
181 (setq pos len))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
182 (error "eos::insert with unclosed special font"))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
183 ))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
184 ))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
185
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
186 ;;
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
187 ;; Introduction File
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
188 ;;
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
189
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
190 (defun eos::sw-intro ()
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
191 "Generate an intro buffer."
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
192 (interactive)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
193 (let ((buffer1 (get-buffer-create " *SPARCworks Intro*"))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
194 )
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
195 (switch-to-buffer buffer1)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
196 (setq buffer-read-only nil)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
197 (delete-region (point-min) (point-max))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
198 (eos::insert "
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
199 #bSPARCworks Editor Integration#n
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
200 Eos is copyright (c) 1995 by Sun Microsystems.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
201
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
202 #bIntroduction (for Eos 1.5.x)#n
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
203
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
204 #iSPARCworks#n is a set of integrated programming tools from SunSoft that
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
205 support the program development cycle. #iXEmacs#n is a version of the Emacs
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
206 editor that includes interfaces to the selection service and to the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
207 #iToolTalk#n service. The #iEos#n package uses these two interfaces to provide
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
208 a simple yet useful editor integration with three SPARCworks tools:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
209 the #iSourceBrowser#n, the #iDebugger#n and #iDbx#n. Eos requires XEmacs 19.12
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
210 or above, and SW3.0.1 or above.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
211
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
212 When used with Eos, the Debugger and SourceBrowser do not include a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
213 source pane for displaying of sources and instead use an XEmacs frame.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
214 Then the user can interact with the XEmacs frame in a way very similar
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
215 to how the source panes of the SW tools would be used. The user can also
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
216 start Dbx and request that sources be shown in XEmacs.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
217
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
218 #bSimple Startup#n
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
219
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
220 In most cases, the user will start an interaction with Eos as follows:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
221
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
222 (1) Start XEmacs,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
223
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
224 (2) Load \"eos.el\" to add a SPARCworks submenu to the menubar (this
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
225 step might not be needed if Eos is preloaded to your XEmacs binary), and
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
226
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
227 (3) On some XEmacs frame use the SPARCworks submenu and start the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
228 desired tool and simultaneously enable that frame to display sources.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
229
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
230 The toolbar for the enabled frame will change after (3) to show that
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
231 this frame will behave as the source display for the SW tool and to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
232 indicate that some actions on the tool can be performed from this frame.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
233
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
234 The actions available depend on the SW tool. The interaction model for
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
235 the Debugger and the SourceBrowser can be described as #iselect on the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
236 XEmacs frame and then click on the button on the SW tool#n. As an example,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
237 a browser query can be performed by selecting some text and then clicking
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
238 on the query button on the SBrowser tool; the source for the first match
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
239 will appear in the XEmacs frame, together with a glyph showing the match.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
240
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
241 The Debugger and Dbx can also be driven from XEmacs. Most frequently
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
242 this will be done using the ToolBar. Entries in the toolbar of a frame
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
243 enabled for debugging are deactivated when there is not enough information
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
244 to invoke their associated commands (due to technical reasons, it is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
245 necessary for XEmacs to have had a frame enabled for Debugger/Dbx when
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
246 a debug or attach command was issued to Debugger/Dbx to make most toolbar
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
247 commands active). As an example, to set a breakpoint at some line, select
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
248 a position in that line and then click on the toolbar icon with the stop
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
249 with the arrow inside.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
250
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
251 #bDetails#n
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
252
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
253 #iManual Startup#n
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
254
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
255 In the scenario described above, the user simultaneously starts a tool
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
256 and enables a frame for that tool. The two actions can also be done
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
257 independently. The tools (Source Browser, Debugger, and Dbx) have to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
258 be started with the \"-editor\" option and the XEmacs frame can be
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
259 enabled manually using the SPARCworks submenu. The most common use
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
260 of this feature is to disable and re-enable a frame, be it to recover
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
261 the default toolbar, or to avoid conflicts with other active tools
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
262 (see the paragraph below on multiple active tools).
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
263
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
264 #iFrame Enabling#n
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
265
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
266 At any given time there can be at most one frame enabled to display
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
267 Source Browser sources, and at most one frame enabled to display
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
268 Debugger and Dbx sources. The same XEmacs frame can be used for both
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
269 types of sources. The toolbar of an enabled frame always starts with
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
270 an informational icon. This icon is a large-font #ii#n with either a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
271 smaller-font #iB#n, if the frame has browsing enabled, and/or a smaller-font
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
272 #iD#n, if the frame has debugging enabled.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
273
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
274 If no frames are enabled for a given tool, the editor integration for
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
275 that tool is disabled. This means that XEmacs deregisters the TT
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
276 patterns relevant to this tool, and XEmacs does not receive any
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
277 messages from that tool.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
278
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
279 #iMultiple Active Tools#n
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
280
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
281 In order to provide a simpler user model, Eos has no provisions to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
282 #igracefully#n support more than one simultaneous active tool of a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
283 given class per TT session. A Debugger and a SourceBrowser, or a Dbx
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
284 and a SourceBrowser, can coexist gracefully, but a Debugger and a Dbx
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
285 cannot, and neither can two SourceBrowsers, two Debuggers, or two
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
286 dbxs. This simplification is consistent with the needs of most users.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
287
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
288 The implementation of Eos notifies the user if she attempts to start two
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
289 conflicting tools, but it does not enforce the restriction. In some
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
290 cases two conflicting tools can be used profitably by a careful user,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
291 but in others the result is likely to be chaos. An example of the first
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
292 is using two SourceBrowsers, and one of the later is attempting to send
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
293 debugging commands from XEmacs to two debuggers.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
294
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
295 If a user really needs to have multiple active tools, she can do this
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
296 in a safe way by creating several TT sessions (e.g. using #ittsession
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
297 -c /bin/csh#n, see the man page for ttsession), and placing the tools
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
298 with their own XEmacses in separate TT sessions.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
299
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
300 #iA Visual Data Inspector in XEmacs#n
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
301
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
302 Users that choose to drive the debugger from XEmacs also have
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
303 available a #ivery simple#n but fast visual data inspector. The results
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
304 of #iprint#n and #iprint*#n commands are formatted into an XEmacs buffer
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
305 (#i\"*Eos Print Output*\"#n) and presented into a separate frame.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
306 This frame is mapped and unmapped so that, except for the first time,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
307 it appears quickly.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
308
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
309 #iBuffers for Debugger/Dbx Interaction#n
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
310
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
311 When starting dbx as a subprocess, a buffer will be created to interact
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
312 with dbx. The name of this buffer is of the form #i\"*Eos dbx*\"#n.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
313
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
314 If a dbx engine is receiving requests from both Debugger and XEmacs
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
315 (e.g. it was started via #idebugger -editor#n), the responses to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
316 commands sent by XEmacs will be shown in the echo area and will be
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
317 recorded in a read-only buffer (#i\"*Eos Debugger Log*\"#n), but responses
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
318 to Debugger commands will not appear. Conversely, responses to Debugger
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
319 commands will appear in the Debugger transcript pane but not in XEmacs's
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
320 log buffer. This is a limitation of the underlying TT protocols.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
321
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
322 #bTTY Support#n
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
323
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
324 Although tty support is not an official part of Eos, it is possible
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
325 with some extra effort and specialized knowledge from the user.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
326
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
327 #iStarting a ToolTalk Session#n
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
328
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
329 Eos requires a ToolTalk communication. This may require starting a TT
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
330 session by:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
331
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
332 (0) Start a ToolTalk session, and a shell so that all processes
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
333 started from this shell will use the new TT session. Do this by
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
334 executing \"ttsession -c /bin/csh\" - or whatever shell you use
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
335
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
336 At this point, you can start your XEmacs on that shell, as shown in
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
337 step (1) above. Note that, since there is no TTY toolbar in 19.12
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
338 (nor 19.13), an alternative mechanism must be used to enable the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
339 (tty) frame.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
340
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
341 A typical use for tty is to interact with dbx. The command
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
342 #ieos::start-dbx#n will select the tty frame for debugging and will start
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
343 a dbx buffer. From this point on, dbx will use this tty frame to show
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
344 its sources. The introduction and news messages can be generated
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
345 using the commands #ieos::sw-intro#n and #ieos::sw-news#n. You can interact
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
346 with the dbx subprocess by typing to its associated input buffer or
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
347 using some key bindings.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
348
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
349 #iKey Bindings#n
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
350
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
351 A tty user can interact with Eos by invoking directly the Eos
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
352 commands, evaluating elisp expressions, or through some key-bindings.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
353 The expert user may provide her own key bindings. Eos also provides two
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
354 set of global bindings, which are activated by evaluating the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
355 expressions (eos::set-key-mode 'prefix) or (eos::set-key-mode
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
356 'function).
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
357
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
358 #bKnown Bugs#n
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
359
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
360 Due to a bug in the internal subprocess machinery of XEmacs 19.12, the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
361 default prompt of dbx subprocesses will show the full path to the binary.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
362 The prompt can be overridden using the ksh variable PS1\; one way to do
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
363 this is by adding the following line to your ~/.dbxrc:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
364
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
365 PS1='(dbx) '
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
366
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
367 #bFeedback#n
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
368
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
369 You are encouraged to send us feedback via the Comments button in
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
370 the About Box of either SPARCworks tool, or directly to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
371 eos-comments@cs.uiuc.edu.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
372
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
373 #bEnjoy.#n")
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
374 (setq buffer-read-only t)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
375 (goto-char (point-min))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
376 (view-mode nil 'kill-buffer) ;; assume the new view-less
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
377 ))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
378
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
379 ;;
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
380 ;; Cheat Sheets for keyboard mappings
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
381 ;;
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
382 ;; This depends on the mapping being used!
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
383 ;;
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
384
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
385 (defun eos::sw-cheat-sheet ()
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
386 "Generate buffer that has a description of the key maps that can be
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
387 printed, cut and then taped somewhere (like on the keyboard or on your
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
388 monitor). This is particularly useful for the function keys"
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
389 (interactive)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
390 (let ((buffer1 (get-buffer-create " *Cheat Sheets*"))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
391 )
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
392 (switch-to-buffer buffer1)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
393 (setq buffer-read-only nil)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
394 (delete-region (point-min) (point-max))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
395 (eos::insert "
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
396 #bCheat Sheets for Eos#n
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
397
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
398 This buffer has a description of the key maps that can be printed, cut
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
399 and then taped somewhere (like on the keyboard or on your monitor).
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
400 This is particularly useful for the function keys since their numbers
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
401 don't any particular mnemonic value.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
402
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
403
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
404 #bWhen using function keys#n #i[Options->SPARCworks->Use Function Keys]#n
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
405
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
406 ----------------------------------------
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
407
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
408 F6 F7 F8 F9
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
409
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
410 Do Print Cont ---- Next
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
411 Run Print* Stop <Ctrl> Step
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
412 Fix Dismiss Clear <Shft> Step Up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
413
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
414
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
415 ----------------------------------------
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
416
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
417 #bWhen using prefix map#n #i[Options->SPARCworks->Use C-c d Prefix Map]#n
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
418
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
419 ----------------------------------------
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
420 Basic prefix: C-c d
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
421
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
422
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
423 Do %
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
424 Run r
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
425 Fix f
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
426
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
427 Print p
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
428 Print* C-p
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
429
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
430 Cont c
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
431 Stop b (for breakpoint)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
432 Clear C-b
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
433
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
434 Next n
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
435 Step s
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
436 Step up C-s
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
437
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
438 Up u
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
439 Down d
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
440 ----------------------------------------
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
441
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
442 ")
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
443 (setq buffer-read-only t)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
444 (goto-char (point-min))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
445 (view-mode nil 'kill-buffer) ;; assume the new view-less
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
446 ))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
447
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
448 ;;
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
449 ;; News files
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
450 ;;
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
451
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
452 (defun eos::sw-news ()
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
453 "Generate a News buffer."
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
454 (interactive)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
455 (let ((buffer1 (get-buffer-create " *Eos News*"))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
456 )
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
457 (switch-to-buffer buffer1)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
458 (setq buffer-read-only nil)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
459 (delete-region (point-min) (point-max))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
460 (eos::insert "
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
461 #bEos News#n
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
462
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
463 See the #iHelp#n top-level menu for additional information on the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
464 SPARCworks lightweight editor integration (Eos). The current version
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
465 of Eos is available as the contents of the variable eos::version.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
466
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
467 #bversion 1.5.2#n
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
468
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
469 Support for 19.12 and 19.13. Works on TTYs. Uses real ToolBar.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
470 Toolbars for debugger & content inspector are frame-local.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
471 Better icons and glyphs. Support for (load-library \"eos\").
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
472 Ease-of-use: startup for tools.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
473 Icon files are now defined \"in-line\" to simplify administration.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
474
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
475 Removed the following to simplify use:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
476 - Textual toolbar (from 1.4).
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
477 - Option submenu to add keymaps for debugger use.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
478 - Popup menu.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
479 - Any pretenses to support SW3.0; use SW3.0.1 instead.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
480
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
481 #bversion 1.4.1#n
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
482
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
483 Added eos::add-button interface.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
484
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
485 #bversion 1.4#n
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
486
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
487 Added toolbar like in dbxtool. Toolbar uses echo-help to show
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
488 meaning of buttons, (setq inhibit-help-echo t) if you don't
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
489 want it.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
490
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
491 Selection now remains after \"print\"-like commands. Now it
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
492 is possible to have the *debugger* buffer in the frame selected
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
493 for displaying debugged sources.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
494
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
495 Added a command to relayout debugger buffers so they show in
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
496 a layout similar to that of dbxtool.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
497
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
498 #bversion 1.3#n
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
499
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
500 Provided popup-menu bindings for those debugger actions
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
501 that operate on the contents of the selection or its position;
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
502 selectable via options.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
503
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
504 The *debugger* buffer now support M-p and M-n.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
505
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
506 #bversion 1.2#n
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
507
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
508 Better support for interactions via *debugger* buffer and directly
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
509 using a prefix map and function keys.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
510
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
511 Converted to use new toggle and radio menus, reorganizing
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
512 SPARCworks menu to factor out help and options into submenus,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
513 which are now available under the Options and Help top-level menus.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
514
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
515 #bversion 1.1#n
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
516
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
517 Some internal cleanup.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
518
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
519 Eos now provides basic machinery to drive the debugger
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
520 engine directly using ToolTalk messages. This feature is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
521 not yet very well polished. You can try using it at your own risk,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
522 or await for release 1.2 (soon to come) that will provide a better
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
523 interface and improved functionality, as well as documentation
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
524 for the interface.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
525
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
526 #bversion 1.0#n
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
527
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
528 First widely available release. Supports simple #iselect and click#n model.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
529
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
530 #bPossible Future Enhancements#n
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
531
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
532 * Add a \"peek-in-source\" mechanism to show the values of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
533 expressions in the sources.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
534
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
535 * The comint package should be generalized to allow for TT-based
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
536 interpreters and it should be used in Eos.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
537
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
538 * Key & popup bindings should probably be a minor mode (currently
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
539 it conflicts with cc-mode).
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
540
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
541 * Should support locking a print frame to force new print frames. Also,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
542 should allow for following fields in print frames.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
543
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
544
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
545 #bFeedback#n
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
546
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
547 Send feedback to #ieos-comments@cs.uiuc.edu#n")
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
548 (setq buffer-read-only t)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
549 (goto-char (point-min))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
550 (view-mode nil 'kill-buffer) ;; assume the new view-less
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
551 ))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
552
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
553 (provide 'eos-menubar)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
554
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
555 ;;; sun-eos-debugger.el ends here