annotate man/oo-browser.texi @ 132:757f1c4d15f7 xemacs-20-1

Added tag xemacs-20-1p4 for changeset 869e1851236b
author cvs
date Mon, 13 Aug 2007 09:29:09 +0200
parents 4be1180a9e89
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
76
c0c698873ce1 Import from CVS: tag r20-0b33
cvs
parents: 70
diff changeset
1 \input psfig.sty
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2 \input texinfo @c -*-texinfo-*-
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
4 @c
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
5 @c SUMMARY: The OO-Browser User Manual for V2
100
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
6 @c USAGE: Hardcopy man from TeX; Info man from `texinfo-format-buffer'.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
7 @c
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
8 @c AUTHOR: Bob Weiner
100
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
9 @c
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
10 @c ORG: InfoDock Associates. We sell corporate support and
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
11 @c development contracts for InfoDock, Emacs and XEmacs.
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
12 @c E-mail: <info@infodock.com> Web: http://www.infodock.com
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
13 @c Tel: +1 408-243-3300
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
14 @c
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
15 @c ORIG-DATE: 10-Apr-90
100
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
16 @c LAST-MOD: 21-Feb-97 at 18:36:33 by Bob Weiner
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
17 @c
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
18 @c DESCRIPTION:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
19 @c DESCRIP-END.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
20
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
21 @c %**start of header (This is for running Texinfo on a region.)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
22 @setfilename ../info/oo-browser.info
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
23 @settitle The OO-Browser User Manual
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
24 @c %**end of header (This is for running Texinfo on a region.)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
25 @synindex vr fn
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
26
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
27 @iftex
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
28 @finalout
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
29 @end iftex
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
30
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
31 @titlepage
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
32 @sp 4
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
33 @center @titlefont{The OO-Browser User Manual}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
34 @sp 1
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
35 @center The Multi-language Object-Oriented Code Browser
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
36 @sp 5
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
37 @center Bob Weiner
100
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
38 @center InfoDock Associates
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
39 @sp 1
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
40 @center E-mail: <oo-browser@@infodock.com> (This is a mailing list.)
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
41 @sp 2
100
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
42 @center Edition 2.10
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
43 @sp 2
100
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
44 @center February 19, 1997
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
45
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
46 @page
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
47 @vskip 0pt plus 1filll
100
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
48 Copyright @copyright{} 1989-1997 Free Software Foundation, Inc.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
49
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
50 All trademarks referenced herein are trademarks of their respective
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
51 holders.
100
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
52
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
53 InfoDock Associates, the developer of the OO-Browser and InfoDock (an
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
54 industrial quality turn-key version of XEmacs), donates its work on
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
55 the OO-Browser to the Free Software Foundation and makes it freely
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
56 available for worldwide distribution.
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
57
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
58 InfoDock Associates is a commercial firm dedicated to radical productivity
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
59 improvement in technical environments, whether in software development or
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
60 other knowledge intensive disciplines. Our initial offerings include high
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
61 quality commercial support, training, books and custom package development
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
62 for InfoDock, XEmacs or GNU Emacs on a variety of platforms.
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
63
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
64 @example
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
65 E-mail: <info@@infodock.com>
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
66 Web: http://www.infodock.com
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
67 Tel: +1 408-243-3300
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
68 @end example
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
69
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
70 @setchapternewpage on
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
71 @end titlepage
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
72 @page
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
73
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
74 @node Top, Introduction, (dir), (dir)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
75 @c node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
76 @unnumbered Preface
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
77
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
78 @ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
79 @noindent
100
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
80 Copyright @copyright{} 1989-1997 Free Software Foundation, Inc.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
81
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
82 All trademarks referenced herein are trademarks of their respective holders.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
83
100
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
84 InfoDock Associates, the developer of the OO-Browser and InfoDock (an
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
85 industrial quality turn-key version of XEmacs), donates its work on
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
86 the OO-Browser to the Free Software Foundation and makes it freely
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
87 available for worldwide distribution.
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
88
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
89 InfoDock Associates is a commercial firm dedicated to radical productivity
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
90 improvement in technical environments, whether in software development or
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
91 other knowledge intensive disciplines. Our initial offerings include high
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
92 quality commercial support, training, books and custom package development
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
93 for InfoDock, XEmacs or GNU Emacs on a variety of platforms.
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
94
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
95 @example
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
96 E-mail: <info@@infodock.com>
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
97 Web: http://www.infodock.com
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
98 Tel: +1 408-243-3300
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
99 @end example
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
100
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
101 @end ifinfo
100
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
102
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
103 This edition of the OO-Browser User Manual is for use with any version
100
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
104 2.10 or greater of the OO-Browser. The OO-Browser is available for
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
105 free use, distribution, and modification under the terms of version 2 or
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
106 later of the GNU Public License (GPL). No representations are made
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
107 about the suitability of this software for any purpose. It is provided
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
108 "as is" without express or implied warranty.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
109
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
110 @cindex credits
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
111 @cindex InfoDock, obtaining
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
112 @cindex OO-Browser, obtaining
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
113 @cindex anonymous ftp
100
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
114 The OO-Browser was designed and written by Bob Weiner of InfoDock
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
115 Associates. Motorola, Inc@. help fund early work. Torgeir Veimo and
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
116 Mark Stern helped write the X OO-Browser core. Don Yacktman helped
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
117 write the NEXTSTEP OO-Browser core. Jeff Sparkes helped with the Java
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
118 language support. Harri Pasanen helped with the Python language
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
119 support.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
120
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
121 @vindex file, BR-README
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
122 @cindex README file
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
123 @cindex installation
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
124 The OO-Browser and InfoDock can be obtained via anonymous ftp on the
100
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
125 Internet from: @file{ftp://ftp.xemacs.org/pub/infodock}.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
126 Installation instructions for the OO-Browser can be found in the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
127 @file{BR-README} file in the OO-Browser distribution.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
128
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
129 This manual documents the user interface and operation of the OO-Browser
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
130 multi-language browser. It assumes a very basic familiarity in the use
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
131 of the GNU Emacs editor as documented in @cite{[Stallman 87]}. It also
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
132 assumes familiarity with object-oriented software concepts. However,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
133 many technical terms used in this manual are given precise meaning in
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
134 the glossary. @xref{Glossary}. The OO-Browser is meant to be easy to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
135 use, so you can point and click to use it, rather than learning all of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
136 the key stroke commands.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
137
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
138 Chapter 1 of the manual focuses on OO-Browser Environments to provide
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
139 the reader with a picture of how to organize work for use with the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
140 OO-Browser (@pxref{Environments,,Working with Environments}).
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
141 @xref{Usage,,Using the OO-Browser}, if you would rather start with the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
142 interactive features of the browser. @xref{Features,,OO-Browser
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
143 Features}, for a quick overview of the browser's features.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
144
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
145 Throughout this manual, sequences of key strokes are delimited by braces,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
146 @{@}, command names are delimited by parentheses, (), and variable names
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
147 are emphasized.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
148
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
149 We hope that you enjoy using the OO-Browser and that it improves your
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
150 productivity.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
151
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
152 @menu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
153 * Introduction:: Introduction
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
154 * Environments:: Working with Environments
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
155 * Usage:: Using the OO-Browser
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
156 * Options:: OO-Browser Options
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
157 * Customization:: Personal Customization
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
158 * Standalone:: Using Standalone OO-Browser Features
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
159 * Languages:: Language-Specific Notes
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
160 * Features:: OO-Browser Features
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
161 * Commands:: OO-Browser Command Descriptions
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
162 * Glossary:: Glossary
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
163 * References:: References
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
164 * Keys:: Key Binding Index
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
165 * Command Index:: Command and Variable Index
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
166 * Concepts:: Concept Index
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
167
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
168 --- The Detailed Node Listing ---
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
169
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
170 Working with Environments
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
171
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
172 * Creating Environments::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
173 * Building Environments::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
174 * Loading Environments::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
175 * Saving Environments::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
176
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
177 Using the OO-Browser
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
178
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
179 * Invoking:: Invoking the OO-Browser
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
180 * Top-Level Classes:: Displaying Top-Level Classes
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
181 * Moving to Entries::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
182 * Saving Listings:: Writing a Listing to a File
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
183 * Children and Parents:: Browsing Children and Parents
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
184 * Descendants and Ancestors:: Browsing Descendants and Ancestors
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
185 * Viewing and Editing:: Viewing and Editing Classes
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
186 * Browsing Elements::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
187 * Browsing Categories::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
188 * Browsing Protocols::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
189 * Browsing Implementors::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
190 * Exiting a Listing::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
191 * Quitting and Refreshing:: Quitting and Refreshing the OO-Browser
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
192 * Using the Mouse::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
193 * Getting Help::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
194 * Locating Entries::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
195 * Filtering Entries::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
196 * Ordering Entries::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
197 * Statistics:: Environment and Class Summaries
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
198 * Class Info:: Language-Specific Class Information
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
199 * Adding and Deleting Classes::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
200 * Completing Names::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
201 * Graphical Browsing:: Graphical OO-Browser Interfaces
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
202
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
203 OO-Browser Options
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
204
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
205 * External Viewing:: Using An External Viewer or Editor
100
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
206 * Inherited Features:: Toggling Inherited Feature Display
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
207 * Graphical Add Features:: Add Features to a Graphical View
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
208 * Keep Viewed Classes::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
209 * Inhibit Version:: Inhibit Version Screen
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
210 * Invert Ancestors:: Invert Ancestor Trees
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
211 * Save All:: Save All Lookup Tables
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
212 * Use Children:: Build Children Lookup Table
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
213 * Sort Options:: Controlling Class Listing Order
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
214
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
215 Language-Specific Notes
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
216
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
217 * C Specifics::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
218 * C++ Specifics::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
219 * CLOS Specifics::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
220 * Eiffel Specifics::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
221 * Java Specifics::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
222 * Objective-C Specifics::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
223 * Python Specifics::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
224
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
225 C++ Specifics
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
226
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
227 * C++ Element Selection:: Source Code Element Selection
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
228 * C++ Settings::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
229
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
230 CLOS Specifics
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
231
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
232 * CLOS Method Handling:: Method Handling
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
233 * CLOS Settings::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
234
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
235 Eiffel Specifics
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
236
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
237 * Eiffel Listings::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
238 * Eiffel Element Selection:: Source Code Element Selection
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
239 * Eiffel Settings::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
240
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
241 Objective-C Specifics
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
242
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
243 * Objective-C Categories::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
244 * Objective-C Protocols::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
245 * Objective-C Element Selection:: Source Code Element Selection
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
246 * Objective-C Settings::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
247
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
248 Python Specifics
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
249
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
250 * Python Module Lookup:: Source Code Element Selection
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
251 * Python Settings::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
252
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
253 @end menu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
254
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
255 @node Introduction, Environments, Top, Top
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
256 @c node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
257 @unnumbered Introduction
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
258
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
259 @cindex OO-Browser
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
260 @cindex Smalltalk
100
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
261 The @dfn{OO-Browser} (pronounced owe-owe-browse-er) is a multi-windowed,
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
262 interactive, object-oriented class browser designed for professional
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
263 use. Its user interface is similar to the well-known Smalltalk browsers
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
264 @cite{[Goldberg 83]}, yet it is much more flexible and easy to use.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
265
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
266 @cindex Eiffel
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
267 @cindex C++
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
268 @cindex C
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
269 @cindex Objective-C
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
270 @cindex CLOS
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
271 @cindex Python
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
272 @cindex Smalltalk
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
273 @cindex Info
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
274 @noindent
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
275 The OO-Browser is unique in several respects:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
276 @itemize @bullet
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
277 @item
100
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
278 It currently supports seven object-oriented languages (C++, CLOS (Lisp),
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
279 Eiffel, Java, Objective-C, Python and Smalltalk), one
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
280 non-object-oriented language (C), and one documentation language, (GNU
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
281 Info).
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
282
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
283 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
284 It may be used for both system exploration and for browsing purposes as
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
285 part of a professional software development tool chest.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
286
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
287 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
288 It quickly displays and provides views of complicated inheritance trees,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
289 making it an important tool for understanding object-oriented systems.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
290
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
291 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
292 It has a completely direct-manipulation interface with multiple modalities.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
293
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
294 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
295 It is integrated with a powerful editing environment that can be
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
296 customized to meet personal work styles.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
297 @end itemize
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
298
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
299 @cindex listing buffer
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
300 @cindex listing window
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
301 @cindex viewer window
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
302 @cindex user interface
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
303 The picture on the following page highlights the major components of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
304 the OO-Browser user interface. (If you are reading the online Info
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
305 version of this manual, see the last paragraph of this node for a link
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
306 to the aforementioned picture.)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
307
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
308 The windows across the top of the OO-Browser frame are called @dfn{class
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
309 listing windows}; they display @dfn{listing buffers} with a single class
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
310 name per line. The @dfn{viewer window} fills the bottom half of the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
311 frame. It is used to display class source and summary information. It
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
312 is also used to display help on the OO-Browser command set. Pictured
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
313 here in the viewer window is part of the browser help buffer,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
314 summarizing its command key bindings.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
315
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
316 All key bindings described throughout this manual are effective only
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
317 within listing buffers, unless otherwise indicated. This means
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
318 that the keys may not be used within the buffers displayed in the class
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
319 viewer window. Instead, all normal editing keys are available in most
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
320 buffers displayed in the viewer window.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
321
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
322 @cindex textual interface
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
323 @iftex
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
324 @sp 2
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
325 @centerline{@psfig{figure=im/oobr-text.eps}}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
326 @end iftex
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
327 @ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
328 Mouse click on the following filename to view a picture of
100
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
329 the textual OO-Browser: @file{im/oobr-text.eps}. Under InfoDock, use the
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
330 middle mouse button. Under Emacs with the Hyperbole system loaded, use
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
331 the shift-middle mouse button or shift-left on a two button mouse.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
332 Otherwise, there is no built-in way to view the picture.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
333 @end ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
334
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
335 @node Environments, Usage, Introduction, Top
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
336 @c node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
337 @chapter Working with Environments
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
338
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
339 @cindex Environment, the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
340 @cindex Library search list
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
341 @cindex System search list
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
342 Whenever the OO-Browser is in use, an Environment is selected. An
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
343 Environment may be built or simply specified. An @dfn{Environment
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
344 specification} tells the browser what to include in the construction of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
345 an Environment. (@xref{Creating Environments}, for more information.)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
346 An OO-Browser @dfn{Environment} includes a set of inter-class
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
347 relationships together with a few browser settings. The phrase,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
348 @dfn{the Environment}, refers to the current OO-Browser Environment.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
349 Many browser commands depend on information in the Environment.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
350
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
351 The set of classes included in an Environment is specified by two lists
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
352 of directories, below which all of the Environment's class source files
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
353 are to be found. (The OO-Browser will automatically search
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
354 sub-directories below the directories specified.) The first list of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
355 directories is called the @dfn{Library search list}; it defines the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
356 locations of stable, typically reusable classes that have been released
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
357 for general use. The second list is called the @dfn{System search
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
358 list}; it defines the locations of unreleased classes being developed,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
359 often for a particular system. All class names within a single
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
360 Environment must be unique to ensure proper operation of the browser.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
361
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
362 The OO-Browser lets one create, update and save Environments. Once an
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
363 Environment file has been created, it may be loaded at any time. The
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
364 browser will then use this Environment for all of its operations until
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
365 another one is loaded.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
366
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
367 The browser maintains a separate Environment for each programming
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
368 language on which it is used. Thus, if one switches from Eiffel to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
369 C++ browsing and then back to Eiffel browsing, the Eiffel environment
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
370 will not need to be reloaded; it will appear immediately and the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
371 frame will appear as if the Eiffel OO-Browser were invoked for the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
372 first time.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
373
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
374 @cindex Environment, default
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
375 The recommended default name for Environment files is, @file{OOBR}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
376 We recommend that you store each Environment in the top-level directory
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
377 of the first system pathname in the Environment, i.e@. the root
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
378 directory of a system's code.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
379
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
380 Environment files are automatically created and loaded by the OO-Browser
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
381 so that you need never become familiar with their format. You are
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
382 responsible for remembering which Environment files you create and for
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
383 requesting their use whenever desired. @xref{Invoking,,Invoking the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
384 OO-Browser}, for information on how to specify a different Environment
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
385 file for use.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
386
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
387 @menu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
388 * Creating Environments::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
389 * Building Environments::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
390 * Loading Environments::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
391 * Saving Environments::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
392 @end menu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
393
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
394
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
395 @node Creating Environments, Building Environments, Environments, Environments
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
396 @c node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
397 @section Creating Environments
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
398
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
399 @cindex Environment specification
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
400 Environment specifications are useful when one wants to describe a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
401 number of Environments to the OO-Browser but wants to defer their
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
402 construction until later. Large environments then can be built
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
403 overnight. @xref{Building Environments}, for more information.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
404
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
405 @kindex C-c C-c
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
406 @findex br-env-create
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
407 @cindex initialization file
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
408 Every Environment must be specified before it can be built or used.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
409 Thus, specifying an Environment is the first step in creating it.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
410 Environment specifications are created with the @{@kbd{C-c C-c}@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
411 @code{(br-env-create)} command, which prompts for all necessary
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
412 information. This command may be invoked repeatedly to quickly specify
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
413 a number of different Environments.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
414
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
415 @noindent
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
416 Here are the Environment specification components for which you will be
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
417 prompted:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
418 @table @code
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
419 @item System search directories
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
420 List of directories below which other System directories containing
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
421 class source code and directories of class source files may be found.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
422
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
423 @item Library search directories
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
424 List of directories below which Library files of class source code
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
425 and directories of class source files may be found.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
426
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
427 @emph{EIFFEL NOTE: We strongly suggest that if you have previous
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
428 versions of library class source below any of these directories, that
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
429 you move them elsewhere, e.g. ISE's Eiffel version "2.1" directory of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
430 source. These will cause class naming conflicts that the browser will
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
431 not resolve to your satisfaction. The basic rule is that every class
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
432 name within a single Environment should be unique. Use @{@kbd{M-e}@} to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
433 help find duplicate classes.}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
434 @end table
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
435
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
436
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
437 @node Building Environments, Loading Environments, Creating Environments, Environments
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
438 @c node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
439 @section Building Environments
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
440
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
441 @cindex Environment building
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
442 An Environment specification tells the OO-Browser what to include in the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
443 Environment, but the Environment still must be built before use. When a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
444 new Environment must be built or when a large number of changes have
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
445 been made to classes in the Environment, the following commands are
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
446 useful:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
447
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
448 @findex br-env-rebuild
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
449 @findex br-lib-rebuild
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
450 @findex br-sys-rebuild
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
451 @kindex C-c C-e
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
452 @kindex L
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
453 @kindex S
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
454 @table @kbd
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
455 @item @{C-c C-e@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
456 build all Env classes @code{(br-env-rebuild)} (This prompts for whether
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
457 or not to use a background process to build the Environment.)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
458 @item @{L@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
459 build Env Library classes only @code{(br-lib-rebuild)}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
460 @item @{S@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
461 build Env System classes only @code{(br-sys-rebuild)}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
462 @end table
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
463
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
464
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
465 When class names or locations have changed or the Environment's
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
466 inheritance structure is modified, the Environment must be rebuilt. For
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
467 small Environment changes, one may use the class addition and deletion
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
468 features of the browser. @xref{Adding and Deleting Classes}, for more
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
469 information.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
470
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
471 @cindex Environment building, batch
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
472 @cindex large Environments
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
473 The OO-Browser lets you build large environments in the background so
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
474 you can go on to other work while waiting on a build. When the build is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
475 complete, it will ask you whether you want to browse the built Environment.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
476
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
477 Alternatively, very large Environments may be built overnight by
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
478 invoking Emacs in batch mode at a scheduled time. To do this, you must
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
479 first create an Environment specification so that the browser knows what
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
480 to build. @xref{Creating Environments}. Then use a shell command
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
481 line of the form below (substitute your local OO-Browser installation
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
482 directory for @emph{<BR-DIR>}):@*
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
483 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
484 emacs -batch -l <BR-DIR>/br-start.el @emph{Env-Spec-File} \
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
485 ... @emph{Spec File} -f br-env-batch-build > log-file
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
486 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
487 @noindent
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
488 for example:@*
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
489 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
490 emacs -batch -l br-start.el OOBR -f br-env-batch-build > log-file
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
491 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
492
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
493 Typically when using the above command line, one should redirect
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
494 the standard output stream to a log file for later examination, as is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
495 done in the above example. This helps ensure that either the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
496 Environment built successfully or a message indicating the cause of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
497 failure is provided.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
498
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
499 @node Loading Environments, Saving Environments, Building Environments, Environments
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
500 @c node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
501 @section Loading Environments
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
502
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
503 @cindex Environment loading
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
504 @cindex loading an Environment
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
505 @kindex C-c C-o
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
506 @findex oo-browser command
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
507 @vindex br-env-default-file
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
508 @vindex file, OOBR
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
509 @cindex default Environment
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
510 A new Environment may be loaded for use at any time within the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
511 OO-Browser. One may either select the load Environment command from the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
512 OO-Browser command summary or may use the @{@kbd{C-c C-o}@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
513 @code{(oo-browser)} command to select a language and environment to load.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
514 When prompted for the Environment file to load or create, an immediate
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
515 @{@key{RET}@} will browse the most recently loaded Environment, if any.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
516 Otherwise, it will create and load the Environment file in the current
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
517 directory whose name is given by the @var{br-env-default-file} variable
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
518 (default is @file{OOBR}).
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
519
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
520 @node Saving Environments, , Loading Environments, Environments
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
521 @c node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
522 @section Saving Environments
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
523
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
524 The OO-Browser automatically builds and saves Environments in most
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
525 cases. Occasionally one may find a need to force the Environment to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
526 be saved to a file, as in the case when one wants to save an Environment
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
527 under a different file name.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
528
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
529 @kindex C-c C-s
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
530 @findex br-env-save
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
531 Use @{@kbd{C-c C-s}@}, the @code{(br-env-save)} command to force an
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
532 Environment save to occur. The command will prompt for a file to save
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
533 to, with the default as the current Environment file name.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
534
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
535
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
536 @node Usage, Options, Environments, Top
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
537 @c node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
538 @chapter Using the OO-Browser
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
539
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
540 @menu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
541 * Invoking:: Invoking the OO-Browser
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
542 * Top-Level Classes:: Displaying Top-Level Classes
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
543 * Moving to Entries::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
544 * Saving Listings:: Writing a Listing to a File
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
545 * Children and Parents:: Browsing Children and Parents
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
546 * Descendants and Ancestors:: Browsing Descendants and Ancestors
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
547 * Viewing and Editing:: Viewing and Editing Classes
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
548 * Browsing Elements::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
549 * Browsing Categories::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
550 * Browsing Protocols::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
551 * Browsing Implementors::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
552 * Exiting a Listing::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
553 * Quitting and Refreshing:: Quitting and Refreshing the OO-Browser
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
554 * Using the Mouse::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
555 * Getting Help::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
556 * Locating Entries::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
557 * Filtering Entries::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
558 * Ordering Entries::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
559 * Statistics:: Environment and Class Summaries
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
560 * Class Info:: Language-Specific Class Information
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
561 * Adding and Deleting Classes::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
562 * Completing Names::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
563 * Graphical Browsing:: Graphical OO-Browser Interfaces
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
564 @end menu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
565
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
566 @node Invoking, Top-Level Classes, Usage, Usage
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
567 @section Invoking the OO-Browser
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
568
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
569 @cindex invoking the OO-Browser
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
570 @cindex starting the OO-Browser
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
571 @kindex C-c C-o
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
572 @findex oo-browser
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
573 @cindex language support
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
574 The OO-Browser supports the following languages: C++ or G++, C, Info
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
575 (the online manual format), CLOS (Lisp), Eiffel, Objective-C, Java (as
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
576 documented in @cite{[Java 95]}), Python and Smalltalk. The OO-Browser may be
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
577 used on source written in any of these languages by using @{@kbd{C-c
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
578 C-o}@} or, if that key has not been setup, by using @{@kbd{M-x
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
579 oo-browser @key{RET}}@}. This command will prompt for the language to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
580 browse, the Environment specification of directories to browse, and then
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
581 will either load the Environment or build it. After the Environment is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
582 built, it will display the set of classes (or nodes) in the Environment.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
583 (Choose C++ if you are browsing plain C code.)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
584
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
585 @kindex C-u C-c C-o
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
586 @cindex current Environment
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
587 @cindex Environment, current
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
588 @cindex oo-browser, restarting
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
589 If you have exited the browser using @{@kbd{q}@} and wish to browse the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
590 same Environment again, use @{@kbd{C-u C-c C-o}@}, which will
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
591 immediately redisplay the browser just as you left it.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
592
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
593 @findex c++-browse
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
594 @findex eif-browse
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
595 @findex info-browse
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
596 @findex clos-browse
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
597 @findex objc-browse
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
598 @findex python-browse
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
599 @findex smt-browse
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
600 Alternatively, you can invoke the browser on a specific language
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
601 Environment, e.g@. to bring back the last Environment browsed under that
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
602 language. The language-specific browser invocation commands are:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
603 @{@kbd{M-x eif-browse @key{RET}}@}, @{@kbd{M-x c++-browse @key{RET}}@},
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
604 @{@kbd{M-x info-browse @key{RET}}@}, @{@kbd{M-x clos-browse
100
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
605 @key{RET}}@}, @{@kbd{M-x objc-browse @key{RET}}@},
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
606 @{@kbd{M-x python-browse @key{RET}}@}.@refill
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
607
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
608 @cindex Environment file
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
609 @cindex prefix argument
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
610 @cindex Environment, prompting for
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
611 @noindent
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
612 A prefix argument given to any of these commands will cause it to prompt
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
613 for an Environment file to use as the current Environment.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
614
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
615 On startup, if the selected Environment has been saved to a file, it
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
616 will be loaded; otherwise, the user will be asked to specify the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
617 Environment. The specification will be saved under the previously given
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
618 file name. The browser will then load this Environment specification
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
619 file.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
620
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
621 @cindex aborting
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
622 @cindex canceling
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
623 @kindex C-g
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
624 @findex keyboard-quit
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
625 If the browser loads an Environment file and finds only a specification,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
626 it will prompt the user in the minibuffer window with a request to build
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
627 the Environment. It will continue to prompt the user until a full
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
628 Environment is built or loaded and then the browser will start,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
629 displaying its multi-windowed interface. To abort from these prompts
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
630 and to cancel the browser invocation request at any time, use
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
631 @{@kbd{C-g}@} @code{(keyboard-quit)}, the standard way to abort an
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
632 unfinished command within Emacs.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
633
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
634 Once an Environment has been loaded, entering and quitting the browser
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
635 are rapid actions, allowing a smooth transition between editing and
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
636 browsing.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
637
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
638
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
639 @node Top-Level Classes, Moving to Entries, Invoking, Usage
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
640 @section Displaying Top-Level Classes
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
641
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
642 @cindex classes, top-level
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
643 The OO-Browser starts by displaying all top-level classes in the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
644 Environment. @dfn{Top-level classes} are those that do not inherit from
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
645 any others. The browser can show all top-level classes or System or
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
646 Library classes only. Once in the browser, use:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
647
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
648 @kindex s
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
649 @findex br-sys-top-classes
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
650 @kindex l
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
651 @findex br-lib-top-classes
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
652 @kindex t
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
653 @findex br-top-classes
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
654 @table @kbd
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
655 @item @{s@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
656 System top-level classes only
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
657 @item @{l@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
658 Library top-level classes only
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
659 @item @{t@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
660 all top-level classes in Environment
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
661 @end table
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
662
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
663 Note that selection of any of these commands does not affect the ancestry or
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
664 descendancy trees for any given class. Each simply limits which trees are
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
665 easily accessible for browsing. For example, selection of Library
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
666 top-level classes only, followed by the browser show children command,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
667 @{@kbd{c}@} @code{(br-children)}, would display the name of a System
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
668 class if the System class directly inherits from the selected Library
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
669 class.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
670
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
671 @cindex classes, all
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
672 @cindex Environment, ordering classes
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
673 To see an ordered listing of all of the classes in a particular part of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
674 an Environment, use a prefix argument with the commands given above:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
675
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
676 @table @kbd
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
677 @item @{C-u s@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
678 all System classes
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
679 @item @{C-u l@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
680 all Library classes
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
681 @item @{C-u t@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
682 all Environment classes.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
683 @end table
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
684
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
685 @node Moving to Entries, Saving Listings, Top-Level Classes, Usage
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
686 @section Moving to Entries
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
687
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
688 @kindex C-n
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
689 @findex br-next-entry
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
690 @kindex C-p
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
691 @findex br-prev-entry
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
692 @cindex previous entry
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
693 @cindex entry, previous
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
694 @cindex next entry
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
695 @cindex entry, next
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
696 @cindex movement
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
697 Many browser commands operate on the current entry in a listing window.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
698 @{@kbd{C-n}@} @code{(br-next-entry)} moves point to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
699 the next entry in a listing buffer. @{@kbd{C-p}@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
700 @code{(br-prev-entry)} moves to the previous entry. Both take prefix
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
701 arguments and use them as the number of entries by which to move.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
702
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
703 @node Saving Listings, Children and Parents, Moving to Entries, Usage
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
704 @section Writing a Listing to a File
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
705
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
706 @kindex C-c C-w
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
707 @findex br-write-buffer
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
708 @cindex listing, editing
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
709 @cindex listing, writing to a file
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
710 Many standard editing keys are rebound in listing buffers to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
711 provide a useful set of accessible commands. Nonetheless, one needs to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
712 be able to store and to edit listing buffers. The @{@kbd{C-c
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
713 C-w}@} @code{(br-write-buffer)} command provides this capability. The
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
714 command prompts for a file name under which to save the current buffer.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
715 One may then quit the browser, read in the file and edit it as a plain
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
716 text file.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
717
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
718 @node Children and Parents, Descendants and Ancestors, Saving Listings, Usage
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
719 @section Browsing Children and Parents
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
720
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
721 @kindex c
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
722 @findex br-children
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
723 @kindex p
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
724 @findex br-parents
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
725 @cindex browsing, children
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
726 @cindex children
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
727 @cindex browsing, parents
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
728 @cindex parents
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
729 @{@kbd{c}@} displays the children of the class at point; @{@kbd{p}@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
730 displays its parents. @{@kbd{C-u c}@} displays the children of all classes
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
731 in the present listing window; @{@kbd{C-u p}@} does the same for parents.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
732
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
733 @node Descendants and Ancestors, Viewing and Editing, Children and Parents, Usage
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
734 @section Browsing Descendants and Ancestors
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
735
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
736 @cindex browsing, ancestors
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
737 @cindex ancestors
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
738 @cindex browsing, descendants
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
739 @cindex descendants
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
740 The OO-Browser is very fast at computing ancestor and descendant hierarchies,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
741 accounting for multiple inheritance and cycles where permitted. Descendant
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
742 and ancestor listings provide an immediate overview of some key relationships
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
743 among class groupings.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
744
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
745 @kindex d
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
746 @findex br-descendants
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
747 @kindex a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
748 @findex br-ancestors
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
749 With point on any class entry line in a listing buffer, @{@kbd{d}@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
750 shows descendants for the class and @{@kbd{a}@} shows ancestors.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
751 @{@kbd{C-u d}@} shows the descendant trees for all classes in the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
752 current listing buffer and @{@kbd{C-u a}@} does the same for ancestors.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
753
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
754 @cindex ancestors, inverted
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
755 @vindex br-invert-ancestors
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
756 The ancestor tree for a given root class is normally shown branching out
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
757 from the root class. This means that higher-level ancestors, those
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
758 further away from the root class, are shown in descending trees below
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
759 lower-level ancestors. The leaves of the tree represent the ancestors
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
760 furthest from the root, as one might expect.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
761
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
762 This, however, is the inverse of inheritance trees. Some people prefer
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
763 to see ancestor trees like inheritance trees, with parents above
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
764 children. This is an @dfn{inverted ancestor tree}. To obtain this
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
765 view of ancestors use @{@kbd{M- -1 a}@} for ancestors of the current
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
766 class. For ancestors of all classes in the current buffer, use
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
767 @{@kbd{M- -2 a}@}, or any negative prefix argument lest than -1.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
768 Inverted ancestor trees may be made the default by setting
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
769 @code{br-invert-ancestors} non-nil, as in:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
770
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
771 @display
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
772 @{@kbd{M-x set-variable @key{RET} br-invert-ancestors @key{RET} t @key{RET}}@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
773 @end display
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
774
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
775 @noindent
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
776 This is a personal setting that affects all Environments used by the browser.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
777
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
778 @node Viewing and Editing, Browsing Elements, Descendants and Ancestors, Usage
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
779 @section Viewing and Editing Classes
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
780
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
781 @kindex v
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
782 @findex br-view-entry
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
783 @cindex classes, viewing
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
784 @cindex viewing a class
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
785 @kindex e
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
786 @findex br-edit-entry
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
787 @cindex classes, editing
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
788 @cindex editing a class
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
789 One of the major uses of the OO-Browser is to view or edit class source
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
790 texts. @{@kbd{v}@} will view the source for the class or element name
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
791 at point in a read-only mode in the viewer window; it will not select
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
792 the viewer window. @{@kbd{e}@} does the same, except that it edits the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
793 element source in a read-write mode, if the user has write permission for
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
794 the source file. It also selects the viewer window.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
795
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
796 @cindex classes, name completion
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
797 @cindex completion
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
798 A prefix argument to either of these commands, as in @{@kbd{C-u v}@} or
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
799 @{@kbd{C-u e}@}, causes them to prompt for the entry to display.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
800 Full class and element name completion is provided once an Environment
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
801 has been loaded and built. @xref{Completing Names}.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
802
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
803 @vindex br-edit-file-function
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
804 @vindex br-view-file-function
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
805 The value of the variable @var{br-edit-file-function} is the function
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
806 that the browser calls when a source file entity is displayed for editing.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
807 The value of @var{br-view-file-function} is the function called to view
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
808 a source file entity. @xref{External Viewing,,Using an External
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
809 Viewer or Editor}, for information on using non-Emacs editors and
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
810 viewers with the browser.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
811
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
812 If a user has no read access rights to a file, this will be apparent
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
813 when the browser tries to display the file and fails. If the user does
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
814 not have write permission to the class source file, the standard
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
815 @var{br-edit-file-function} may display the file in a read-only mode
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
816 (indicated by two percent signs, %%, at the front of the buffer mode
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
817 line). This is a warning that one should not attempt to edit the file.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
818 In some cases, one really wants to try to edit such a file; in those
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
819 cases, the buffer may be toggled between read-only and read-write modes
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
820 via the Emacs command, @code{(toggle-read-only)}, usually bound to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
821 @{@kbd{C-x C-q}@}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
822
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
823 @kindex SPC
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
824 @findex br-viewer-scroll-up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
825 @kindex DEL
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
826 @findex br-viewer-scroll-down
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
827 @cindex scrolling viewer
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
828 @cindex viewer, scrolling
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
829 Once a class has been displayed for viewing, @{@key{SPC}@} will scroll its
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
830 source text up (forward) almost a windowful; @{@key{DEL}@} will scroll it
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
831 down (backward) almost a windowful. In fact, this is a general means
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
832 for scrolling the OO-Browser viewer window whenever point, as shown by
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
833 the Emacs cursor, is in a listing window. When a class is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
834 selected for editing, @{@kbd{C-v}@} will scroll up, @{@kbd{M-v}@} will
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
835 scroll down, assuming the standard Emacs key bindings.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
836
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
837 @kindex C-c C-v
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
838 @findex br-to-from-viewer
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
839 @cindex movement, to or from viewer
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
840 Sometimes one needs to quickly switch back and forth between the viewer
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
841 window and the current listing window. The normal Emacs window
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
842 movement commands often are cumbersome in such instances. Instead
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
843 @code{(br-to-from-viewer)} bound to @{@kbd{C-c C-v}@}, allows the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
844 desired back and forth movement. It acts as a toggle switch,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
845 alternately moving between the buffer in the viewer window and the prior
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
846 listing buffer.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
847
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
848 @cindex class, narrowing view to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
849 @vindex br-narrow-view-to-class
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
850 @cindex classes, others same file
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
851 @kindex C-x n w
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
852 @kindex C-x w
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
853 @findex widen
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
854 By default, the OO-Browser displays class definition files in their
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
855 entirety. If there are multiple classes in a file, you will be able to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
856 scroll through all of them. If you prefer that only the selected class
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
857 be visible, enable the @code{br-narrow-view-to-class} option flag. When
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
858 set to a non-nil value, this flag narrows the source buffer so that only
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
859 the class of interest and its preceding comments are visible. To
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
860 examine other classes in the same file, you must execute a @{@kbd{C-x n
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
861 w}@} @code{(widen)} command when in the narrowed buffer. (Use
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
862 @{@kbd{C-x w}@} under Emacs 18.)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
863
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
864 @kindex 1 (one)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
865 @findex br-view-full-frame
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
866 @kindex C-x 1
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
867 @findex delete-other-windows
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
868 @cindex viewer, full frame
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
869 If the browser is used on a small screen, it may be helpful to use the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
870 a full frame to view or edit a buffer of source code. If point is in a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
871 listing buffer, pressing @{@kbd{1}@}, the number one, will expand the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
872 viewer window buffer to the full frame. When the browser is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
873 re-invoked, it will look just as it did before. If point is in the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
874 viewer window, @{@kbd{C-x 1}@} @code{(delete-other-windows)}, will do
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
875 practically the same thing, except that when the browser is re-invoked
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
876 it will not look precisely as it did before.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
877
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
878 @kindex C-c C-k
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
879 @findex br-kill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
880 @kindex C-x k
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
881 @findex kill-buffer
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
882 @cindex viewer, killing displayed buffer
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
883 If point is in a listing window, the buffer displayed in the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
884 viewer window may be killed with the @{@kbd{C-c C-k}@} @code{(br-kill)}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
885 command. (A killed buffer is removed from the current Emacs session.)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
886
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
887 If point is in the viewer window, as it will be after editing a class
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
888 buffer, use the standard Emacs command @{@kbd{C-x k}@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
889 @code{(kill-buffer)} instead.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
890
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
891 @node Browsing Elements, Browsing Categories, Viewing and Editing, Usage
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
892 @section Browsing Elements
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
893 @cindex element
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
894 @cindex browsing elements
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
895 @cindex element browsing
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
896 @cindex instance browsing
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
897 @cindex feature
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
898 @cindex routine
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
899 @cindex attribute
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
900 @cindex Common Lisp
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
901 @cindex CLOS
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
902 A @dfn{feature} of a class is either a routine or attribute defined in
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
903 the class. An @dfn{element} is either a feature or an instance of a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
904 class. A number of OO-Browser languages support feature browsing, as
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
905 documented in @ref{Languages}. Instance browsing is only supported
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
906 in very limited form, for class instances which exist within the code
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
907 itself. For example, under Common Lisp and CLOS, a default class called
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
908 @code{[function]} is defined whose instances are all named functions
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
909 defined within the environment. A @dfn{default class} is a class
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
910 created to categorize elements of the Environment for browsing; default
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
911 classes are not specified within the Environment source code.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
912
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
913 @kindex f
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
914 @kindex r
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
915 @findex br-features
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
916 Use @{@kbd{f}@} to display a listing of the features or elements
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
917 of the class at point, including inherited features.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
918 Generally, this includes only routines. Use @{@kbd{M-0 f}@} to turn off
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
919 the display of inherited features; use the same command again to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
920 re-enable display of inherited features.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
921
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
922 If inherited features are off and there are no feature definitions for
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
923 the class, the class definition is displayed instead, so that its
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
924 feature declarations may be browsed.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
925
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
926 Use @{@kbd{C-u f}@} to display a listing of the features or elements of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
927 all classes in the present listing window. Prior versions of the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
928 OO-Browser used @{@kbd{r}@} to display features. This key remains for
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
929 backward compatibility but may be used for another purpose in the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
930 future.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
931
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
932 @kindex e
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
933 @findex br-edit-entry
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
934 @cindex edit element
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
935 @kindex v
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
936 @findex br-view-entry
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
937 @cindex view element
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
938 @kindex F
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
939 @findex br-feature-signature
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
940 @cindex signature
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
941 @cindex feature
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
942 Move point to an element name and use @{@kbd{v}@} to view its source
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
943 definition or @{@kbd{e}@} to edit its source. Use @{@kbd{F}@} to see
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
944 the full signature tag of an element, which includes its argument names
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
945 and types, if any. @{@kbd{C-u F}@} lists the signatures of all elements
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
946 in the current listing. This is handy when several elements from the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
947 same class have the same name but differ in signature.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
948
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
949 @xref{Using the Mouse}, for how the Action and Assist Keys may be used
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
950 for browsing elements.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
951
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
952 @node Browsing Categories, Browsing Protocols, Browsing Elements, Usage
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
953 @section Browsing Categories
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
954
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
955 @cindex category
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
956 @cindex class category
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
957 The definition of a @dfn{category} is language-specific. Some languages such
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
958 as Smalltalk use categories to group related classes together. The
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
959 OO-Browser does not yet support this kind of category.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
960
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
961 A set of Objective-C categories segments a single class into groupings
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
962 of related features. When a class category is defined, the category
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
963 name appears within a set of parentheses, so the OO-Browser displays
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
964 category names with parentheses around them to distinguish them from
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
965 classes. The aggregation of all of the categories defined by a class
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
966 and its ancestors represents the complete class definition. The
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
967 OO-Browser does support this kind of category.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
968
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
969 @kindex C
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
970 Use the @{@kbd{C}@} key when point is on a class listing entry to obtain
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
971 a list of the categories defined for the class within the Environment
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
972 source code (this excludes inherited categories). Use @{@kbd{C-u C}@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
973 to list the categories for all classes in the current listing. Thus, to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
974 see the full set of categories for a class, use @{@kbd{a}@} to list the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
975 ancestors of the current class and then @{@kbd{C-u C}@} to show all
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
976 direct and inherited categories of the class.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
977
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
978 @cindex implementor, category
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
979 @kindex v
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
980 @kindex e
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
981 Use @{@kbd{v}@} or @{@kbd{e}@} to view or edit the class category
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
982 definition associated with a category entry at point. @xref{Browsing
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
983 Implementors}, for an explanation of how to browse the classes that
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
984 directly implement a category.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
985
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
986 @kindex f
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
987 Use @{@kbd{f}@} with point on the default @code{[category]} class to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
988 list all categories defined in the Environment.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
989
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
990 @node Browsing Protocols, Browsing Implementors, Browsing Categories, Usage
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
991 @section Browsing Protocols
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
992
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
993 @cindex protocol
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
994 @cindex class protocol
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
995 @cindex conformance to protocol
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
996 @cindex formal protocol
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
997 The definition of a @dfn{protocol} is language-specific.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
998 It generally refers to an interface specification to which a class is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
999 said to conform. A class conforms to a protocol by implementing the set
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1000 of features defined in the protocol.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1001
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1002 Presently, the OO-Browser support protocols only under Objective-C.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1003 Objective-C protocols are sometimes called @emph{formal protocols}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1004 Protocol interfaces are specified in a manner similar to classes but their
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1005 features are only implemented in conforming classes. A single protocol
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1006 can inherit from any number of other protocols; thus, any conforming
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1007 class must conform to all of its ancestor protocols.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1008
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1009 Class definitions list the protocols to which they directly conform,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1010 within a set of angle brackets. So the OO-Browser displays protocol
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1011 names with angle brackets around them to distinguish them from classes.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1012
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1013 @kindex P
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1014 Use the @{@kbd{P}@} key when point is on a class listing entry to obtain
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1015 a list of the protocols to which the class directly conforms
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1016 (this excludes inherited protocols). Use @{@kbd{C-u P}@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1017 to list the direct protocols for all classes in the current listing.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1018 There is not yet a way to show the complete set of protocols to which a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1019 class conforms, which includes all protocols inherited from other
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1020 protocols and all protocols inherited from ancestor classes.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1021
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1022 @kindex v
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1023 @kindex e
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1024 If you use @{@kbd{P}@} when point is on a class' protocol entry, the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1025 specification of the protocol will be displayed. Use @{@kbd{v}@} or
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1026 @{@kbd{e}@} to view or edit the class or class category definition
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1027 associated with a protocol entry at point.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1028
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1029 @cindex implementor, protocol
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1030 Use standard class browsing keys when on a protocol entry to examine its
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1031 parents, children, ancestors or descendants. @xref{Browsing
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1032 Implementors}, for an explanation of how to browse the classes that
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1033 directly conform to a protocol.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1034
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1035 @kindex f
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1036 Use @{@kbd{f}@} with point on the default @code{[protocol]} class to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1037 list all protocols defined in the Environment.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1038
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1039 @node Browsing Implementors, Exiting a Listing, Browsing Protocols, Usage
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1040 @section Browsing Implementors
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1041
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1042 @cindex implementor
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1043 @cindex element
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1044 @kindex I
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1045 @findex br-implementors
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1046 @kindex e
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1047 @kindex v
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1048 @kindex F
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1049 @cindex signature
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1050 Sometimes it is important to see the list of classes that define a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1051 particular element name. These are called the element's
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1052 @dfn{implementors}. With point on an element listing, @{@kbd{I}@} will
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1053 compute and display the element's implementor list. @{@kbd{C-u I}@} will
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1054 do the same for all elements in the present listing.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1055
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1056 Move point to an implementor class name and then use @{@kbd{v}@} or
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1057 @{@kbd{e}@} to view or edit the element associated with the class. If an
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1058 element name is defined with different signatures in a single class, the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1059 class will be listed as an implementor multiple times. Each class entry
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1060 can be used to display a different element. @{@kbd{C-u F}@} will
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1061 display the element signature associated with each class entry in the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1062 same order as the class entries in the present listing buffer.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1063
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1064 @node Exiting a Listing, Quitting and Refreshing, Browsing Implementors, Usage
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1065 @section Exiting a Listing
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1066
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1067 @kindex x
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1068 @findex br-exit-level
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1069 @cindex exiting a listing level
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1070 When done with a browser listing buffer, one should clear and exit
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1071 from the buffer's display with @{@kbd{x}@}. This command also displays
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1072 the previous listing level, if any, and moves point to its
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1073 previous position within this buffer.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1074
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1075 In this way, the command provides a quick and clean way to exit back to a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1076 previous listing level; you may exit a single level at a time or all the way
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1077 back to the top-level listing buffer through repeated invocation of the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1078 command or by sending a prefix argument value to the command.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1079
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1080 There is no need to exit from listing buffers to quit from the browser. You
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1081 may quit, perform other actions, and then re-invoke the browser at the same
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1082 point from which you left.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1083
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1084 @node Quitting and Refreshing, Using the Mouse, Exiting a Listing, Usage
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1085 @section Quitting and Refreshing the OO-Browser
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1086
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1087 @kindex q
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1088 @findex br-quit
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1089 @cindex quitting, temporarily
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1090 @cindex quitting, permanently
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1091 @{@kbd{q}@} quits from the browser temporarily. The same command with a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1092 prefix argument quits from the browser permanently and kills all
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1093 non-modified browser buffers. It will not kill any of the class source
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1094 buffers.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1095
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1096 @kindex C-c C-r
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1097 @findex br-refresh
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1098 @cindex refreshing the browser display
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1099 If you are familiar with Emacs windowing, you may quickly alter the window
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1100 configuration of the frame while in the browser, either intentionally or
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1101 more likely unintentionally. If you execute non-browser Emacs commands while
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1102 in the browser, you may find other buffers have taken the place of your
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1103 browser buffers. In either case, you may refresh the browser display and
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1104 restore it to the way it was when you originally invoked it, by using
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1105 @{@kbd{M-x br-refresh @key{RET}}@} or with @{@kbd{C-c C-r}@} when in a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1106 browser listing buffer.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1107
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1108 @node Using the Mouse, Getting Help, Quitting and Refreshing, Usage
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1109 @section Using the Mouse
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1110
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1111 @cindex mouse control
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1112 @kindex H
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1113 @findex br-help-ms
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1114 @cindex Action Key
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1115 @cindex Assist Key
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1116 @kindex Action Key
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1117 @kindex Assist Key
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1118 @cindex XEmacs
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1119 @cindex Emacs 19
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1120 @cindex InfoDock
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1121 @cindex Menu Key
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1122 Once configured, mouse control within the OO-Browser is helpful and easy
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1123 to use. Under InfoDock, XEmacs and Emacs 19, the right mouse button,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1124 called the Menu Key, pops up a menu of OO-Browser commands when clicked
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1125 within an OO-Browser listing buffer. Under XEmacs and Emacs 19, the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1126 same menu is added to the menubar used in listing buffers. Under
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1127 InfoDock with mode-specific menus turned on, the menubar is devoted to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1128 OO-Browser commands.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1129
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1130 Even if the above features are not available to you, if you have mouse
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1131 support in your Emacs, the following features are available. A single
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1132 mouse button, called the @dfn{Action Key}, is used for most purposes.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1133 The Action Key is bound to the shift-middle mouse button under standard
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1134 Emacs, to the middle mouse button under InfoDock, or to the shift-left
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1135 button on a two-button mouse.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1136
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1137 A second button, called the @dfn{Assist Key}, is used for help and other
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1138 ancillary functions. The Assist Key is bound to the shift-right button.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1139 The @file{br-help-ms} file uses a table format to summarize mouse
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1140 control within the browser, it may be displayed within the browser via
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1141 the @{@kbd{H}@} @code{(br-help-ms)} command.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1142
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1143 Within an empty listing buffer, clicking the Action Key displays the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1144 browser command menu; the Assist Key displays a menu listing
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1145 language-specific source files. Within this menu, the Action Key
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1146 selects a buffer for display, the Assist Key marks the buffer for
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1147 deletion. To perform the deletes, click the Action Key after the last
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1148 line of the menu. If the Assist Key is clicked after the last line, the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1149 deletes are undone and a list of all current editor buffers is shown,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1150 allowing you to select buffers other than those containing classes.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1151
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1152 The mouse buttons can be used to scroll the viewer window a page at a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1153 time by clicking after the end of any line. The Action Key scrolls the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1154 window up (forward) a windowful and the Assist Key scrolls it down
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1155 (backward) a windowful.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1156
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1157 The Action Key acts as follows when in an OO-Browser listing buffer. If
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1158 the button is pressed:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1159
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1160 @itemize @bullet
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1161 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1162 on a blank line following all entries or in a blank listing buffer, the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1163 browser command help menu is displayed in the viewer window
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1164 exited;@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1165 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1166 at the beginning of a (non-single character) class name, the class'
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1167 ancestors are listed;@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1168 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1169 at the end of an entry line, the listing is scrolled up;@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1170 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1171 on the `...', following a class name, point is moved to the class
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1172 descendency expansion;@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1173 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1174 before an element name, the implementor classes of the name are listed;@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1175 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1176 anywhere else on an entry line (i.e. on the entry), the entry's source
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1177 is displayed for editing.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1178 @end itemize
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1179
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1180 The Assist Key acts as follows when in a listing buffer. If it is pressed:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1181
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1182 @itemize @bullet
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1183 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1184 in a blank buffer, a selection list of buffer files is displayed;@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1185 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1186 at the beginning of a (non-single character) class, the class'
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1187 descendants are listed;@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1188 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1189 at the end of an entry line, the listing is scrolled down;@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1190 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1191 on the `...', following a class name, point is moved to the class
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1192 expansion;@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1193 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1194 anywhere else on a class line, the class' elements are listed;@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1195 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1196 anywhere else on an element line, the element's implementor classes are
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1197 listed;@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1198 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1199 on a blank line following all entries, the current listing buffer is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1200 exited.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1201 @end itemize
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1202
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1203 @node Getting Help, Locating Entries, Using the Mouse, Usage
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1204 @section Getting Help
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1205
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1206 @kindex h
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1207 @findex br-help
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1208 The OO-Browser is very intuitive to operate, but help is always a key or
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1209 button press away when needed. Besides the online and printed versions
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1210 of this manual, there is an online quick reference built into the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1211 OO-Browser. Once the browser windows appear, press @{@kbd{h}@} at any
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1212 time to bring up a buffer full of command help.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1213
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1214 @kindex C-h k
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1215 @findex describe-key
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1216 For more extensive documentation on each browser key, use the Emacs command
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1217 @{@kbd{C-h k @var{key-sequence}}@}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1218
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1219 @node Locating Entries, Filtering Entries, Getting Help, Usage
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1220 @section Locating Entries
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1221
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1222 @kindex w
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1223 @findex br-where
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1224 @cindex class, source file
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1225 @cindex class, where is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1226 @cindex element, source file
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1227 @cindex element, where is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1228 @cindex entry, where is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1229 The @{@kbd{w}@} @code{(br-where)} command can be used to locate the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1230 source file associated with a listing entry. It prints the full
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1231 pathname of the source file in the minibuffer window.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1232 A prefix argument as in, @{@kbd{C-u w}@}, causes the command to prompt
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1233 for the class or element name to locate. Full completion is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1234 provided. @xref{Completing Names}.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1235
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1236 @kindex m
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1237 @findex br-match
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1238 @cindex classes, matching names
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1239 @cindex classes, finding
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1240 @cindex matching to class names
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1241 @cindex finding classes
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1242 @cindex locating classes
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1243
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1244 The @{@kbd{m}@} @code{(br-match)} command provides a quick mechanism for
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1245 locating any classes in the Environment whose names match to an
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1246 expression in part or in whole. The browser will prompt for the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1247 expression to use. All matching names are displayed in ascending order.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1248
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1249 By default the expression is treated as a regular expression. A prefix
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1250 argument sent to the command tells it to treat the expression as a string.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1251
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1252 After each search, the command reports the number of matching classes
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1253 found and displays them in the current listing window. It then prompts
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1254 for another expression to key on. The selected set is then filtered
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1255 once again. This cycle continues until the @{@key{RET}@} is pressed
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1256 without giving an expression. This process allows for easy location of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1257 desired classes.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1258
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1259 When the command is invoked (first time through the loop), if the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1260 @{@key{RET}@} key is pressed without giving a match expression, the search
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1261 will match to all classes referenced in the Environment.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1262
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1263 If you want a regular expression to match to whole class names
100
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
1264 exclusively, begin it with a `^' and end it with a `$' character which
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1265 match to beginning of name and end of name, respectively. Thus, "^....$"
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1266 would match to class names with exactly four characters. A string
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1267 match always matches to any class name that contains the matching
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1268 string.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1269
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1270 @node Filtering Entries, Ordering Entries, Locating Entries, Usage
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1271 @section Filtering Entries
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1272
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1273 @kindex M
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1274 @findex br-match-entries
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1275 @cindex entries, matching names
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1276 @cindex matching to listing entries
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1277 @cindex filtering entries
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1278 @cindex locating Entries
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1279
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1280 The @{@kbd{M}@} @code{(br-match-entries)} command works much like the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1281 @code{(br-match}) command described in, @ref{Locating Entries}, except
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1282 that it matches only to entries in the current listing buffer. It thus
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1283 allows you to filter a listing to just those entries that you care to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1284 browse. It prompts you for a regular expression of entries to match
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1285 and then deletes entries that don't match. A prefix argument sent to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1286 the command tells it to treat the match expression as a string.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1287
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1288 After each search, the command reports the number of matching entries
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1289 found and displays them in the current listing window. It then prompts
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1290 for another expression to match. The selected set is then filtered
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1291 once again. This cycle continues until the @{@key{RET}@} is pressed
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1292 without giving an expression. This process allows for easy incremental
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1293 filtering of listings.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1294
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1295 When the command is invoked (first time through the loop), if the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1296 @{@key{RET}@} key is pressed without giving a match expression, the search
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1297 will match to all entries in the listing, so no filtering will be done.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1298
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1299 If you want a regular expression to match to whole entries
100
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
1300 exclusively, begin it with a `^' and end it with a `$' character which
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1301 match to beginning of line and end of line, respectively. Thus, "^....$"
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1302 would match to entry lines with exactly four characters. A string
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1303 match always matches to any entry that contains the matching string.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1304
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1305
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1306 @node Ordering Entries, Statistics, Filtering Entries, Usage
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1307 @section Ordering Entries
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1308
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1309 @kindex o
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1310 @findex br-order
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1311 @cindex entries, ordering
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1312 @cindex ordering listings
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1313 @cindex sorting listings
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1314 Once you have a desired set of names in a browser listing window, you
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1315 may want to re-order. For a simple ascending order sort by
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1316 name, use @{@kbd{o}@}. To sort the lines in the current listing window
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1317 accounting for leading whitespace, use a positive prefix argument. To sort
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1318 the lines in descending order accounting for leading whitespace, use a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1319 negative prefix argument. Note that all of the top-level class display
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1320 commands automatically order their output lists. @xref{Top-Level Classes,,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1321 Displaying Top-Level Classes}.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1322
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1323 To sort in descending order, first sort into ascending order with
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1324 @{@kbd{o}@} to strip any leading whitespace and then use a negative
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1325 prefix argument to sort the names into descending order.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1326
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1327
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1328 @node Statistics, Class Info, Ordering Entries, Usage
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1329 @section Environment and Class Summaries
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1330
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1331 @kindex #
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1332 @findex br-count
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1333 @cindex number of classes
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1334 @cindex class count
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1335 The @{@kbd{#}@} @code{(br-count)} command displays in the minibuffer the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1336 number of entries in the present listing buffer.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1337
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1338 @kindex M-c
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1339 @findex br-class-stats
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1340 @cindex class info
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1341 @cindex class statistics
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1342 The @{@kbd{M-c}@} @code{(br-class-stats)} command displays in the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1343 minibuffer window the number of parents and children for the selected
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1344 class; with a prefix argument, it prompts for the class name to use.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1345
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1346 @kindex M-e
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1347 @findex br-env-stats
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1348 @cindex Environment statistics
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1349 @cindex Environment spec summary
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1350 The @{@kbd{M-e}@} @code{(br-env-stats)} command displays the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1351 specification for the current Environment along with a few Environment
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1352 statistics (OO-Browser version used to build the Environment, total
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1353 classes, number of System and Library classes, number of duplicate and
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1354 undefined classes) in the viewer window. With a prefix argument, it
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1355 displays in the minibuffer window the basic statistics only, leaving the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1356 contents of the viewer window intact.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1357
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1358 @node Class Info, Adding and Deleting Classes, Statistics, Usage
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1359 @section Language-Specific Class Information
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1360
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1361 @kindex i
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1362 @findex br-entry-info
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1363 @cindex entry attributes
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1364 @cindex parents
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1365 @cindex attributes
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1366 @cindex routine calls
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1367 @cindex Eiffel, info
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1368 Presently, this feature is available only for Eiffel browsing.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1369
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1370 With point on a class name in a listing buffer, the command,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1371 @{@kbd{i}@} @code{(br-entry-info)}, displays the class' parents,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1372 attributes and routines with routine call summaries. This is its
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1373 default behavior.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1374
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1375 @cindex Eiffel, short
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1376 @cindex Eiffel, flat
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1377 @{@kbd{M-x eif-info-use-short}@} will instead cause the
100
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
1378 @code{(br-entry-info)} command to run the Eiffel `short' command on a
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1379 class, thereby displaying its specification.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1380 @{@kbd{M-x eif-info-use-flat}@}, will cause the command to run
100
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
1381 the Eiffel `flat' command on a class, thereby displaying its complete
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1382 feature set. Use @{@kbd{M-x eif-info-use-calls}@} to reset this command
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1383 to its default behavior.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1384
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1385
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1386 @node Adding and Deleting Classes, Completing Names, Class Info, Usage
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1387 @section Adding and Deleting Classes
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1388
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1389 @kindex C-c ^
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1390 @findex br-add-class-file
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1391 @cindex class, adding to Environment
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1392 @cindex class, replacing in Environment
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1393 @cindex Environment, adding classes
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1394 @cindex Environment, replacing classes
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1395 @cindex initialization file
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1396 A file containing class definitions may be added to the Environment with
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1397 the @{@kbd{C-c ^}@} @code{(br-add-class-file)} command. This will
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1398 prompt for the file name, scan the file, and then update the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1399 Environment. If a class defined in the file is already in the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1400 Environment, its information will be replaced with the information
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1401 gathered from the file; otherwise, the class will be added to the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1402 Environment. This command does not update the browser display; one
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1403 must issue a browser command after the add command in order to see any
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1404 change.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1405
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1406 @cindex Environment, adding individual classes
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1407 To add a single class from a file containing multiple classes, read the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1408 file into an Emacs buffer, narrow the buffer to the desired class and
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1409 then execute the add command. @xref{Narrowing,,Narrowing, emacs, The
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1410 Gnu Emacs Manual}.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1411
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1412 @{@kbd{C-c ^}@} is normally globally bound in the OO-Browser
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1413 initialization file, @file{br-init.el}, so that it may be used outside
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1414 of the browser when editing classes.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1415
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1416 @kindex C-c C-d
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1417 @findex br-delete
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1418 @cindex class, deleting from Environment
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1419 @cindex Environment, deleting classes
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1420 To delete a class from the Environment, display the class name in a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1421 listing window using the @{@kbd{m}@} @code{(br-match)} command if
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1422 necessary. (@xref{Locating Entries}.) Move point to the desired class
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1423 name and hit @{@kbd{C-c C-d}@} @code{(br-delete)} to delete the class.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1424 This will remove the class name at point after the class is deleted from
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1425 the Environment.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1426
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1427
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1428 @node Completing Names, Graphical Browsing, Adding and Deleting Classes, Usage
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1429 @section Completing Names
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1430
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1431 Whenever the browser prompts for a name and an Environment has already
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1432 been loaded or built, one may use the browser's identifier name
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1433 completion facilities to help in entering the name. These features
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1434 allow you to type as much of the name as you know and then have the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1435 browser fill in what it can. The relevant keys are:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1436
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1437 @table @key
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1438 @item @{TAB@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1439 complete as much as possible of a class or element name
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1440 @item @{SPC@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1441 complete up to one word of the class or element name
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1442 @item @{@kbd{?}@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1443 show all possible completions for class or element name
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1444 @end table
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1445
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1446 You may also use the browser's completion facilities outside of the browser,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1447 for example, when editing code. @xref{Standalone, ,Using Standalone
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1448 OO-Browser Features}, and the description of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1449 @code{(br-complete-type)}.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1450
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1451 @node Graphical Browsing, , Completing Names, Usage
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1452 @section Graphical OO-Browser Interfaces
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1453
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1454 @cindex xoobr
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1455 @cindex NEXTSTEP OO-Browser
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1456 @cindex graphical browsing
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1457 The X interface to the OO-Browser is called, @dfn{xoobr}. It provides a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1458 simple but effective means of navigating through OO-Browser hierarchy
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1459 and element relations. (The NEXTSTEP OO-Browser is very similar to the
100
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
1460 X version, so the documentation herein also applies to it.)
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1461
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1462 Any number of xoobr sessions may be established at the same time. Each
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1463 one is used to gain a particular view on an Environment. The textual
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1464 OO-Browser is used to filter a set of classes for display in an xoobr
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1465 process. For this reason, xoobr is invoked from within the textual
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1466 OO-Browser.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1467
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1468 @page
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1469 @cindex X OO-Browser picture
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1470 @cindex xoobr picture
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1471 @iftex
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1472 Here is a picture of the X OO-Browser.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1473 @sp 2
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1474 @centerline{@psfig{figure=im/oobr-x.ps}}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1475 @end iftex
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1476 @ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1477 If running under the X window system, Action Key click on the following
100
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
1478 filename to view a picture of the X OO-Browser: @file{im/oobr-x.xwd}.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1479 @end ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1480
100
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
1481 @kindex M-f
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
1482 @findex br-tree-features-toggle
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
1483 @cindex xoobr, displaying features
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
1484 @cindex descendancy view
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
1485 @{@kbd{M-f}@} @code{(br-tree-features-toggle)} or the menu item,
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
1486 @emph{Options/Graphical-Add-Features}, is used before creating a
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
1487 graphical descendency view to determine whether or not to include the
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
1488 features of each class in the listing as child nodes of the class.
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
1489 It toggles between showing features and not showing them in descendancy
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
1490 views. The setting applies across all OO-Browser languages. The
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
1491 default setting is not to add features to the view.
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
1492
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1493 @kindex M-g
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1494 @findex br-tree-graph
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1495 @cindex xoobr, graphical view
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1496 @{@kbd{M-g}@} @code{(br-tree-graph)} displays the current listing
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1497 buffer's entries in a graphical form. It ignores the show
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1498 features setting so that you can capture the current listing without
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1499 the need to alter that setting.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1500
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1501 @kindex M-d
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1502 @findex br-tree
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1503 @cindex xoobr, descendants
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1504 @{@kbd{M-d}@} @code{(br-tree)} selects the current class and displays
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1505 its descendancy graph in tree-form by starting a new xoobr session.
100
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
1506 With a prefix argument, @{@kbd{C-u M-d}@}, it displays descendancy trees
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1507 for all classes at the current browser level. They are all grouped
100
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
1508 under an imaginary root node so as to maintain the concept of one
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1509 tree per xoobr view.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1510
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1511 @cindex xoobr, view
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1512 Xoobr views are meant to complement the textual browser interface.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1513 Therefore, the two most common actions used in the text browser are
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1514 performed in a similar manner within an xoobr view. A click on a node with
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1515 the left mouse button highlights the node and then displays the appropriate
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1516 class text in the chosen editor, ready for editing. A click of the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1517 middle button performs similarly but displays the associated class for
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1518 viewing only.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1519
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1520 @cindex xoobr, node menu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1521 [The right mouse button is disable in this release of the X OO-Browser
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1522 because of an inability to debug a problem in limiting its use to tree
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1523 nodes.] The right mouse button when depressed over a node displays a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1524 short menu of commands that may be applied to the node. The only ones
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1525 of real interest at this point are the collapse and expand entries which
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1526 let you hide and then restore the display of a node's subtree. This
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1527 allows you precise control over the amount of detail you receive in
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1528 various parts of the hierarchy.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1529
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1530 @cindex xoobr, help
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1531 The Help button in the upper right of the an xoobr session window when
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1532 selected displays a few pages of help text regarding the program itself.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1533
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1534 @kindex M-k
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1535 @findex br-tree-kill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1536 @cindex xoobr, terminating
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1537 @cindex xoobr, killing
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1538 The @{@kbd{M-k}@} @code{(br-tree-kill)} command will prompt to see if
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1539 you want to terminate all xoobr sessions started from within the current
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1540 editor session. If you answer affirmatively, all such processes
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1541 disappear, as your screen will quickly indicate.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1542
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1543 @cindex xoobr, quitting
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1544 @kindex C-u q
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1545 @findex br-quit
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1546 The upper left of a session window contains a set of buttons which
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1547 display menus. The only menu entry you need be concerned with at all is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1548 found under the file menu, labelled "Quit". xoobr processes may also be
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1549 terminated by issuing the kill command mentioned just before. A third
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1550 menas of killing such processes is by sending the permanent
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1551 @code{(br-quit)} command, @{@kbd{C-u q}@}, to the textual browser. You
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1552 will then be prompted as to whether you want to terminate all xoobr
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1553 sessions started from within the current editor session.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1554
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1555 @node Options, Customization, Usage, Top
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1556 @chapter OO-Browser Options
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1557
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1558 @menu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1559 * External Viewing:: Using An External Viewer or Editor
100
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
1560 * Inherited Features:: Toggling Inherited Features Display
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
1561 * Graphical Add Features:: Add Features to a Graphical View
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1562 * Keep Viewed Classes::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1563 * Inhibit Version:: Inhibit Version Screen
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1564 * Invert Ancestors:: Invert Ancestor Trees
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1565 * Save All:: Save All Lookup Tables
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1566 * Use Children:: Build Children Lookup Table
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1567 * Sort Options:: Controlling Class Listing Order
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1568 @end menu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1569
100
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
1570 @node External Viewing, Inherited Features, Options, Options
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1571 @comment node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1572 @section Using an External Viewer or Editor
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1573
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1574 @cindex editing, externally
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1575 @cindex viewing, externally
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1576 The OO-Browser allows you to select your desired editor and viewer
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1577 programs when you use a multi-windowed display. By default, both of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1578 these tasks are handled by Emacs so that the browser works on text
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1579 terminals. If you choose an external editor or viewer, Emacs will still
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1580 automatically be used whenever you invoke the browser from a text
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1581 terminal.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1582
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1583 @vindex br-editor-cmd
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1584 @cindex vi
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1585 If you wish to edit classes displayed by the browser in an editor other
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1586 than Emacs, set the @var{br-editor-cmd} variable to the command with
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1587 which you wish to edit. Arguments to the command should be placed in
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1588 the variables named @var{br-ed[1-9]}, with one string argument per
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1589 variable. Unused variables should have the value @code{nil}. Bear in
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1590 mind that the command must generate a new window under your window
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1591 system. For example, the vi editor under UNIX does not create its own
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1592 window, it runs within the window in which it is created. Under X one
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1593 would create a new xterm window and then invoke vi. The command line
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1594 would be @emph{xterm -e vi}, the settings in your personal
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1595 initialization file would then be:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1596
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1597 @display
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1598 @code{
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1599 (setq br-editor-cmd "xterm" br-ed1 "-e" br-ed2 "vi"
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1600 br-ed3 nil br-ed4 nil br-ed5 nil
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1601 br-ed6 nil br-ed7 nil br-ed8 nil br-ed9 nil)}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1602 @end display
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1603
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1604 @vindex window-system
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1605 This editor will only be used when the browser is run under a window
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1606 system external to Emacs, like X. (In such a case, the Emacs variable
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1607 @var{window-system} will be non-nil).
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1608
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1609 @vindex br-viewer-cmd
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1610 @cindex xmore
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1611 If you want to view classes in a read-only fashion outside of Emacs, set the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1612 following @var{br-viewer-cmd} and @var{br-vw[1-9]} variables in a similar
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1613 manner as you did for the editor variables above.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1614
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1615 For example, to use @file{xmore}, an X-compatible version of @file{more}, as
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1616 your viewer, use the following settings (assuming all the @var{br-vw}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1617 variables are already null):
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1618
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1619 @display
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1620 @code{(setq br-viewer-cmd "xmore")}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1621 @end display
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1622
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1623
100
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
1624 @node Inherited Features, Graphical Add Features, External Viewing, Options
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
1625 @comment node-name, next, previous, up
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
1626 @section Toggling Inherited Features Display
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
1627
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
1628 @cindex inherited features
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
1629 @cindex feature options
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
1630 By default, when the OO-Browser lists features of a class, it shows both
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
1631 the ones lexically defined within the class source text and the ones
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
1632 inherited from ancestor classes. Each feature is listed below the class
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
1633 in which it is originally defined, for clarity. Sometimes it is useful
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
1634 to see only the lexically defined features of a class. In such cases,
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
1635 the menu item, @emph{Options/Show-Inherited-Features}, toggles this
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
1636 setting. If you want this on by default, you can add the following
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
1637 line to a personal initialization file:
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
1638
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
1639 @display
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
1640 @code{(setq br-inherited-features-flag nil)}
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
1641 @end display
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
1642
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
1643
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
1644 @node Graphical Add Features, Keep Viewed Classes, Inherited Features, Options
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
1645 @comment node-name, next, previous, up
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
1646 @section Add Features to a Graphical View
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
1647
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
1648 @xref{Graphical Browsing, , Graphical OO-Browser Interfaces}.
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
1649
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
1650
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
1651 @node Keep Viewed Classes, Inhibit Version, Graphical Add Features, Options
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1652 @comment node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1653 @section Keep Viewed Classes
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1654
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1655 @vindex br-keep-viewed-classes
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1656 The @var{br-keep-viewed-classes} flag is turned off by default,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1657 indicating that each time a class is viewed immediately after another
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1658 one, the prior one is deleted. If it is set to any non-nil value, all
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1659 viewed classes are left around for selection.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1660
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1661 In typical use, the burden of having to manage all viewed classes is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1662 greater than the benefit of leaving them in memory. This is why the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1663 flag is off by default. The class buffer menu can be used to delete
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1664 buffers when you want to trim down the number with which you are dealing.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1665 @xref{Using the Mouse}, for details on this technique.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1666
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1667 @findex br-toggle-keep-viewed
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1668 @vindex br-keep-viewed-classes
100
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
1669 The value of the @var{br-keep-viewed-classes} flag may be easily toggled
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
1670 with the @code{(br-toggle-keep-viewed)} command or with the menu item,
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
1671 @emph{Options/Keep-Viewed-Classes}.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1672
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1673
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1674 @node Inhibit Version, Invert Ancestors, Keep Viewed Classes, Options
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1675 @section Inhibit Version Screen
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1676
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1677 @vindex br-inhibit-version
100
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
1678 After you are familiar with the opening OO-Browser version and credits
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
1679 screen, you may want to disable its display each time the browser is
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
1680 started. This is done by setting @var{br-inhibit-version} non-nil, as
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
1681 in the following line that would go in your personal OO-Browser
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
1682 initialization file:
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1683
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1684 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1685 @code{(setq br-inhibit-version t)}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1686 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1687
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1688 @kindex C-c #
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1689 @findex br-version
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1690 @cindex version, browser
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1691 @cindex support
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1692 @noindent
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1693 This option has no effect on the display of the help screen which
100
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
1694 is displayed after the version screen. Even with this option set, you
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
1695 may display the version screen at any time from within a browser listing
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1696 window by using @{@kbd{C-c #}@} @code{(br-version)}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1697
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1698
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1699 @node Invert Ancestors, Save All, Inhibit Version, Options
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1700 @section Invert Ancestor Trees
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1701
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1702 @xref{Descendants and Ancestors,,Browsing Descendants and Ancestors},
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1703 for more information.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1704
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1705 This is a global OO-Browser option, it affects all Environments.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1706
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1707 Ancestor trees are normally shown to emphasize how the trees branch out
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1708 from their origin. An initialization file line such as:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1709
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1710 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1711 @code{(setq br-invert-ancestors t)}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1712 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1713
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1714 @noindent
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1715 will cause the display of ancestor trees to be inverted such that the further
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1716 ancestors appear as roots of the trees and parents (the nearest ancestors)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1717 appear as leaves in the trees. This ensures that all listing displays
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1718 reflect the class inheritance structure with children below parents.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1719
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1720
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1721 @node Save All, Use Children, Invert Ancestors, Options
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1722 @section Save All Lookup Tables
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1723
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1724 This is an Environment-specific option set during Environment
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1725 specification. @xref{Creating Environments}.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1726
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1727 Half of the browser lookup tables can be built whenever an Environment
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1728 is loaded. If this option is set, these tables will be stored in the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1729 Environment file instead. This will speed Environment loading somewhat,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1730 at the cost of doubling the file size per saved Environment.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1731
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1732 @node Use Children, Sort Options, Save All, Options
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1733 @section Build Children Lookup Table
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1734
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1735 This is an Environment-specific option set during Environment
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1736 specification. @xref{Creating Environments}.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1737
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1738 This is a highly recommended option that allows for fast descendant
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1739 lookups. The only time one would turn off this option would be when a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1740 file system is extremely short of space.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1741
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1742 @node Sort Options, , Use Children, Options
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1743 @section Controlling Class Listing Order
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1744
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1745 @vindex br-sort-options
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1746 @cindex listing order
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1747 @cindex sorting options
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1748 @cindex listing options
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1749 The OO-Browser normally orders classes and elements in listing windows
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1750 according to the ASCII character set. This sort order is controlled by the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1751 @var{br-sort-options} variable which specifies the command line options
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1752 sent to the system @code{sort} command. (Under any Emacs 19 variant,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1753 this variable is not used by the @code{br-order} command, bound to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1754 @{@kbd{o}@}.)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1755
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1756 The value of this variable should be a single string of options such as
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1757 @code{-fu} (the default) or @code{nil} for no options. The @code{-f}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1758 option folds upper and lower case to the same character for sort
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1759 comparisons. The @code{-u} option leaves only unique elements in the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1760 listing by eliminating any duplicate entries.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1761
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1762 @node Customization, Standalone, Options, Top
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1763 @chapter Personal Customization
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1764
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1765 @vindex br-skip-dir-regexps
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1766 @cindex scanning, skip directories
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1767 @cindex directory scanning
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1768 The @var{br-skip-dir-regexps} variable is a list of regular expressions
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1769 which match directory names that the OO-Browser will not descend when
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1770 scanning source code trees.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1771
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1772 @vindex br-file-dir-regexp
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1773 The @var{br-file-dir-regexp} variable specifies a regular expression
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1774 that matches to file and directory names that the OO-Browser should
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1775 scan. Any others, including those matched by @var{br-skip-dir-regexps},
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1776 are ignored.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1777
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1778 @cindex initialization file
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1779 @cindex personal initialization
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1780 @vindex file, .br-init.el
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1781 The following hook variables are provided so that one may customize what
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1782 happens each time the OO-Browser is invoked. Set them as you would any
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1783 other Emacs Lisp hook variables in a personal OO-Browser initialization
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1784 file, @file{~/.br-init.el}. They all default to null operations.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1785
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1786 @vindex br-mode-hook
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1787 If you want a set of actions to occur each time after the OO-Browser is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1788 invoked, attach them to @var{br-mode-hook}. For language-specific
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1789 actions, a language-specific hook such as @var{br-eif-mode-hook},
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1790 or @var{br-c++-mode-hook} is run after @var{br-mode-hook}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1791
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1792 @vindex br-class-list-hook
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1793 If you want a set of actions to occur after each time that a new browser
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1794 listing buffer is created, set @var{br-class-list-hook}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1795
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1796
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1797 @node Standalone, Languages, Customization, Top
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1798 @chapter Using Standalone OO-Browser Features
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1799
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1800 A number of browser features may be used independently of the browser
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1801 user interface, assuming that a site-wide or personal OO-Browser
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1802 initialization file has been loaded into your current Emacs session.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1803
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1804 @kindex C-c C-o
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1805 First, an Environment must be selected and loaded into the OO-Browser
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1806 via @{@kbd{C-c C-o}@}. When the browser user interface is displayed,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1807 use @{@kbd{q}@} to quit.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1808
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1809 @findex br-env-load
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1810 Alternatively, you can load an Environment without invoking the browser
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1811 user interface by using @{@kbd{M-x br-env-load @key{RET}}@}. The
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1812 standalone browser features will use the newly loaded Environment.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1813
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1814 @noindent
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1815 The commands that are available for standalone use include:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1816 @table @code
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1817 @findex br-add-class-file
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1818 @item br-add-class-file
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1819 Add a file of classes to the current Environment. @xref{Adding and
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1820 Deleting Classes}.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1821
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1822 @item br-find
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1823 @findex br-find
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1824 Interactively complete class or ELEMENT name and jump to its definition.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1825
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1826 @findex br-find-class
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1827 @item br-find-class
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1828 Display file of class text matching CLASS-NAME in VIEW-ONLY mode if non-nil.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1829
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1830 @findex br-complete-type
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1831 @item br-complete-type
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1832 Perform in-buffer completion of a type or element identifier before point.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1833
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1834 @findex br-class-path
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1835 @item br-class-path
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1836 Return full path, if any, to CLASS-NAME.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1837 With optional prefix argument INSERT non-nil, insert path at point.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1838 @end table
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1839
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1840 All of these commands provide full completion. @xref{Completing Names},
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1841 based upon the current OO-Browser Environment.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1842
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1843 @findex br-find
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1844 @cindex finding an element
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1845 @cindex searching for an element
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1846 When editing and debugging code, one often wants to look at a class or
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1847 element definition without having to invoke the browser to locate it.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1848 The @code{(br-find)} command does exactly that by prompting for a name
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1849 and then displaying for editing the class or element definition given by
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1850 that name.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1851
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1852 @findex br-find-class
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1853 @cindex finding a class
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1854 @cindex searching for a class
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1855 The @code{(br-find-class)} command is similar. It prompts for a class name
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1856 and then displays its source file in a viewable, read-only mode. To
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1857 display a class file in an editable mode, send a prefix argument to this
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1858 command.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1859
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1860 @findex br-complete-type
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1861 When writing code and entering class attribute definitions (variable
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1862 definitions), one often has to repetitively enter class names as the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1863 static types for the attributes. The @code{(br-complete-type)} command
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1864 completes and inserts a class name at point in the current buffer.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1865 The traditional key to bind such a command to is @{@kbd{M-@key{TAB}}@}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1866 The following example illustrates its usage.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1867 @display
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1868 my_list: LIN<-- (point is here)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1869
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1870 @{@kbd{M-@key{TAB}}@} is hit:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1871
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1872 my_list: LINKED_LIST
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1873 @end display
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1874
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1875 @findex br-class-path
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1876 The @code{(br-class-path)} command prompts for a class name and
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1877 displays the full path of the associated class source file in the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1878 minibuffer. With a prefix argument, it inserts the path name at point
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1879 in the current buffer.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1880
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1881 The following key bindings are recommended when using these standalone
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1882 features:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1883
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1884 @kindex C-M-i
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1885 @kindex M-TAB
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1886 @kindex C-c C-f
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1887 @kindex C-c C-w
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1888 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1889 @code{(define-key eiffel-mode-map "\C-c\C-f" 'br-find)}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1890 @code{(define-key c++-mode-map "\C-c\C-f" 'br-find)}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1891 @code{(define-key lisp-mode-map "\C-c\C-f" 'br-find)}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1892 @code{(define-key objc-mode-map "\C-c\C-f" 'br-find)}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1893 @code{(define-key smalltalk-mode-map "\C-c\C-f" 'br-find)}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1894
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1895 ;; @{@kbd{C-M-i}@} means @{@kbd{M-@key{TAB}}@}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1896 @code{(define-key eiffel-mode-map "\C-\M-i" 'br-complete-type)}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1897 @code{(define-key c++-mode-map "\C-\M-i" 'br-complete-type)}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1898 @code{(define-key lisp-mode-map "\C-\M-i" 'br-complete-type)}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1899 @code{(define-key objc-mode-map "\C-\M-i" 'br-complete-type)}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1900 @code{(define-key smalltalk-mode-map "\C-\M-i" 'br-complete-type)}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1901
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1902 @code{(define-key eiffel-mode-map "\C-c\C-w" 'br-class-path)}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1903 @code{(define-key c++-mode-map "\C-c\C-w" 'br-class-path)}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1904 @code{(define-key lisp-mode-map "\C-c\C-w" 'br-class-path)}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1905 @code{(define-key objc-mode-map "\C-c\C-w" 'br-class-path)}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1906 @code{(define-key smalltalk-mode-map "\C-c\C-w" 'br-class-path)}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1907 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1908
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1909 @xref{Eiffel Specifics}, for an Eiffel-specific standalone browser
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1910 feature.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1911
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1912 @node Languages, Features, Standalone, Top
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1913 @chapter Language-Specific Notes
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1914
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1915 @menu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1916 * C Specifics::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1917 * C++ Specifics::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1918 * CLOS Specifics::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1919 * Eiffel Specifics::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1920 * Java Specifics::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1921 * Objective-C Specifics::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1922 * Python Specifics::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1923 @end menu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1924
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1925 @node C Specifics, C++ Specifics, Languages, Languages
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1926 @section C Specifics
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1927
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1928 @vindex br-c-tags-flag
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1929 @findex br-toggle-c-tags
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1930 The @var{br-c-tags-flag} variable controls whether or not C constructs
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1931 are included within C and C-based language Environments. By default,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1932 this flag is true. Use @code{M-x br-toggle-c-tags RET} to toggle its
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1933 value. If you set it false before building an Environment, then C
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1934 constructs will not be included in the Environment. (Note that C
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1935 functions are always included in C++ Environments, regardless of this
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1936 flag value.)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1937
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1938 If you wish to build an Environment whose source code is entirely C,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1939 ensure that the @var{br-c-tags-flag} is enabled and then select C++ when
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1940 asked for the language to browse. In the future, a language setting for
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1941 C will probably be added.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1942
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1943 C constructs are grouped into default classes for browsing. The
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1944 elements of each default class are the instances of the associated
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1945 construct within the Environment. Use normal element/feature commands
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1946 to browse each instance.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1947
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1948 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1949 DEFAULT CLASS C CONSTRUCT
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1950 --------------------------------------
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1951 [constant] #define constant
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1952 [enumeration] enum @{@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1953 [function] non-member function()
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1954 [macro] #define macro()
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1955 [structure] struct @{@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1956 [type] typedef @{@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1957 [union] union @{@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1958 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1959
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1960 @node C++ Specifics, CLOS Specifics, C Specifics, Languages
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1961 @section C++ Specifics
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1962
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1963 @xref{C Specifics}, for details on C-specific support within C++
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1964 Environments.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1965
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1966 @menu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1967 * C++ Element Selection:: Source Code Element Selection
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1968 * C++ Settings::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1969 @end menu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1970
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1971 @node C++ Element Selection, C++ Settings, C++ Specifics, C++ Specifics
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1972 @subsection Source Code Element Selection
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1973
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1974 @cindex C++ feature listings
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1975 @cindex pure virtual function
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1976 @cindex function, pure virtual
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1977 @cindex deferred function
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1978 C++ pure virtual function declarations, which specify method interfaces
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1979 but no implementation, appear in class feature listings. The function
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1980 name is preceded by the @code{"> "} string to identify the function as a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1981 pure virtual (deferred) function. Pure virtuals may be treated like any
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1982 other member functions within the browser. Since there is no definition
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1983 for such a function within the class in which it is listed, its
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1984 declaration will be shown instead, when requested.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1985
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1986 @cindex friend
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1987 @cindex function, friend
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1988 @cindex class, friend
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1989 @findex br-view-friend
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1990 @kindex V
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1991 Friend functions and friend classes give members of another class
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1992 access to the private parts of the current class. They appear
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1993 in class feature listings preceded by the @code{"% "} string.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1994 The keys, @{@kbd{v}@} or @{@kbd{e}@}, display the friend declaration
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1995 within the current class. Use @{@kbd{V}@}, @code{(br-view-friend)} to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1996 view the definition of the friend class or function.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1997
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1998 @cindex constructor
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1999 @cindex destructor
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2000 @cindex operator new
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2001 @cindex operator delete
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2002 Methods and operators associated with creating and destroying objects
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2003 are preceded by the @code{"+ "} string in listing buffers. All other
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2004 method listing entries are preceded by the @code{"- "} string.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2005
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2006 @cindex C++
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2007 One can jump from a C++ declaration to its definition by clicking the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2008 Action Key when within the declaration. Most importantly, once a class
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2009 header file is displayed, simply click on a method declaration to see
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2010 its corresponding definition. Each feature declaration should be
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2011 terminated with a semicolon to ensure accurate scanning. If the method
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2012 is inherited from another class, a message at the bottom of the frame
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2013 will describe which class the method is defined in once the browser
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2014 displays the method definition.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2015
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2016 Parent classes may be browsed in a similar manner by clicking on their
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2017 names in an inheritance or declaration clause. It is therefore
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2018 important to click on the method name part of a declaration when that is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2019 the element desired.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2020
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2021 @vindex c++-include-dirs
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2022 @cindex #include
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2023 @cindex include files
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2024 Include files may be browsed by selecting their inclusion declarations
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2025 (#include ...) within a source file. Include files delimited by double
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2026 quotes are searched for in the following places: first, the directory of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2027 the current source file, then the directories listed in the variable
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2028 @var{c++-include-dirs}, and then in any directories included in the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2029 current environment.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2030
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2031 @vindex c++-cpp-include-dirs
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2032 Include files delimited by angle brackets are searched for in the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2033 following places: first, the directories listed in the variable
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2034 @var{c++-include-dirs}, then the directories listed in the variable
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2035 @var{c++-cpp-include-dirs}, and then in any directories included in the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2036 current environment. The variable @var{c++-cpp-include-dirs} should
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2037 hold a list of the standard directories searched by your C++ pre-processor.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2038 Each directory entry must end with a directory separator. On UNIX
100
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2039 systems, this is the `/' character.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2040
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2041 @node C++ Settings, , C++ Element Selection, C++ Specifics
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2042 @subsection C++ Settings
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2043 @vindex c++-class-keyword
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2044 @cindex class definition keywords
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2045 By default, @code{class}, @code{struct} and @code{union} definitions all
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2046 constitute class definitions to the C++ OO-Browser. If you prefer some
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2047 other criteria, you will need to modify the definition of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2048 @var{c++-class-keyword} in @file{br-c++.el}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2049
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2050 @vindex c++-src-file-regexp
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2051 @cindex file suffixes
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2052 If you find that the browser is not scanning some of your C++ source
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2053 files, you may be using file suffixes which it does not recognize.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2054 Examine the value of @var{c++-src-file-regexp} and add any special file
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2055 suffixes you use to it.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2056
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2057 @node CLOS Specifics, Eiffel Specifics, C++ Specifics, Languages
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2058 @section CLOS Specifics
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2059
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2060 @menu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2061 * CLOS Method Handling:: Method Handling
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2062 * CLOS Settings::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2063 @end menu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2064
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2065 @node CLOS Method Handling, CLOS Settings, CLOS Specifics, CLOS Specifics
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2066 @subsection Method Handling
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2067 @cindex CLOS methods
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2068 @cindex CLOS types
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2069 @cindex specialized parameters
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2070 @cindex methods, specialized parameters
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2071 In CLOS, methods may have typed parameters of the form,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2072 @code{(<parameter-name> <class>)}; these are called @dfn{specialized
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2073 parameters}. Each such parameter defines the method within
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2074 @code{<class>}. Thus, a single method definition can generate methods
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2075 associated with many classes. The OO-Browser lets you navigate to a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2076 method definition from any of the classes for which it is defined, since
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2077 a method is included as an element of each of its constituent classes.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2078
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2079 CLOS permits compile-time computation of the @code{<class>} of a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2080 specialized parameter, through use of the expression, @code{(eql
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2081 <form>)}. Since the OO-Browser cannot perform this computation, it
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2082 treats such a parameter as non-specialized.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2083
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2084 @cindex CLOS, the class t
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2085 Methods may also contain non-specialized parameters of the form,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2086 @code{<parameter-name>}. The type of each such parameter defaults to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2087 the default root class @code{t} in CLOS. But a method is only included
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2088 in the class @code{t} by the OO-Browser if none of its parameters are
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2089 specialized. Otherwise, methods with more specific types which happened
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2090 to include one or more non-specialized parameters would appear to not
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2091 have a more specific type than @code{t}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2092
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2093 @node CLOS Settings, , CLOS Method Handling, CLOS Specifics
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2094 @subsection CLOS Settings
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2095 The OO-Browser automatically works with CLOS class and method
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2096 definitions. But Lisp contains many other standard object types such as
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2097 functions, macros and variables which you may wish to browse. These are
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2098 handled through a configuration variable as explained below.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2099
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2100 @vindex clos-element-type-alist
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2101 @cindex default class
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2102 @cindex element type
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2103 The @var{clos-element-type-alist} variable determines the Lisp definition
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2104 constructs that the browser looks for and the associated default class
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2105 under which instances of each construct type are grouped. Each element
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2106 in the association list is a cons cell whose first part is the function
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2107 name string that defines an instance of a particular type,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2108 e.g@. @code{"defun"}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2109
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2110 The second part is a default class name, a string, under which to assign
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2111 each instance of the type, e.g@. @code{"function"}. The OO-Browser
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2112 always displays default class names with square brackets around them,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2113 e.g@. @code{[function]}, to distinguish them from classes defined within
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2114 the Environment.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2115
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2116 @noindent
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2117 Here is the default @var{clos-element-type-alist} setting:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2118
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2119 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2120 '(("defconstant" . "constant")
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2121 ("defconst" . "constant")
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2122 ("defun" . "function")
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2123 ("defgeneric" . "generic")
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2124 ("defmacro" . "macro")
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2125 ("defpackage" . "package")
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2126 ("defparameter" . "parameter")
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2127 ("defsetf" . "setfunction")
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2128 ("defstruct" . "structure")
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2129 ("deftype" . "type")
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2130 ("defvar" . "variable")
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2131 ("fset" . "function"))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2132 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2133
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2134 @vindex clos-def-form-with-args-regexp
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2135 The @var{clos-def-form-with-args-regexp} is a regular expression which
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2136 includes a subset of the definition symbol names from
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2137 @var{clos-element-type-alist}, namely those which require an argument
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2138 list to uniquely distinguish them from other elements, e.g@. functions.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2139
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2140
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2141 @node Eiffel Specifics, Java Specifics, CLOS Specifics, Languages
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2142 @section Eiffel Specifics
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2143
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2144 Eiffel support has now been updated to Eiffel version 3, to the best
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2145 of our knowledge. If you find any problems, please report them
100
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2146 to <oo-browser@@infodock.com> (this is a public mailing list).
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2147
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2148 @menu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2149 * Eiffel Listings::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2150 * Eiffel Element Selection:: Source Code Element Selection
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2151 * Eiffel Settings::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2152 @end menu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2153
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2154 @node Eiffel Listings, Eiffel Element Selection, Eiffel Specifics, Eiffel Specifics
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2155 @subsection Eiffel Listings
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2156
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2157 Eiffel entities are categorized when shown within OO-Browser listing
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2158 buffers. Classes are shown by name, without any prefix. Features
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2159 are shown by name but are preceded by a special character that indicates
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2160 the kind of feature. The following table describes each prefix.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2161
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2162 @table @code
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2163 @item -
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2164 precedes regular routines;
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2165 @item =
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2166 precedes attributes;
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2167 @item 1
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2168 precedes once routines, which create shared objects;
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2169 @item >
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2170 precedes deferred features, which are specified but not defined within
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2171 this class;
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2172 @item /
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2173 precedes external features, which are defined in a non-Eiffel language.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2174 @end table
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2175
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2176 @node Eiffel Element Selection, Eiffel Settings, Eiffel Listings, Eiffel Specifics
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2177 @subsection Source Code Element Selection
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2178 @cindex Eiffel
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2179 One can jump from an Eiffel element reference to its definition by
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2180 clicking the Action Key when within the reference. Selection of a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2181 feature name in an export clause displays the feature definition, even
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2182 if it is renamed several times within ancestors. Parent classes may be
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2183 browsed in a similar manner by clicking on their names in an inheritance
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2184 or declaration clause.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2185
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2186 The following example of locating a renamed feature is taken from an
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2187 actual set of Eiffel library classes:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2188
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2189 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2190 User selects feature @code{subwindow} of @code{POPUP_MENU}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2191 inherited from @code{WINDOW} which renames @code{child} as @code{subwindow}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2192 inherited from @code{TWO_WAY_TREE} which renames @code{active} as @code{child}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2193 inherited from @code{TWO_WAY_LIST}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2194 inherited from @code{LINKED_LIST} which defines @code{active}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2195 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2196
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2197 The browser would display the feature @code{active} and explain to the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2198 user that feature @code{subwindow} of class @code{POPUP_MENU} is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2199 inherited from feature @code{active} of class @code{LINKED_LIST}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2200 Location of this sort of feature definition would be incredibly tedious
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2201 without programmatic support.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2202
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2203 The algorithm used to locate features is dynamic, so if another class
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2204 were inserted into the inheritance structure given above, the feature
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2205 definition would still be located properly.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2206
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2207 @node Eiffel Settings, , Eiffel Element Selection, Eiffel Specifics
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2208 @subsection Eiffel Settings
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2209
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2210 @findex eif-get-parents-from-source
100
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2211 Be sure that the `inherit' and `feature' clauses in your classes begin in
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2212 column 0; otherwise the browser parser will not work properly. If you prefer
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2213 some other indentation style, you will need to slightly alter
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2214 @code{(eif-get-parents-from-source)} in @file{br-eif.el}; specifically,
100
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2215 the lines that contain `^inherit' and `^feature'.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2216
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2217 @cindex Eiffel, error parsing
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2218 @cindex error parsing
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2219 Emacs has a feature called error parsing which lets one quickly jump to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2220 the line of code that supposedly triggered an error.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2221 (@xref{Compilation, ,Compilation Errors, emacs, The Gnu Emacs Manual},
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2222 for information on error parsing.) Some object-oriented language
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2223 compilers display the name of the class and line number with each error
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2224 message but do not include the filename containing the class source
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2225 code. Emacs then has no way of parsing the error message. The browser
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2226 class location facilities enable one to perform error parsing across any
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2227 set of classes in a single Environment, given only this type of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2228 message. Interactive Software Engineering's Eiffel compiler is an
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2229 example of a compiler that produces this type of error. The code for
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2230 parsing these Eiffel error messages is included in
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2231 @file{eif-ise-err.el}.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2232
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2233 @node Java Specifics, Objective-C Specifics, Eiffel Specifics, Languages
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2234 @section Java Specifics
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2235
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2236 @cindex Java feature listings
100
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2237 @cindex Java attribute
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2238 @cindex attribute, Java
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2239 Java attribute names are precededed by @code{"= "} in feature listings.
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2240
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2241 @cindex abstract method
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2242 @cindex method, abstract
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2243 @cindex deferred function
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2244 Java abstract method declarations, which specify method interfaces
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2245 but no implementation, appear in class feature listings. The method
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2246 name is preceded by the @code{"> "} string to identify the method as an
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2247 abstract (deferred) method. Abstract methods may be treated like any
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2248 other methods within the browser. Since there is no definition
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2249 for such a method within the class in which it is listed, its
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2250 declaration will be shown instead, when requested.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2251
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2252 @cindex native method
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2253 @cindex method, native
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2254 Native methods are like abstract methods in that only their interfaces
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2255 are specified in Java. Unlike abstract methods, their method bodies are
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2256 defined in external languages such as C to allow for machine-specific
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2257 dependencies. Native methods are listed in the browser prefixed by the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2258 @code{"/ "} string, indicating that they are divided between Java and
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2259 another language.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2260
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2261 @cindex constructor
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2262 @cindex destructor
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2263 Methods associated with creating and destroying objects
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2264 are preceded by the @code{"+ "} string in listing buffers. All other
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2265 method listing entries are preceded by the @code{"- "} string.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2266
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2267 @vindex Java-class-keyword
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2268 @cindex class definition keywords
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2269 Java interface specifications, which specify protocols to which classes
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2270 must conform, are treated just like class definitions in browser
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2271 listings. All the methods of such interfaces are abstract, however.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2272
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2273 @node Objective-C Specifics, , Java Specifics, Languages
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2274 @section Objective-C Specifics
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2275
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2276 @xref{C Specifics}, for details on C-specific support within Objective-C
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2277 Environments.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2278
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2279 The OO-Browser supports browsing Objective-C classes, methods,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2280 categories and formal protocols. Earlier sections of this manual explain
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2281 how to browse these entities. This section documents Objective-C
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2282 language specifics, including variable settings.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2283
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2284 Objective-C entities are categorized when shown within OO-Browser listing
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2285 buffers. Classes are shown by name, without any prefix. Methods
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2286 are shown by name but are preceded by a special character that indicates
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2287 the kind of method. The following table describes each prefix.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2288
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2289 @table @code
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2290 @item -
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2291 precedes instance methods;
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2292 @item +
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2293 precedes class (factory) methods that affect the factory object for the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2294 class.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2295 @end table
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2296
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2297 @menu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2298 * Objective-C Categories::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2299 * Objective-C Protocols::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2300 * Objective-C Element Selection:: Source Code Element Selection
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2301 * Objective-C Settings::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2302 @end menu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2303
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2304 @node Objective-C Categories, Objective-C Protocols, Objective-C Specifics, Objective-C Specifics
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2305 @subsection Objective-C Categories
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2306 @cindex category
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2307 @cindex Objective-C category
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2308 An @dfn{Objective-C category} is an internal class grouping that
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2309 specifies and implements a set of related class features. The
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2310 aggregation of all of the categories defined by a class and its
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2311 ancestors represents the complete class definition.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2312
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2313 The OO-Browser can list and browse the source for: the categories of a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2314 class, all class categories in an Environment, and the classes which
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2315 implement a category. @xref{Browsing Categories}, for details.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2316
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2317 @node Objective-C Protocols, Objective-C Element Selection, Objective-C Categories, Objective-C Specifics
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2318 @subsection Objective-C Protocols
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2319 @cindex protocol
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2320 @cindex Objective-C protocol
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2321 An @dfn{Objective-C protocol} is an interface specification to which a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2322 class may conform. The protocol includes a set of method signatures
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2323 which any conforming class must implement. One protocol may inherit
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2324 from a list of other protocols, and thus expand the set of methods which
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2325 a conforming class must implement. The OO-Browser can list and browse
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2326 the source for: the protocols to which a class conforms, all protocols
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2327 in an Environment, and the implementors of a protocol. @xref{Browsing
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2328 Protocols}, for details.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2329
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2330 @node Objective-C Element Selection, Objective-C Settings, Objective-C Protocols, Objective-C Specifics
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2331 @subsection Source Code Element Selection
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2332 @cindex Objective-C
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2333 One can jump from an Objective-C declaration to its definition by
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2334 clicking the Action Key when within the declaration. Most importantly,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2335 once a class header file is displayed, simply click on a method
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2336 declaration to see its corresponding definition. If the method is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2337 inherited from another class, a message at the bottom of the frame will
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2338 describe which class the method is defined in once the browser displays
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2339 the method definition.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2340
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2341 Parent classes may be browsed in a similar manner by clicking on their
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2342 names in an inheritance or declaration clause. It is therefore
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2343 important to click on the method name part of a declaration when that is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2344 the element desired.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2345
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2346 @vindex objc-include-dirs
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2347 @cindex #import
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2348 @cindex include files
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2349 Include files may be browsed by selecting their inclusion declarations
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2350 (#import ...) within a source file. Include files delimited by double
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2351 quotes are searched for in the following places: first, the directory of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2352 the current source file, then the directories listed in the variable
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2353 @var{objc-include-dirs}, and then in any directories included in the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2354 current environment.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2355
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2356 @vindex objc-cpp-include-dirs
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2357 Include files delimited by angle brackets are searched for in the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2358 following places: first, the directories listed in the variable
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2359 @var{objc-include-dirs}, then the directories listed in the variable
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2360 @var{objc-cpp-include-dirs}, and then in any directories included in the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2361 current environment. The variable @var{objc-cpp-include-dirs} should
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2362 hold a list of the standard directories searched by your Objective-C
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2363 pre-processor. Each directory entry must end with a directory
100
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2364 separator. On UNIX systems, this is the `/' character.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2365
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2366 @node Objective-C Settings, Python Specifics, Objective-C Element Selection, Objective-C Specifics
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2367 @subsection Objective-C Settings
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2368 @vindex objc-class-keyword
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2369 @cindex class definition keywords
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2370 By default, the @code{@@interface} keyword indicates a class definition to the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2371 Objective-C OO-Browser. If you prefer some other criteria, you will need to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2372 modify the definition of @var{objc-class-keyword} in @file{br-objc.el}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2373
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2374 @vindex objc-src-file-regexp
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2375 @cindex file suffixes
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2376 If you find that the browser is not scanning some of your Objective-C
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2377 source files, you may be using file suffixes which it does not
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2378 recognize. Examine the value of @var{objc-src-file-regexp} and add any
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2379 special file suffixes you use to it.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2380
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2381
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2382 @node Python Specifics, Python Module Lookup, Objective-C Settings, Languages
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2383 @section Python Specifics
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2384
100
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2385 @cindex Python doc strings
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2386 The OO-Browser supports browsing Python classes and methods.
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2387 Documentation strings for classes or methods may be displayed
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2388 from a listing buffer with the @{@kbd{i}@} key.
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2389
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2390 Python method names are preceded by the @code{"- "} string in listing
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2391 buffers.
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2392
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2393 @cindex Python functions
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2394 Global functions are grouped under the default class @code{[function]} to
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2395 distinguish them from classes or class methods.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2396
100
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2397 Nested classes are not recognized by the browser, nor are run-time
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2398 modifications to classes.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2399
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2400 @menu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2401 * Python Module Lookup:: Source Code Element Selection
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2402 * Python Settings::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2403 @end menu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2404
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2405 @node Python Module Lookup, Python Settings , Python Specifics, Python Specifics
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2406 @subsection Python Module Lookup
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2407
100
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2408 The @file{br-help-ms} file summarizes mouse key operation within the
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2409 browser. Use @{@kbd{H}@}, the @code{(br-help-ms)} command, to display
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2410 this help when point is within a listing window.
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2411
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2412 @cindex Python import statement
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2413 An Action Key press on a module name within a Python import statement
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2414 will display the source for the module, if it is found within the
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2415 current Environment.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2416
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2417 @node Python Settings, , Python Module Lookup, Python Specifics
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2418 @subsection Python Settings
100
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2419
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2420 @vindex python-import-dirs
100
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2421 A press of the Action Key on an import statement, tries to display the
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2422 module to be imported. First, the module is looked up within the
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2423 current Environment directories. If not found, the path
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2424 @file{/usr/local/lib/python} is searched. Modify
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2425 the variable, @var{python-import-dirs}, to alter the set of paths
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2426 searched after the Environment directories..
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2427
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2428
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2429 @c ***************************
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2430 @c Appendices
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2431 @c ***************************
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2432
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2433
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2434 @node Features, Commands, Languages, Top
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2435 @c node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2436 @appendix OO-Browser Features
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2437
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2438 @itemize @bullet
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2439
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2440 @item
100
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2441 Support for C, C++, Common Lisp and its Object System (CLOS), Eiffel,
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2442 Java, Objective-C, Python and Smalltalk class browsing is included.
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2443 Additionally, support for browsing large amounts of material in Info
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2444 format by node name (a popular online documentation format with cross
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2445 references and hierarchical structure) is included. All languages
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2446 provide class browsing via either a textual or a graphical interface.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2447
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2448 @item
100
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2449 Method and typically attribute browsing is supported for all languages
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2450 except Smalltalk. CLOS supports browsing all elements defined with
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2451 (def* constructs. In-source feature browsing is also supported for all
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2452 of these languages. One simply selects a feature name to jump to its
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2453 corresponding source. Method name overloading in C++ and inherited
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2454 feature renaming in Eiffel are fully supported.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2455
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2456 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2457 C code browsing is supported for C++, Objective-C and C source code.
100
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2458
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2459 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2460 Objective-C category and formal protocol browsing are supported.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2461
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2462 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2463 C++ parameterized template classes and methods are supported.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2464
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2465 @item
100
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2466 Java abstract and native (externally defined) methods are supported.
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2467
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2468 @item
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2469 Building Environments is fast compared to many other tools and browser
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2470 startup once an Environment has been built is very fast. Response times
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2471 on workstations are excellent; for example, in one test case, less than
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2472 two real seconds were required to display a set of complex inheritance
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2473 graphs involving over 400 classes.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2474
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2475 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2476 Class inheritance networks may be displayed. Either a single
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2477 inheritance level (parents or children) or the entire inheritance
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2478 network (ancestors or descendants) for a set of classes may be shown.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2479
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2480 @cindex multiple inheritance
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2481 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2482 Multiple inheritance support is built-in, where applicable.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2483
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2484 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2485 The user need not know the location of class source; the browser will display
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2486 or edit a class source based solely upon its class name.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2487
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2488 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2489 Immediate switching among languages is allowed. One can switch from Eiffel
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2490 browsing to C++ browsing in an instant, if so desired. Or simply run two
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2491 browsers side by side.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2492
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2493 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2494 Class files may be added, replaced or deleted one at a time or as a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2495 group by specifying a root directory below which all class files are
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2496 found, including those in subdirectories.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2497
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2498 @item
100
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2499 The OO-Browser uses class source code only, hence no compiler is
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2500 necessary for proper browser operation. This allows one to explore
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2501 class libraries without the need for additional tools.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2502
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2503 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2504 Library (stable) and System (in development) classes may be maintained and
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2505 listed separately or together. Any number of Libraries and Systems may be
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2506 combined for listing in a single Environment. There are no fixed limits
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2507 on the number of classes per Environment nor on the number of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2508 Environments that may be browsed.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2509
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2510 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2511 The number of listing windows is limited only by the frame width and
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2512 the width setting used for listing windows.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2513
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2514 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2515 Statistics on classes and Environments may be displayed.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2516
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2517 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2518 Language-specific class information may be shown. Presently this feature is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2519 supported only for Eiffel. A listing of class parents, attributes,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2520 routines and best guess (highly accurate) list of routine calls may be
100
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2521 displayed. Outputs from the Eiffel `short' and `flat' commands may also be
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2522 shown.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2523
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2524 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2525 Machine-independent mouse support is included along with an extremely
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2526 intuitive point and click interface. The OO-Browser is pre-configured
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2527 for use with the X window system, NEXTSTEP, Sunview or Apollo's DM
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2528 window system under InfoDock, Emacs V19, XEmacs, Epoch, and Emacs V18.
100
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2529 Online mouse usage help is always one key away. (Don't try that level
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2530 of platform independence with Java!)
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2531
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2532 @item
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2533 X and NEXTSTEP hierarchy display browsers are included. They provide
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2534 views of class inheritance structure and lexically included elements,
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2535 which allows for quick random access to entire Environments. A click on
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2536 a class or element name immediately jumps to it in the editor, providing
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2537 rapid, visual browsing. One can pop up several graphical browsers to
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2538 gain several views of classes in the same or in multiple environments.
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2539 All graphical browsers can communicate with a single textual browser, so
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2540 one can quickly display and edit classes from different environments
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2541 (even different languages). Multiple inheritance is handled through
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2542 repetition of nodes throughout the tree; repeated nodes are followed by
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2543 ellipses to indicate multiple inheritance.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2544
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2545 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2546 Popup and pulldown command menus are available under InfoDock, Emacs V19
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2547 and XEmacs.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2548
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2549 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2550 All browser outputs are text which may be edited as desired or saved to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2551 files.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2552
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2553 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2554 A single key provides ASCII ordering of class names, ascending or
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2555 descending, including those from inheritance trees. Classes may be
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2556 easily located by matching a regular expression or string to the set of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2557 class names in an Environment, with repeated searches incrementally
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2558 narrowing the selected set.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2559
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2560 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2561 Browser functions may be used standalone within the editor without using
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2562 the multi-windowed browser interface. One useful example is to point to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2563 a class name such as a parent class in the text of another class and
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2564 have the parent's source appear in an editable fashion. An alternative
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2565 editor and viewer may be selected to adapt the browser to personal
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2566 taste.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2567
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2568 @cindex CLOS
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2569 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2570 The browser is adaptable to any class-based object-oriented language.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2571 It works best with languages that focus on static class creation such as
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2572 Eiffel and C++. Those that use dynamic (runtime) class creation such as
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2573 CLOS must be interfaced to the browser so that classes created at runtime
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2574 are added to the browser's Environment.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2575
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2576 @cindex GNU Emacs
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2577 @cindex UNIX
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2578 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2579 The OO-Browser is integrated with the powerful GNU Emacs editor; it works on
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2580 any UNIX system display supported by Emacs. Most browser commands may
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2581 be executed by direct selection, providing a very natural interface.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2582
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2583 @cindex source code
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2584 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2585 All source code, over 400 kilobytes, is included and is heavily documented.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2586 @end itemize
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2587
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2588
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2589 @node Commands, Glossary, Features, Top
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2590 @appendix OO-Browser Command Descriptions
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2591
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2592 @c Call {M-x doc} to insert documentation in table.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2593 @c Call (br-cmd-doc t) to remove documentation from table.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2594
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2595 @cindex arguments
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2596 @cindex formal arguments
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2597 @cindex programming
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2598 The following documentation is meant for programmers who want to modify
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2599 the OO-Browser but is included here since some users of the OO-Browser
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2600 may find it useful. All commands that are bound to keys and that are
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2601 specific to the OO-Browser are listed here. Within each command
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2602 description, identifiers shown in all capitals are the names of the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2603 command's formal arguments; all formal arguments are presented in the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2604 order in which they are required by the command. If a command takes
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2605 optional arguments, the first optional argument is labeled
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2606 @emph{optional}; all following arguments are assumed to be optional.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2607
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2608 @cindex command documentation
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2609 @cindex OO-Browser commands
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2610 @table @code
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2611
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2612 @findex br-add-class-file
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2613 @item br-add-class-file @{@kbd{C-c ^}@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2614 Adds a file of classes to the current Environment. Interactively or
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2615 when optional CLASS-PATH is nil, defaults to current buffer file as
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2616 CLASS-PATH. If optional LIB-TABLE-P is non-nil, add to Library
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2617 Environment, otherwise add to System Environment. If optional SAVE-FILE
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2618 is t, the Environment is then stored to the filename given by
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2619 @var{br-env-file}. If SAVE-FILE is non-nil and not t, its string value
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2620 is used as the file to which to save the Environment.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2621
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2622 @findex br-ancestors
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2623 @item br-ancestors @{@kbd{a}@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2624 Display ancestor tree whose root is the current class. With optional
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2625 prefix ARG, display all ancestor trees whose roots are visible classes
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2626 at the current level. ARG = -1 inverts current class ancestry tree.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2627 That is, it shows branches going down towards the root class, so that
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2628 parents appear above children. ARG < -1 inverts all ancestry trees.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2629
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2630 @findex br-at
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2631 @item br-at @{@kbd{@@}@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2632 Display current class location in the inheritance graph.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2633 The class is displayed among both its ancestors and descendants.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2634 With optional prefix ARG, display location for all visible classes at the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2635 current level.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2636
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2637 @findex br-buffer-menu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2638 @item br-buffer-menu @{@kbd{b}@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2639 Display selection list of buffers with attached files in viewer window.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2640
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2641 @findex br-children
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2642 @item br-children @{@kbd{c}@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2643 Display children of current class. With optional prefix ARG, display
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2644 children of all visible classes at the current level.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2645
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2646 @findex br-class-stats
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2647 @item br-class-stats @{@kbd{M-c}@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2648 Display statistics summary for current class. Optional prefix arg
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2649 PROMPT means prompt for class name.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2650
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2651 @findex br-copyright
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2652 @item br-copyright
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2653 @cindex copyright
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2654 Display browser copyright information in viewer window.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2655
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2656 @findex br-count
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2657 @item br-count @{@kbd{#}@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2658 Count number of classes visible in current listing buffer. Print
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2659 text result in minibuffer when called interactively.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2660
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2661 @findex br-delete
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2662 @item br-delete @{@kbd{C-c C-d}@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2663 Delete class from current Environment. Optional prefix arg PROMPT means
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2664 prompt for class name.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2665
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2666 @findex br-descendants
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2667 @item br-descendants @{@kbd{d}@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2668 Display descendant tree whose root is the current class. With optional
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2669 prefix ARG, display all descendant trees whose roots are visible classes
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2670 at the current level.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2671
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2672 @findex br-edit-entry
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2673 @item br-edit-entry @{@kbd{e}@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2674 Edits source for any browser listing entry, such as a class or a feature.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2675 Optional prefix arg PROMPT means prompt for entry name.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2676
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2677 @findex br-env-create
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2678 @item br-env-create @{@kbd{C-c C-c}@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2679 Create and save the specification of a new OO-Browser Environment.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2680 Interactively prompt for the Environment file name or use optional
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2681 ENV-FILE. Interactively prompt for the Environment language to use or
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2682 use optional LANG-PREFIX as language indicator. Return the name of the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2683 Envir spec file created. Do not build the Environment. Use
100
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2684 `br-env-build' to construct an Environment from its specification.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2685
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2686 @findex br-env-load
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2687 @item br-env-load @{@kbd{C-c C-l}@}
100
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2688 Load browser Environment or spec from optional ENV-FILE or `br-env-file'.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2689 Non-nil PROMPT means prompt user before building tables.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2690 Non-nil NO-BUILD means skip build of Environment entirely.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2691 Return t if load is successful, else nil.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2692
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2693 @findex br-env-rebuild
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2694 @item br-env-rebuild @{@kbd{C-c C-e}@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2695 Rescan System and Library sources associated with the current Environment.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2696
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2697 @findex br-env-save
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2698 @item br-env-save @{@kbd{C-c C-s}@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2699 Save changed Environment to file given by optional SAVE-FILE or
100
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2700 `br-env-file'.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2701
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2702 @findex br-env-stats
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2703 @item br-env-stats @{@kbd{M-e}@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2704 Display summary for current Environment in viewer window.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2705 With optional prefix ARG, display class totals in minibuffer.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2706
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2707 @findex br-exit-level
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2708 @item br-exit-level @{@kbd{x}@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2709 Return to prefix ARGth previous inheritance level listing.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2710 The command is ignored with ARG < 1.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2711
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2712 @findex br-find
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2713 @item br-find
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2714 Interactively completes class or feature ELEMENT-NAME and jumps to its definition.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2715 Returns ELEMENT-NAME or signals an error.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2716
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2717 @findex br-feature-signature
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2718 @item br-feature-signature @{@kbd{F}@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2719 Show full feature signature in the view window.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2720 With optional prefix ARG, display signatures of all features from the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2721 current buffer.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2722
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2723 @findex br-help
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2724 @item br-help @{@kbd{h}@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2725 Display browser operation help information in viewer window.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2726
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2727 @findex br-help-ms
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2728 @item br-help-ms @{@kbd{H}@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2729 Display browser mouse usage help information in viewer window.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2730
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2731 @findex br-entry-info
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2732 @item br-entry-info @{@kbd{i}@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2733 Display attributes of the current entry in the viewer window.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2734
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2735 @findex br-implementors
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2736 @item br-implementors @{@kbd{I}@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2737 Display hierarchy of classes that define current feature. Ignore
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2738 inherited features. With optional prefix ARG, display implementors of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2739 all features at the current level.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2740
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2741 @findex br-kill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2742 @item br-kill @{@kbd{C-c C-k}@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2743 Kill buffer in viewer window and redisplay help text.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2744
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2745 @findex br-lib-top-classes
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2746 @item br-lib-top-classes @{@kbd{l}@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2747 Display list of top level Library classes. With prefix ARG, display all
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2748 Library classes.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2749
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2750 @findex br-lib-rebuild
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2751 @item br-lib-rebuild @{@kbd{L}@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2752 Rescan Library components of the current Environment.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2753
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2754 @findex br-match
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2755 @item br-match @{@kbd{m}@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2756 Show all class names in current Environment that contain optional EXPR.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2757 Nil value of EXPR means prompt for a value. With optional prefix ARG, EXPR
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2758 is treated as a string. By default, it is treated as a regular expresion.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2759 AGAIN non-nil shows the number of classes MATCHED from the last search,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2760 allowing repeated narrowing of the search set. Empty EXPR when AGAIN is nil
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2761 matches to all classes in the Environment.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2762
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2763 @findex br-match-entries
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2764 @item br-match-entries @{@kbd{M}@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2765 Show all entries in current listing that contain optional EXPR.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2766 Nil value of EXPR means prompt for a value. With optional prefix ARG, EXPR
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2767 is treated as a string. By default, it is treated as a regular expresion.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2768 AGAIN non-nil means show the number of entries MATCHED from last search,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2769 allowing repeated narrowing of the search set. Empty EXPR when AGAIN is nil
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2770 matches to all entries in the listing.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2771
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2772 @findex br-next-entry
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2773 @item br-next-entry @{@kbd{C-n}@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2774 Move point vertically down prefix ARG number of lines in listing
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2775 buffer.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2776
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2777 @findex br-order
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2778 @item br-order @{@kbd{o}@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2779 Order current browser listing window entries.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2780 With prefix ARG other than 1 (the default), don't remove leading space from
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2781 entry lines before ordering. Negative ARG means order in descending Ascii
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2782 sequence, otherwise order in ascending sequence.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2783
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2784 @findex br-parents
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2785 @item br-parents @{@kbd{p}@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2786 Display parents of current class. With optional prefix ARG, display
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2787 parents of all visible classes at the current level.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2788
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2789 @findex br-prev-entry
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2790 @item br-prev-entry @{@kbd{C-p}@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2791 Move point vertically up prefix ARG number of lines in listing
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2792 buffer.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2793
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2794 @findex br-quit
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2795 @item br-quit @{@kbd{q}@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2796 Quit browser. With optional prefix ARG, delete window configurations
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2797 and listing buffers associated with the browser.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2798
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2799 @findex br-refresh
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2800 @item br-refresh @{@kbd{C-c C-r}@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2801 Restore OO-Browser to its state upon startup.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2802
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2803 @findex br-resize-narrow
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2804 @item br-resize-narrow @{@kbd{C-x -}@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2805 Resize listing windows so are narrower by 10 characters.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2806
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2807 @findex br-resize-widen
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2808 @item br-resize-widen @{@kbd{C-x +}@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2809 Resize listing windows so are wider by 10 characters.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2810
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2811 @findex br-features
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2812 @vindex br-inherited-features-flag
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2813 @item br-features @{@kbd{f}@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2814 Display features/elements of the current class (prefix ARG = 1) or of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2815 the current listing if ARG is other than 0 or 1.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2816
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2817 With ARG = 0, the value of the variable, @var{br-inherited-features-flag},
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2818 is toggled and no other action is taken.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2819
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2820 If @var{br-inherited-features-flag} is @code{t}, all features of each
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2821 class are shown. If @code{nil}, only lexically included features are
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2822 shown and if the features of a single class are requested and none are
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2823 defined, the class definition is displayed so that its feature
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2824 declarations may be browsed.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2825
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2826 @findex br-sys-rebuild
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2827 @item br-sys-rebuild @{@kbd{S}@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2828 Rescan System components of the current Environment.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2829
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2830 @findex br-sys-top-classes
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2831 @item br-sys-top-classes @{@kbd{s}@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2832 Display list of top level System classes.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2833 With prefix ARG, display all System classes.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2834
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2835 @findex br-to-from-viewer
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2836 @item br-to-from-viewer @{@kbd{C-c C-v}@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2837 Move point to viewer window or back to last recorded listing
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2838 window.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2839
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2840 @findex br-toggle-keep-viewed
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2841 @vindex br-keep-viewed-classes
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2842 @item br-toggle-keep-viewed
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2843 Toggle the value of the @var{br-keep-viewed-classes} flag.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2844
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2845 @findex br-top-classes
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2846 @item br-top-classes @{@kbd{t}@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2847 Display list of top level classes.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2848 With prefix ARG, display all Environment classes.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2849
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2850 @findex br-unique
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2851 @item br-unique @{@kbd{u}@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2852 Eliminate adjacent duplicate entry names from the current listing window.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2853 If two adjacent entries look the same one is eliminated, even if they refer
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2854 to different class elements.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2855
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2856 @findex br-version
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2857 @item br-version @{@kbd{C-c #}@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2858 Display browser version number.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2859
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2860 @findex br-view-entry
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2861 @item br-view-entry @{@kbd{v}@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2862 Displays source for any browser listing entry.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2863 Optional prefix arg PROMPT means prompt for entry name.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2864
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2865 @findex br-view-friend
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2866 @item br-view-friend @{@kbd{V}@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2867 With point on a friend listing entry, view its source code definition.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2868 With optional OTHER-WIN non-nil, display in another window.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2869 With optional SIG-AT-POINT-FLAG non-nil, assume point is within a friend
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2870 signature in a source buffer.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2871
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2872 @findex br-view-full-frame
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2873 @item br-view-full-frame @{@kbd{1}@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2874 Use full frame to display contents of viewer window.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2875
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2876 @findex br-viewer-scroll-down
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2877 @item br-viewer-scroll-down @{@kbd{DEL}@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2878 Scroll viewer window downward ARG lines or a windowful if no ARG.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2879
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2880 @findex br-viewer-scroll-up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2881 @item br-viewer-scroll-up @{@kbd{SPC}@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2882 Scroll viewer window upward ARG lines or a windowful if no ARG.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2883
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2884 @findex br-where
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2885 @item br-where @{@kbd{w}@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2886 Display in minibuffer and return full path of a browser listing entry.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2887 Optional prefix arg PROMPT means prompt for entry name."
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2888
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2889 @findex br-write-buffer
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2890 @item br-write-buffer @{@kbd{C-c C-w}@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2891 Write narrowed portion of current browser buffer to a file.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2892
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2893 @findex br-tree
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2894 @item br-tree @{@kbd{M-d}@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2895 Start the @file{xbr} application with descendency tree of current class.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2896 With optional prefix ARG, a descendency tree for each class in current
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2897 buffer.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2898
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2899 @findex br-tree-graph
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2900 @item br-tree-graph @{@kbd{M-g}@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2901 Start the appropriate tree application with the tree from current
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2902 listing buffer.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2903
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2904 @findex br-tree-kill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2905 @item br-tree-kill @{@kbd{M-k}@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2906 Prompt user whether to kill all @file{xbr} sub-processes.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2907
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2908 @findex br-tree-features-toggle
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2909 @item br-tree-features-toggle @{@kbd{M-f}@}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2910 Toggle between showing features and hiding them when @code{br-tree} is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2911 invoked to display descendants graphically.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2912
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2913 @end table
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2914
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2915
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2916 @c ***************************
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2917 @c Unnumbered Chapters
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2918 @c ***************************
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2919
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2920 @node Glossary, References, Commands, Top
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2921 @unnumbered Glossary
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2922
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2923 Concepts pertinent to operational usage of the OO-Browser are defined here.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2924
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2925 If some GNU Emacs terms are unfamiliar to you, see @cite{[Stallman 87]}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2926
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2927 @table @code
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2928 @item Ancestors
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2929 All classes above a class in the inheritance hierarchy.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2930
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2931 @item Category
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2932 Under most languages, a logical grouping of related classes. The
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2933 OO-Browser does not yet have any support for this kind of category.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2934
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2935 Under Objective-C, a partial class definition that implements a related
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2936 set of methods. The full class definitions is formed from the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2937 conjunction of all of the class' categories. The OO-Browser supports
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2938 Objective-C category browsing.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2939
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2940 @item Children
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2941 First level of classes below a class in the inheritance hierarchy. Those
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2942 that directly inherit from a class.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2943
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2944 @item Class
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2945 A category from which object instances are created. The OO-Browser
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2946 can display classes along with their elements, categories and formal
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2947 protocols.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2948
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2949 @item Class at Point
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2950 Class name in a listing buffer whose name appears on the same line as
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2951 point.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2952
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2953 @item Declaration
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2954 A specification of a programatic entity, for reference by other parts of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2955 a program. See also @code{Definition}. The declaration of a method
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2956 specifies its signature but not its body.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2957
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2958 @item Default Class
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2959 A class that the OO-Browser creates to simplify browsing a particular
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2960 category of objects such as class protocols or global functions.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2961 Default class names begin and end with square bracket delimiters, as in
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2962 @code{[protocol]}.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2963
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2964 @item Definition
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2965 Programmatic definition of an entity, e.g@. defining the body of a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2966 method.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2967
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2968 @item Completion
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2969 The act of filling in the non-ambiguous part of a requested item, such
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2970 as a class name or a file name.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2971
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2972 @item Decendants
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2973 All classes below a class in the inheritance hierarchy.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2974
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2975 @item Element
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2976 A feature or an instance of a class.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2977
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2978 @item Environment
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2979 A series of browser lookup tables and control variables that specify the set
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2980 of classes and inter-class relationships with which the browser works.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2981
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2982 @item Environment File
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2983 A file used to store browser Environments.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2984
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2985 @item Environment Specification
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2986 Unambiguously tells the browser what to include in the construction of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2987 an Environment.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2988
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2989 @item Feature
100
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2990 An method, attribute, or other component of a class. Features may be
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 76
diff changeset
2991 public or private and in some languages, non-inheritable.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2992
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2993 @item Formal Protocol
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2994 See @code{Protocol}.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2995
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2996 @item Implementor
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2997 A class in which a particular element is defined. This does not include
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2998 classes which inherit an element.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2999
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3000 @item Initialization File
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3001 See @code{Personal Initialization File}.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3002
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3003 @item Instance
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3004 An object which has a particular class as its type. The class serves as
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3005 a template for instance creation.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3006
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3007 @item Library Classes
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3008 Stable, seldomly changed classes that have been released for general
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3009 usage.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3010
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3011 @item Listing Window
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3012 One of a number of browser windows used to display lists of classes.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3013 Inheritance relations are shown by class name indentation and by the class
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3014 level numbers in the listing buffer mode lines.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3015
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3016 @item Lookup Table
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3017 A store used to help the browser quickly determine inter-class
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3018 relationships.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3019
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3020 @item Member
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3021 See @code{Feature}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3022
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3023 @item Method
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3024 A callable function defined within one or more classes.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3025
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3026 @item Minibuffer Window
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3027 The single line window at the bottom of an Emacs frame. It is used to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3028 interact with the user by displaying messages and prompting for
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3029 input.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3030
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3031 @item Parents
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3032 First level of classes above a class in the inheritance hierarchy. Those
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3033 from which a class directly inherits.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3034
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3035 @vindex file, .br-init.el
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3036 @item Personal Initialization File
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3037 The optional file, @file{~/.br-init.el}, which sets user-specific
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3038 options affecting operation of the OO-Browser, thereby configuring the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3039 browser for personal use.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3040
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3041 @item Point
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3042 The point in the current buffer in front of the character which the Emacs
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3043 cursor is over but after any prior character.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3044
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3045 @item Protocol
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3046 An interface specification to which a class conforms. Some languages
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3047 use abstract classes for this purpose. Under Objective-C, one may also
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3048 define formal protocols which include a set of method signatures which a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3049 class must implement if it conforms to the protocol. Also under
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3050 Objective-C, one protocol may inherit from a list of other protocols,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3051 and thus expand the set of methods which a conforming class must
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3052 implement.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3053
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3054 @item Routine
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3055 See @code{Method}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3056
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3057 @item Signature
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3058 An interface specification for a method. It includes the method's
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3059 class, type of return value and the types of its formal parameters.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3060
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3061 @item Smart System
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3062 The Smart System is another handy program that helps you to work smarter
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3063 and faster. It consists of two parts, the Smart Key System, a direct
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3064 manipulation keyboard interface that gives you control of most GNU Emacs
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3065 subsystems by using only two keys, and the Smart Menu System. This
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3066 provides a hierarchy of menus within Emacs that you use instead of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3067 keyboard commands. Just point and click on a menu entry. One of its
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3068 uses is to invoke the OO-Browser on any desired language Environment.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3069 (The Smart Key System is included with the Smart Menu System.)@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3070
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3071 @item Smart Menu System
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3072 See @code{Smart System}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3073
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3074 @item System Classes
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3075 Classes still in development whose interfaces are likely to change.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3076 They are typically part of a specific project and are often not meant to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3077 be reused elsewhere.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3078
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3079 @item Top-Level Classes
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3080 Classes without parents. Those at the top of the inheritance tree for a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3081 given Environment.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3082
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3083 @item Viewer Window
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3084 The largest, bottom-most window in the browser used for displaying class
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3085 source and help information.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3086 @end table
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3087
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3088
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3089 @node References, Keys, Glossary, Top
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3090 @unnumbered References
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3091
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3092 @table @b
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3093 @item [Meyer 88]
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3094 Meyer, Bertrand. Object-oriented Software Construction. Prentice Hall
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3095 International: UK, 1988.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3096
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3097 @item [Meyer 89]
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3098 Meyer, Bertrand. Eiffel: The Language. Interactive Software
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3099 Engineering: Santa Barbara, CA, 1989. (Also being republished by
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3100 Prentice Hall.)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3101
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3102 @item [Goldberg 83]
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3103 Goldberg, Adele and David Robson. @emph{Smalltalk-80: The Language and
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3104 its Implementation}. Addison-Wesley, 1983.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3105
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3106 @item [Stallman 87]
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3107 Stallman, Richard. @emph{GNU Emacs Manual}. Free Software Foundation,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3108 Cambridge: MA, March 1987.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3109
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3110 @item [Java 95]
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3111 @emph{The Java Language Specification}. Sun Microsystems Computer
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3112 Corporation, Mountain View, CA, February 1, 1995.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3113 @end table
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3114
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3115
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3116 @c ***************************
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3117 @c Indices
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3118 @c ***************************
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3119
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3120 @node Keys, Command Index, References, Top
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3121 @unnumbered Key Binding Index
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3122
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3123 @printindex ky
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3124
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3125 @node Command Index, Concepts, Keys, Top
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3126 @unnumbered Command and Variable Index
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3127
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3128 @printindex fn
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3129
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3130 @node Concepts, , Command Index, Top
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3131 @unnumbered Concept Index
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3132
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3133 @printindex cp
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3134
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3135 @page
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3136 @page
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3137 @summarycontents
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3138 @contents
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3139 @bye
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3140
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3141 @c Locl Variables: ;;;
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3142 @c eval: (progn (load "cmd-doc") (defun doc () (interactive) (br-cmd-doc) (save-buffer))) ;;;
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3143 @c End: ;;;