annotate lisp/oobr/BR-FEATURES @ 120:cca96a509cfe r20-1b12

Import from CVS: tag r20-1b12
author cvs
date Mon, 13 Aug 2007 09:25:29 +0200
parents 4be1180a9e89
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1 #
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2 # SUMMARY: Summary of OO-Browser features
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3 #
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
4 # AUTHOR: Bob Weiner
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
5 #
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
6 # ORIG-DATE: 15-Oct-90
100
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 70
diff changeset
7 # LAST-MOD: 21-Feb-97 at 16:37:30 by Bob Weiner
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
8 #
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
9 # Copyright (C) 1990-1995 Free Software Foundation, Inc.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
10 # See the file BR-COPY for license information.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
11 #
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
12 # This file is part of the OO-Browser.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
13
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
14 OO-Browser Features
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
15 *******************
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
16
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
17 The OO-Browser is a multi-windowed, interactive object-oriented class browser
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
18 similar in use to the well-known Smalltalk browsers. It is unique in a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
19 number of respects foremost of which is that it works well with a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
20 multiplicity of object-oriented languages. It provides both textual
100
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 70
diff changeset
21 views within an editor and graphical views under the X and NEXTSTEP window
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 70
diff changeset
22 systems.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
23
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
24
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
25 * Support for all popular OO Languages on UNIX
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
26 ----------------------------------------------
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
27
100
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 70
diff changeset
28 ** Support for C, C++, Common Lisp and its Object System (CLOS), Eiffel,
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 70
diff changeset
29 Java, Objective-C, Python and Smalltalk class browsing is included.
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 70
diff changeset
30 Additionally, support for browsing large amounts of material in Info
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 70
diff changeset
31 format by node name (a popular online documentation format with cross
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 70
diff changeset
32 references and hierarchical structure) is included. All languages
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 70
diff changeset
33 provide class browsing via either a textual or a graphical interface.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
34
100
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 70
diff changeset
35 ** Method and typically attribute browsing is supported for all languages
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 70
diff changeset
36 except Smalltalk. CLOS supports browsing all elements defined with
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 70
diff changeset
37 (def* constructs. In-source feature browsing is also supported for all
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 70
diff changeset
38 of these languages. One simply selects a feature name to jump to its
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 70
diff changeset
39 corresponding source. Method name overloading in C++ and inherited
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
40 feature renaming in Eiffel are fully supported.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
41
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
42 ** C code browsing is supported for C++, Objective-C and C source code.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
43
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
44 ** Objective-C category and formal protocol browsing are supported.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
45
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
46 ** C++ parameterized template classes and methods are supported.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
47
100
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 70
diff changeset
48 ** Java abstract and native (externally defined) methods are supported.
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 70
diff changeset
49
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
50 ** Immediate switching among languages is allowed. One can switch
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
51 from Eiffel browsing to C++ browsing in an instant, if so desired.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
52 Or simply run two OO-Browsers side by side.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
53
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
54 ** Multiple inheritance support is built-in, where applicable.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
55
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
56 ** Statistics on classes and Environments may be displayed.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
57
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
58 ** Language-specific class information may be shown. Presently this
100
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 70
diff changeset
59 feature is supported only for Eiffel. A listing of class parents,
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 70
diff changeset
60 attributes, routines and best guess (highly accurate) list of
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 70
diff changeset
61 routine calls may be displayed. Outputs from the Eiffel `short'
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 70
diff changeset
62 and `flat' commands may also be shown.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
63
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
64
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
65 * For Serious Use
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
66 ----------------------
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
67
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
68 ** Library (stable) and System (in development) classes may be
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
69 maintained and listed separately or together. Any number of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
70 Libraries and Systems may be combined for listing in a single
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
71 Environment. There are no fixed limits on the number of classes per
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
72 Environment nor on the number of Environments that may be browsed.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
73
100
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 70
diff changeset
74 ** All source code, over 400 kilobytes, is included and is heavily
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 70
diff changeset
75 documented.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
76
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
77
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
78 * Ease of Use
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
79 -------------
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
80
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
81 ** Machine-independent mouse support is included along with an extremely
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
82 intuitive point and click interface that uses just two mouse keys. The
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
83 OO-Browser is pre-configured for use with the X window system, NEXTSTEP,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
84 Sunview or Apollo's DM window system under InfoDock, Emacs V19, XEmacs,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
85 Epoch, and Emacs V18. Online mouse usage help is always one key away.
100
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 70
diff changeset
86 (Don't try that level of platform independence with Java!)
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
87
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
88 ** Popup and pulldown command menus are available under InfoDock, Emacs V19
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
89 and XEmacs.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
90
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
91 ** The OO-Browser help display gives short descriptions of all of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
92 the commands and key bindings available in the browser. By clicking
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
93 on any such selection, the corresponding command is executed.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
94
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
95 ** One may also click on class names to see ancestors, descendants,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
96 or the class itself. Just select a class name and the OO-Browser
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
97 immediately will display or edit the class' source. Once a class
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
98 file has been loaded, one can quickly switch to it by selection
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
99 from a menu of such files.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
100
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
101 ** For a number of languages, one may also select a feature
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
102 (method) name or declaration and move directly to the definition
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
103 of the feature. The browser accounts for the complexities of member name
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
104 overloading in C++ and unlimited feature renaming in Eiffel so that you
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
105 need not. Just click on a declaration and watch the browser display jump
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
106 to the proper defintion.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
107
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
108 ** Jump back to a previously visited class or feature by selecting from a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
109 list of recently visited ones.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
110
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
111 ** OO-Browser commands may also be invoked from the keyboard, allowing
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
112 unrestricted use via standard terminal interfaces.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
113
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
114 * Speed
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
115 -------
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
116
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
117 ** Building Environments is fast compared to many other tools and browser
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
118 startup once an Environment has been built is very fast. Response times
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
119 on workstations are excellent; for example, in one test case, less than
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
120 two real seconds were required to display a set of complex inheritance
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
121 graphs involving over 400 classes.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
122
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
123
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
124 * Flexibility
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
125 -------------
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
126
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
127 ** X and NEXTSTEP hierarchy display browsers are included. They provide
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
128 views of class inheritance structure and lexically included elements,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
129 which allows for quick random access to entire Environments. A click on
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
130 a class or element name immediately jumps to it in the editor, providing
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
131 rapid, visual browsing. One can pop up several graphical browsers to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
132 gain several views of classes in the same or in multiple environments.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
133 All graphical browsers can communicate with a single textual browser, so
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
134 one can quickly display and edit classes from different environments
100
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 70
diff changeset
135 (even different languages). Multiple inheritance is handled through
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 70
diff changeset
136 repetition of nodes throughout the tree; repeated nodes are followed by
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents: 70
diff changeset
137 ellipses to indicate multiple inheritance.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
138
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
139 ** The OO-Browser uses class source code only, hence no compiler is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
140 necessary for proper browser operation. This allows one to explore
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
141 class libraries without the need for additional tools.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
142
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
143 ** Class inheritance networks may be displayed. Either a single
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
144 inheritance level (parents or children) or the entire inheritance
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
145 network (ancestors or descendants) for a set of classes may be shown.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
146
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
147 ** 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
148 group by specifying a root directory below which all class files are
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
149 found, including those in subdirectories.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
150
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
151 ** A menu of class files can be displayed for random access to specific
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
152 code modules.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
153
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
154 ** On startup, the OO-Browser lists all currently known classes within a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
155 particular Environment. Any desired classes may be found by searching
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
156 or by matching a regular expression or string to the set of class names.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
157 This may be done repeatedly to achieve an "and"-type relational query
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
158 effect.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
159
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
160 ** The number of listing windows is limited only by the screen width and
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
161 the width setting used for listing windows.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
162
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
163 ** The OO-Browser is adaptable to any class-based object-oriented language.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
164
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
165
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
166 * Editor Integration
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
167 --------------------
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
168
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
169 ** The OO-Browser works with the powerful, freely distributable, GNU
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
170 Emacs editor; it works on any UNIX system display supported by Emacs.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
171 It is also possible to use alternative editors to view or to edit source
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
172 code displayed by the browser.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
173
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
174 ** All OO-Browser outputs are text which may be edited as desired or
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
175 saved to files.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
176
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
177 ** OO-Browser functions may be used standalone within the editor
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
178 without using the multi-windowed browser interface. One useful
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
179 example is to point to a class name such as a parent class in the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
180 text of another class and have the parent's source appear in an
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
181 editable fashion.