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