Support for C, C++, Common Lisp and its Object System (CLOS), Eiffel,
Java, Objective-C, Python and Smalltalk class browsing is included.
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. All languages
provide class browsing via either a textual or a graphical interface.
Method and typically attribute browsing is supported for all languages
except Smalltalk. 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.
Under C++, one can click on a method call, function call or attribute
reference to jump to its associated definition. If multiple definitions
are possible, a structured dynamic list of possible method signatures
are shown and can be clicked upon to jump to any selected definition.
Under C++, friend classes and functions may be browsed easily.
C code browsing is supported for C++, Objective-C and C source code.
Objective-C category and formal protocol browsing is supported.
C++ parameterized template classes and methods are supported.
Java abstract and native (externally defined) method browsing is
All classes that implement a particular feature name, protocol (or
interface) name, or class category name may be listed and then browsed.
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 (in separate editor sessions)..
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 in a minor way under Python and more extensively
under Eiffel, where a listing of class parents, attributes, routines and
best guess (highly accurate) list of routine calls may be displayed.
Outputs from the Eiffel
flat commands may also
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 is included and is heavily documented.
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 and Microsoft
Windows under InfoDock, GNU Emacs and XEmacs. Online mouse usage help is
always one key away.
Popup and pulldown command menus are available under InfoDock, GNU Emacs V19
(or higher) 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
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
In C++, one can jump to the declaration of a listing entry or be
prompted within any buffer for a class and feature name whose
declaration one wants to browse. One can jump back and forth between
declarations and their associated definitions (between header and code
files) with a single command.
Jump back to a previously visited class or feature by selecting from a
list of recently visited buffers.
OO-Browser commands may also be invoked from the keyboard, allowing
unrestricted use via standard terminal interfaces.
Building Environments is fast compared to many other tools. Browser
startup, once an Environment has been built, is very fast. Response
times on workstations are excellent; for example, in one test case years
ago, less than two real seconds were required to display a set of
complex inheritance graphs involving over 400 classes.
An X-specific or Windows-specific hierarchy display browser is included.
It provides 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 different 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). Multiple inheritance
is handled through repetition of nodes throughout the tree; repeated
nodes are followed by ellipses to indicate multiple inheritance.
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 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
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
The number of listing windows is limited only by the frame width and
the width setting used for listing windows.
The OO-Browser is adaptable to any class-based object-oriented language.
The OO-Browser works with the powerful, freely distributable, GNU Emacs
editor; it works on any UNIX system display supported by Emacs. It is
included as part of InfoDock, the integrated development environment,
and is also compatible with XEmacs. Alternative editors may also be
used 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
OO-Browser functions may be used standalone within the editor without
utilizing 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.
The user need not know the location of class source; the browser will display
or edit a class based solely upon its class name.
A single key provides ascending or descending ASCII ordering of class
names, including those from inheritance trees. Classes may be easily
located by matching a regular expression or string to the set of class
names in an Environment, with repeated searches incrementally narrowing
the selected set.
The browser is tailorable to any class-based object-oriented language.
It works best with languages that focus on static class creation such as
Eiffel and C++.
The OO-Browser is built to integrate with the powerful GNU Emacs and
XEmacs editors and the even more powerful InfoDock environment; it works
on any UNIX, DOS, Windows or Macintosh system display supported by
Emacs. Most browser commands may be executed by direct selection,
providing a very natural interface.
This document was generated
by XEmacs Webmaster on October, 2 2007