Mercurial > hg > xemacs-beta
comparison lisp/oobr/BR-FEATURES @ 0:376386a54a3c r19-14
Import from CVS: tag r19-14
author | cvs |
---|---|
date | Mon, 13 Aug 2007 08:45:50 +0200 |
parents | |
children | 4103f0995bd7 |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:376386a54a3c |
---|---|
1 # | |
2 # SUMMARY: Summary of OO-Browser features | |
3 # | |
4 # AUTHOR: Bob Weiner | |
5 # | |
6 # ORIG-DATE: 15-Oct-90 | |
7 # LAST-MOD: 3-May-96 at 21:30:00 by Harri Pasanen | |
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 | |
21 views within an editor and graphical views under the X window system. | |
22 | |
23 | |
24 * Support for all popular OO Languages on UNIX | |
25 ---------------------------------------------- | |
26 | |
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. | |
32 | |
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 | |
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 | |
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. | |
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 | |
72 ** All source code, over 400 kilobytes, is included and is heavily | |
73 documented. | |
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 | |
132 (even different languages). | |
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. |