Mercurial > hg > xemacs-beta
diff 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 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lisp/oobr/BR-FEATURES Mon Aug 13 08:45:50 2007 +0200 @@ -0,0 +1,176 @@ +# +# SUMMARY: Summary of OO-Browser features +# +# AUTHOR: Bob Weiner +# +# ORIG-DATE: 15-Oct-90 +# LAST-MOD: 3-May-96 at 21:30:00 by Harri Pasanen +# +# Copyright (C) 1990-1995 Free Software Foundation, Inc. +# See the file BR-COPY for license information. +# +# This file is part of the OO-Browser. + +OO-Browser Features +******************* + +The OO-Browser is a multi-windowed, interactive object-oriented class browser +similar in use to the well-known Smalltalk browsers. It is unique in a +number of respects foremost of which is that it works well with a +multiplicity of object-oriented languages. It provides both textual +views within an editor and graphical views under the X window system. + + +* Support for all popular OO Languages on UNIX +---------------------------------------------- + + ** Contains support for Eiffel, C++, Objective-C, Common Lisp and its + Object System (CLOS), Java, Python, and Smalltalk class browsing. + Additionally, support for browsing large amounts of material in Info + format by node name (a popular online documentation format with cross + references and hierarchical structure) is included. + + ** Method browsing is supported for C++, Objective-C, Eiffel, Java, + Python and CLOS. CLOS supports browsing all elements defined with + (def* constructs. In-source feature browsing is also supported for + all of these languages. One simply selects a feature name to jump to + its corresponding source. Method name overloading in C++ and inherited + feature renaming in Eiffel are fully supported. + + ** C code browsing is supported for C++, Objective-C and C source code. + + ** Objective-C category and formal protocol browsing are supported. + + ** C++ parameterized template classes and methods are supported. + + ** Immediate switching among languages is allowed. One can switch + from Eiffel browsing to C++ browsing in an instant, if so desired. + Or simply run two OO-Browsers side by side. + + ** Multiple inheritance support is built-in, where applicable. + + ** Statistics on classes and Environments may be displayed. + + ** Language-specific class information may be shown. Presently this + feature is supported only for Eiffel and Python. For Eiffel, a + listing of class parents, attributes, routines and best guess + (highly accurate) list of routine calls may be displayed. Outputs + from the Eiffel 'short' and 'flat' commands may also be shown. + For Python this feature is used to browse documentation strings in + classes and methods. + + +* For Serious Use +---------------------- + + ** Library (stable) and System (in development) classes may be + maintained and listed separately or together. Any number of + Libraries and Systems may be combined for listing in a single + Environment. There are no fixed limits on the number of classes per + Environment nor on the number of Environments that may be browsed. + + ** All source code, over 400 kilobytes, is included and is heavily + documented. + + +* Ease of Use +------------- + + ** Machine-independent mouse support is included along with an extremely + intuitive point and click interface that uses just two mouse keys. The + OO-Browser is pre-configured for use with the X window system, NEXTSTEP, + Sunview or Apollo's DM window system under InfoDock, Emacs V19, XEmacs, + Epoch, and Emacs V18. Online mouse usage help is always one key away. + + ** Popup and pulldown command menus are available under InfoDock, Emacs V19 + and XEmacs. + + ** The OO-Browser help display gives short descriptions of all of + the commands and key bindings available in the browser. By clicking + on any such selection, the corresponding command is executed. + + ** One may also click on class names to see ancestors, descendants, + or the class itself. Just select a class name and the OO-Browser + immediately will display or edit the class' source. Once a class + file has been loaded, one can quickly switch to it by selection + from a menu of such files. + + ** For a number of languages, one may also select a feature + (method) name or declaration and move directly to the definition + of the feature. The browser accounts for the complexities of member name + overloading in C++ and unlimited feature renaming in Eiffel so that you + need not. Just click on a declaration and watch the browser display jump + to the proper defintion. + + ** Jump back to a previously visited class or feature by selecting from a + list of recently visited ones. + + ** OO-Browser commands may also be invoked from the keyboard, allowing + unrestricted use via standard terminal interfaces. + +* Speed +------- + + ** Building Environments is fast compared to many other tools and browser + startup once an Environment has been built is very fast. Response times + on workstations are excellent; for example, in one test case, less than + two real seconds were required to display a set of complex inheritance + graphs involving over 400 classes. + + +* Flexibility +------------- + + ** X and NEXTSTEP hierarchy display browsers are included. They provide + views of class inheritance structure and lexically included elements, + which allows for quick random access to entire Environments. A click on + a class or element name immediately jumps to it in the editor, providing + rapid, visual browsing. One can pop up several graphical browsers to + gain several views of classes in the same or in multiple environments. + All graphical browsers can communicate with a single textual browser, so + one can quickly display and edit classes from different environments + (even different languages). + + ** The OO-Browser uses class source code only, hence no compiler is + necessary for proper browser operation. This allows one to explore + class libraries without the need for additional tools. + + ** Class inheritance networks may be displayed. Either a single + inheritance level (parents or children) or the entire inheritance + network (ancestors or descendants) for a set of classes may be shown. + + ** Class files may be added, replaced or deleted one at a time or as a + group by specifying a root directory below which all class files are + found, including those in subdirectories. + + ** A menu of class files can be displayed for random access to specific + code modules. + + ** On startup, the OO-Browser lists all currently known classes within a + particular Environment. Any desired classes may be found by searching + or by matching a regular expression or string to the set of class names. + This may be done repeatedly to achieve an "and"-type relational query + effect. + + ** The number of listing windows is limited only by the screen width and + the width setting used for listing windows. + + ** The OO-Browser is adaptable to any class-based object-oriented language. + + +* Editor Integration +-------------------- + + ** The OO-Browser works with the powerful, freely distributable, GNU + Emacs editor; it works on any UNIX system display supported by Emacs. + It is also possible to use alternative editors to view or to edit source + code displayed by the browser. + + ** All OO-Browser outputs are text which may be edited as desired or + saved to files. + + ** OO-Browser functions may be used standalone within the editor + without using the multi-windowed browser interface. One useful + example is to point to a class name such as a parent class in the + text of another class and have the parent's source appear in an + editable fashion.