comparison man/oo-browser.texi @ 24:4103f0995bd7 r19-15b95

Import from CVS: tag r19-15b95
author cvs
date Mon, 13 Aug 2007 08:51:03 +0200
parents 49a24b4fd526
children 131b0175ea99
comparison
equal deleted inserted replaced
23:0edd3412f124 24:4103f0995bd7
1 \input psfig.sty 1 \input psfig.sty
2 \input texinfo @c -*-texinfo-*- 2 \input texinfo @c -*-texinfo-*-
3 3
4 @c 4 @c
5 @c SUMMARY: The OO-Browser User Manual for V2 5 @c SUMMARY: The OO-Browser User Manual for V2
6 @c USAGE: Hardcopy man from TeX; Info man from 'texinfo-format-buffer'. 6 @c USAGE: Hardcopy man from TeX; Info man from `texinfo-format-buffer'.
7 @c 7 @c
8 @c AUTHOR: Bob Weiner 8 @c AUTHOR: Bob Weiner
9 @c ORG: Motorola Inc., PPG 9 @c
10 @c ORG: InfoDock Associates. We sell corporate support and
11 @c development contracts for InfoDock, Emacs and XEmacs.
12 @c E-mail: <info@infodock.com> Web: http://www.infodock.com
13 @c Tel: +1 408-243-3300
14 @c
10 @c ORIG-DATE: 10-Apr-90 15 @c ORIG-DATE: 10-Apr-90
11 @c LAST-MOD: 2-May-96 at 23:36:02 by Harri Pasanen 16 @c LAST-MOD: 21-Feb-97 at 18:36:33 by Bob Weiner
12 @c 17 @c
13 @c DESCRIPTION: 18 @c DESCRIPTION:
14 @c DESCRIP-END. 19 @c DESCRIP-END.
15 20
16 @c %**start of header (This is for running Texinfo on a region.) 21 @c %**start of header (This is for running Texinfo on a region.)
28 @center @titlefont{The OO-Browser User Manual} 33 @center @titlefont{The OO-Browser User Manual}
29 @sp 1 34 @sp 1
30 @center The Multi-language Object-Oriented Code Browser 35 @center The Multi-language Object-Oriented Code Browser
31 @sp 5 36 @sp 5
32 @center Bob Weiner 37 @center Bob Weiner
33 @center Motorola Inc. 38 @center InfoDock Associates
34 @center E-mail: <oo-browser@@hub.ucsb.edu> (This is a mailing list.) 39 @sp 1
40 @center E-mail: <oo-browser@@infodock.com> (This is a mailing list.)
35 @sp 2 41 @sp 2
36 @center Edition 2.9.12 42 @center Edition 2.10
37 @sp 2 43 @sp 2
38 @center May 1996 44 @center February 19, 1997
39 45
40 @page 46 @page
41 @vskip 0pt plus 1filll 47 @vskip 0pt plus 1filll
42 Copyright @copyright{} 1989-1995 Free Software Foundation, Inc. 48 Copyright @copyright{} 1989-1997 Free Software Foundation, Inc.
43 49
44 All trademarks referenced herein are trademarks of their respective 50 All trademarks referenced herein are trademarks of their respective
45 holders. 51 holders.
52
53 InfoDock Associates, the developer of the OO-Browser and InfoDock (an
54 industrial quality turn-key version of XEmacs), donates its work on
55 the OO-Browser to the Free Software Foundation and makes it freely
56 available for worldwide distribution.
57
58 InfoDock Associates is a commercial firm dedicated to radical productivity
59 improvement in technical environments, whether in software development or
60 other knowledge intensive disciplines. Our initial offerings include high
61 quality commercial support, training, books and custom package development
62 for InfoDock, XEmacs or GNU Emacs on a variety of platforms.
63
64 @example
65 E-mail: <info@@infodock.com>
66 Web: http://www.infodock.com
67 Tel: +1 408-243-3300
68 @end example
69
46 @setchapternewpage on 70 @setchapternewpage on
47 @end titlepage 71 @end titlepage
48 @page 72 @page
49 73
50 @node Top, Introduction, (dir), (dir) 74 @node Top, Introduction, (dir), (dir)
51 @c node-name, next, previous, up 75 @c node-name, next, previous, up
52 @unnumbered Preface 76 @unnumbered Preface
53 77
54 @ifinfo 78 @ifinfo
55 @noindent 79 @noindent
56 Copyright @copyright{} 1989-1996 Free Software Foundation, Inc. 80 Copyright @copyright{} 1989-1997 Free Software Foundation, Inc.
57 81
58 All trademarks referenced herein are trademarks of their respective holders. 82 All trademarks referenced herein are trademarks of their respective holders.
59 83
84 InfoDock Associates, the developer of the OO-Browser and InfoDock (an
85 industrial quality turn-key version of XEmacs), donates its work on
86 the OO-Browser to the Free Software Foundation and makes it freely
87 available for worldwide distribution.
88
89 InfoDock Associates is a commercial firm dedicated to radical productivity
90 improvement in technical environments, whether in software development or
91 other knowledge intensive disciplines. Our initial offerings include high
92 quality commercial support, training, books and custom package development
93 for InfoDock, XEmacs or GNU Emacs on a variety of platforms.
94
95 @example
96 E-mail: <info@@infodock.com>
97 Web: http://www.infodock.com
98 Tel: +1 408-243-3300
99 @end example
100
60 @end ifinfo 101 @end ifinfo
102
61 This edition of the OO-Browser User Manual is for use with any version 103 This edition of the OO-Browser User Manual is for use with any version
62 2.9.12 or greater of the OO-Browser. The OO-Browser is available for 104 2.10 or greater of the OO-Browser. The OO-Browser is available for
63 free use, distribution, and modification under the terms of version 2 or 105 free use, distribution, and modification under the terms of version 2 or
64 later of the GNU Public License (GPL). No representations are made 106 later of the GNU Public License (GPL). No representations are made
65 about the suitability of this software for any purpose. It is provided 107 about the suitability of this software for any purpose. It is provided
66 "as is" without express or implied warranty. 108 "as is" without express or implied warranty.
67 109
68 @cindex credits 110 @cindex credits
69 @cindex InfoDock, obtaining 111 @cindex InfoDock, obtaining
70 @cindex OO-Browser, obtaining 112 @cindex OO-Browser, obtaining
71 @cindex anonymous ftp 113 @cindex anonymous ftp
72 The OO-Browser was designed and written by Bob Weiner. Motorola, 114 The OO-Browser was designed and written by Bob Weiner of InfoDock
73 Inc. funded and donated this work for free redistribution as part of the 115 Associates. Motorola, Inc@. help fund early work. Torgeir Veimo and
74 InfoDock integrated productivity toolset. Torgeir Veimo and Mark Stern 116 Mark Stern helped write the X OO-Browser core. Don Yacktman helped
75 helped write the X OO-Browser core. Don Yacktman helped write the 117 write the NEXTSTEP OO-Browser core. Jeff Sparkes helped with the Java
76 NEXTSTEP OO-Browser core. Jeff Sparkes helped with the Java language 118 language support. Harri Pasanen helped with the Python language
77 support. Harri Pasanen implemented the Python language support, and 119 support.
78 updated the documentation to reflect that addition.
79 120
80 @vindex file, BR-README 121 @vindex file, BR-README
81 @cindex README file 122 @cindex README file
82 @cindex installation 123 @cindex installation
83 The OO-Browser and InfoDock can be obtained via anonymous ftp on the 124 The OO-Browser and InfoDock can be obtained via anonymous ftp on the
84 Internet from: @file{/anonymous@@ftp.xemacs.org:/pub/infodock}. 125 Internet from: @file{ftp://ftp.xemacs.org/pub/infodock}.
85 Installation instructions for the OO-Browser can be found in the 126 Installation instructions for the OO-Browser can be found in the
86 @file{BR-README} file in the OO-Browser distribution. 127 @file{BR-README} file in the OO-Browser distribution.
87 128
88 This manual documents the user interface and operation of the OO-Browser 129 This manual documents the user interface and operation of the OO-Browser
89 multi-language browser. It assumes a very basic familiarity in the use 130 multi-language browser. It assumes a very basic familiarity in the use
160 * Graphical Browsing:: Graphical OO-Browser Interfaces 201 * Graphical Browsing:: Graphical OO-Browser Interfaces
161 202
162 OO-Browser Options 203 OO-Browser Options
163 204
164 * External Viewing:: Using An External Viewer or Editor 205 * External Viewing:: Using An External Viewer or Editor
206 * Inherited Features:: Toggling Inherited Feature Display
207 * Graphical Add Features:: Add Features to a Graphical View
165 * Keep Viewed Classes:: 208 * Keep Viewed Classes::
166 * Inhibit Version:: Inhibit Version Screen 209 * Inhibit Version:: Inhibit Version Screen
167 * Invert Ancestors:: Invert Ancestor Trees 210 * Invert Ancestors:: Invert Ancestor Trees
168 * Save All:: Save All Lookup Tables 211 * Save All:: Save All Lookup Tables
169 * Use Children:: Build Children Lookup Table 212 * Use Children:: Build Children Lookup Table
213 @c node-name, next, previous, up 256 @c node-name, next, previous, up
214 @unnumbered Introduction 257 @unnumbered Introduction
215 258
216 @cindex OO-Browser 259 @cindex OO-Browser
217 @cindex Smalltalk 260 @cindex Smalltalk
218 The @dfn{OO-Browser} is a multi-windowed, interactive, object-oriented 261 The @dfn{OO-Browser} (pronounced owe-owe-browse-er) is a multi-windowed,
219 class browser designed for professional use. Its user interface is 262 interactive, object-oriented class browser designed for professional
220 similar to the well-known Smalltalk browsers @cite{[Goldberg 83]}, yet 263 use. Its user interface is similar to the well-known Smalltalk browsers
221 it is much more flexible and easy to use. 264 @cite{[Goldberg 83]}, yet it is much more flexible and easy to use.
222 265
223 @cindex Eiffel 266 @cindex Eiffel
224 @cindex C++ 267 @cindex C++
225 @cindex C 268 @cindex C
226 @cindex Objective-C 269 @cindex Objective-C
230 @cindex Info 273 @cindex Info
231 @noindent 274 @noindent
232 The OO-Browser is unique in several respects: 275 The OO-Browser is unique in several respects:
233 @itemize @bullet 276 @itemize @bullet
234 @item 277 @item
235 It currently supports seven object-oriented languages (Eiffel, C++, 278 It currently supports seven object-oriented languages (C++, CLOS (Lisp),
236 Objective-C, CLOS (Lisp), Java, Python and Smalltalk), one non-object-oriented 279 Eiffel, Java, Objective-C, Python and Smalltalk), one
237 language (C), and one documentation language, (GNU Info). 280 non-object-oriented language (C), and one documentation language, (GNU
281 Info).
238 282
239 @item 283 @item
240 It may be used for both system exploration and for browsing purposes as 284 It may be used for both system exploration and for browsing purposes as
241 part of a professional software development tool chest. 285 part of a professional software development tool chest.
242 286
280 @sp 2 324 @sp 2
281 @centerline{@psfig{figure=im/oobr-text.eps}} 325 @centerline{@psfig{figure=im/oobr-text.eps}}
282 @end iftex 326 @end iftex
283 @ifinfo 327 @ifinfo
284 Mouse click on the following filename to view a picture of 328 Mouse click on the following filename to view a picture of
285 the textual OO-Browser: "im/oobr-text.eps". Under InfoDock, use the 329 the textual OO-Browser: @file{im/oobr-text.eps}. Under InfoDock, use the
286 middle mouse button. Under Emacs with the Hyperbole system loaded, use 330 middle mouse button. Under Emacs with the Hyperbole system loaded, use
287 the shift-middle mouse button or shift-left on a two button mouse. 331 the shift-middle mouse button or shift-left on a two button mouse.
288 Otherwise, there is no built-in way to view the picture. 332 Otherwise, there is no built-in way to view the picture.
289 @end ifinfo 333 @end ifinfo
290 334
556 Alternatively, you can invoke the browser on a specific language 600 Alternatively, you can invoke the browser on a specific language
557 Environment, e.g@. to bring back the last Environment browsed under that 601 Environment, e.g@. to bring back the last Environment browsed under that
558 language. The language-specific browser invocation commands are: 602 language. The language-specific browser invocation commands are:
559 @{@kbd{M-x eif-browse @key{RET}}@}, @{@kbd{M-x c++-browse @key{RET}}@}, 603 @{@kbd{M-x eif-browse @key{RET}}@}, @{@kbd{M-x c++-browse @key{RET}}@},
560 @{@kbd{M-x info-browse @key{RET}}@}, @{@kbd{M-x clos-browse 604 @{@kbd{M-x info-browse @key{RET}}@}, @{@kbd{M-x clos-browse
561 @key{RET}}@}, @{@kbd{M-x objc-browse @key{RET}}@}, @{@kbd{M-x python-browse @key{RET}}@}.@refill 605 @key{RET}}@}, @{@kbd{M-x objc-browse @key{RET}}@},
606 @{@kbd{M-x python-browse @key{RET}}@}.@refill
562 607
563 @cindex Environment file 608 @cindex Environment file
564 @cindex prefix argument 609 @cindex prefix argument
565 @cindex Environment, prompting for 610 @cindex Environment, prompting for
566 @noindent 611 @noindent
1214 When the command is invoked (first time through the loop), if the 1259 When the command is invoked (first time through the loop), if the
1215 @{@key{RET}@} key is pressed without giving a match expression, the search 1260 @{@key{RET}@} key is pressed without giving a match expression, the search
1216 will match to all classes referenced in the Environment. 1261 will match to all classes referenced in the Environment.
1217 1262
1218 If you want a regular expression to match to whole class names 1263 If you want a regular expression to match to whole class names
1219 exclusively, begin it with a '^' and end it with a '$' character which 1264 exclusively, begin it with a `^' and end it with a `$' character which
1220 match to beginning of name and end of name, respectively. Thus, "^....$" 1265 match to beginning of name and end of name, respectively. Thus, "^....$"
1221 would match to class names with exactly four characters. A string 1266 would match to class names with exactly four characters. A string
1222 match always matches to any class name that contains the matching 1267 match always matches to any class name that contains the matching
1223 string. 1268 string.
1224 1269
1250 When the command is invoked (first time through the loop), if the 1295 When the command is invoked (first time through the loop), if the
1251 @{@key{RET}@} key is pressed without giving a match expression, the search 1296 @{@key{RET}@} key is pressed without giving a match expression, the search
1252 will match to all entries in the listing, so no filtering will be done. 1297 will match to all entries in the listing, so no filtering will be done.
1253 1298
1254 If you want a regular expression to match to whole entries 1299 If you want a regular expression to match to whole entries
1255 exclusively, begin it with a '^' and end it with a '$' character which 1300 exclusively, begin it with a `^' and end it with a `$' character which
1256 match to beginning of line and end of line, respectively. Thus, "^....$" 1301 match to beginning of line and end of line, respectively. Thus, "^....$"
1257 would match to entry lines with exactly four characters. A string 1302 would match to entry lines with exactly four characters. A string
1258 match always matches to any entry that contains the matching string. 1303 match always matches to any entry that contains the matching string.
1259 1304
1260 1305
1328 default behavior. 1373 default behavior.
1329 1374
1330 @cindex Eiffel, short 1375 @cindex Eiffel, short
1331 @cindex Eiffel, flat 1376 @cindex Eiffel, flat
1332 @{@kbd{M-x eif-info-use-short}@} will instead cause the 1377 @{@kbd{M-x eif-info-use-short}@} will instead cause the
1333 @code{(br-entry-info)} command to run the Eiffel 'short' command on a 1378 @code{(br-entry-info)} command to run the Eiffel `short' command on a
1334 class, thereby displaying its specification. 1379 class, thereby displaying its specification.
1335 @{@kbd{M-x eif-info-use-flat}@}, will cause the command to run 1380 @{@kbd{M-x eif-info-use-flat}@}, will cause the command to run
1336 the Eiffel 'flat' command on a class, thereby displaying its complete 1381 the Eiffel `flat' command on a class, thereby displaying its complete
1337 feature set. Use @{@kbd{M-x eif-info-use-calls}@} to reset this command 1382 feature set. Use @{@kbd{M-x eif-info-use-calls}@} to reset this command
1338 to its default behavior. 1383 to its default behavior.
1339 1384
1340 1385
1341 @node Adding and Deleting Classes, Completing Names, Class Info, Usage 1386 @node Adding and Deleting Classes, Completing Names, Class Info, Usage
1410 @cindex NEXTSTEP OO-Browser 1455 @cindex NEXTSTEP OO-Browser
1411 @cindex graphical browsing 1456 @cindex graphical browsing
1412 The X interface to the OO-Browser is called, @dfn{xoobr}. It provides a 1457 The X interface to the OO-Browser is called, @dfn{xoobr}. It provides a
1413 simple but effective means of navigating through OO-Browser hierarchy 1458 simple but effective means of navigating through OO-Browser hierarchy
1414 and element relations. (The NEXTSTEP OO-Browser is very similar to the 1459 and element relations. (The NEXTSTEP OO-Browser is very similar to the
1415 X version, so use the documentation herein if you need any help with it.) 1460 X version, so the documentation herein also applies to it.)
1416 1461
1417 Any number of xoobr sessions may be established at the same time. Each 1462 Any number of xoobr sessions may be established at the same time. Each
1418 one is used to gain a particular view on an Environment. The textual 1463 one is used to gain a particular view on an Environment. The textual
1419 OO-Browser is used to filter a set of classes for display in an xoobr 1464 OO-Browser is used to filter a set of classes for display in an xoobr
1420 process. For this reason, xoobr is invoked from within the textual 1465 process. For this reason, xoobr is invoked from within the textual
1428 @sp 2 1473 @sp 2
1429 @centerline{@psfig{figure=im/oobr-x.ps}} 1474 @centerline{@psfig{figure=im/oobr-x.ps}}
1430 @end iftex 1475 @end iftex
1431 @ifinfo 1476 @ifinfo
1432 If running under the X window system, Action Key click on the following 1477 If running under the X window system, Action Key click on the following
1433 filename to view a picture of the X OO-Browser: "im/oobr-x.xwd". 1478 filename to view a picture of the X OO-Browser: @file{im/oobr-x.xwd}.
1434 @end ifinfo 1479 @end ifinfo
1480
1481 @kindex M-f
1482 @findex br-tree-features-toggle
1483 @cindex xoobr, displaying features
1484 @cindex descendancy view
1485 @{@kbd{M-f}@} @code{(br-tree-features-toggle)} or the menu item,
1486 @emph{Options/Graphical-Add-Features}, is used before creating a
1487 graphical descendency view to determine whether or not to include the
1488 features of each class in the listing as child nodes of the class.
1489 It toggles between showing features and not showing them in descendancy
1490 views. The setting applies across all OO-Browser languages. The
1491 default setting is not to add features to the view.
1435 1492
1436 @kindex M-g 1493 @kindex M-g
1437 @findex br-tree-graph 1494 @findex br-tree-graph
1438 @cindex xoobr, graphical view 1495 @cindex xoobr, graphical view
1439 @{@kbd{M-g}@} @code{(br-tree-graph)} displays the current listing 1496 @{@kbd{M-g}@} @code{(br-tree-graph)} displays the current listing
1444 @kindex M-d 1501 @kindex M-d
1445 @findex br-tree 1502 @findex br-tree
1446 @cindex xoobr, descendants 1503 @cindex xoobr, descendants
1447 @{@kbd{M-d}@} @code{(br-tree)} selects the current class and displays 1504 @{@kbd{M-d}@} @code{(br-tree)} selects the current class and displays
1448 its descendancy graph in tree-form by starting a new xoobr session. 1505 its descendancy graph in tree-form by starting a new xoobr session.
1449 With a prefix argument, @{@kbd{C-u M-d}@}, displays descendancy trees 1506 With a prefix argument, @{@kbd{C-u M-d}@}, it displays descendancy trees
1450 for all classes at the current browser level. They are all grouped 1507 for all classes at the current browser level. They are all grouped
1451 under some imaginary joining node so as to maintain the concept of one 1508 under an imaginary root node so as to maintain the concept of one
1452 tree per xoobr view. 1509 tree per xoobr view.
1453
1454 @kindex M-f
1455 @findex br-tree-features-toggle
1456 @cindex xoobr, displaying features
1457 @cindex descendancy view
1458 @{@kbd{M-f}@} @code{(br-tree-features-toggle)} is used before creating a
1459 graphical descendency view to determine whether or not to include the
1460 features of each class in the listing as child nodes of the class.
1461 It toggles between showing features and not showing them in descendancy
1462 views. The setting applies across all OO-Browser languages. The
1463 default setting is to not add features to the view.
1464 1510
1465 @cindex xoobr, view 1511 @cindex xoobr, view
1466 Xoobr views are meant to complement the textual browser interface. 1512 Xoobr views are meant to complement the textual browser interface.
1467 Therefore, the two most common actions used in the text browser are 1513 Therefore, the two most common actions used in the text browser are
1468 performed in a similar manner within an xoobr view. A click on a node with 1514 performed in a similar manner within an xoobr view. A click on a node with
1509 @node Options, Customization, Usage, Top 1555 @node Options, Customization, Usage, Top
1510 @chapter OO-Browser Options 1556 @chapter OO-Browser Options
1511 1557
1512 @menu 1558 @menu
1513 * External Viewing:: Using An External Viewer or Editor 1559 * External Viewing:: Using An External Viewer or Editor
1560 * Inherited Features:: Toggling Inherited Features Display
1561 * Graphical Add Features:: Add Features to a Graphical View
1514 * Keep Viewed Classes:: 1562 * Keep Viewed Classes::
1515 * Inhibit Version:: Inhibit Version Screen 1563 * Inhibit Version:: Inhibit Version Screen
1516 * Invert Ancestors:: Invert Ancestor Trees 1564 * Invert Ancestors:: Invert Ancestor Trees
1517 * Save All:: Save All Lookup Tables 1565 * Save All:: Save All Lookup Tables
1518 * Use Children:: Build Children Lookup Table 1566 * Use Children:: Build Children Lookup Table
1519 * Sort Options:: Controlling Class Listing Order 1567 * Sort Options:: Controlling Class Listing Order
1520 @end menu 1568 @end menu
1521 1569
1522 @node External Viewing, Keep Viewed Classes, Options, Options 1570 @node External Viewing, Inherited Features, Options, Options
1523 @comment node-name, next, previous, up 1571 @comment node-name, next, previous, up
1524 @section Using an External Viewer or Editor 1572 @section Using an External Viewer or Editor
1525 1573
1526 @cindex editing, externally 1574 @cindex editing, externally
1527 @cindex viewing, externally 1575 @cindex viewing, externally
1571 @display 1619 @display
1572 @code{(setq br-viewer-cmd "xmore")} 1620 @code{(setq br-viewer-cmd "xmore")}
1573 @end display 1621 @end display
1574 1622
1575 1623
1576 @node Keep Viewed Classes, Inhibit Version, External Viewing, Options 1624 @node Inherited Features, Graphical Add Features, External Viewing, Options
1625 @comment node-name, next, previous, up
1626 @section Toggling Inherited Features Display
1627
1628 @cindex inherited features
1629 @cindex feature options
1630 By default, when the OO-Browser lists features of a class, it shows both
1631 the ones lexically defined within the class source text and the ones
1632 inherited from ancestor classes. Each feature is listed below the class
1633 in which it is originally defined, for clarity. Sometimes it is useful
1634 to see only the lexically defined features of a class. In such cases,
1635 the menu item, @emph{Options/Show-Inherited-Features}, toggles this
1636 setting. If you want this on by default, you can add the following
1637 line to a personal initialization file:
1638
1639 @display
1640 @code{(setq br-inherited-features-flag nil)}
1641 @end display
1642
1643
1644 @node Graphical Add Features, Keep Viewed Classes, Inherited Features, Options
1645 @comment node-name, next, previous, up
1646 @section Add Features to a Graphical View
1647
1648 @xref{Graphical Browsing, , Graphical OO-Browser Interfaces}.
1649
1650
1651 @node Keep Viewed Classes, Inhibit Version, Graphical Add Features, Options
1577 @comment node-name, next, previous, up 1652 @comment node-name, next, previous, up
1578 @section Keep Viewed Classes 1653 @section Keep Viewed Classes
1579 1654
1580 @vindex br-keep-viewed-classes 1655 @vindex br-keep-viewed-classes
1581 The @var{br-keep-viewed-classes} flag is turned off by default, 1656 The @var{br-keep-viewed-classes} flag is turned off by default,
1589 buffers when you want to trim down the number with which you are dealing. 1664 buffers when you want to trim down the number with which you are dealing.
1590 @xref{Using the Mouse}, for details on this technique. 1665 @xref{Using the Mouse}, for details on this technique.
1591 1666
1592 @findex br-toggle-keep-viewed 1667 @findex br-toggle-keep-viewed
1593 @vindex br-keep-viewed-classes 1668 @vindex br-keep-viewed-classes
1594 The value of the @var{br-keep-viewed-classes} flag may be easily 1669 The value of the @var{br-keep-viewed-classes} flag may be easily toggled
1595 toggled with the @code{(br-toggle-keep-viewed)} command bound to 1670 with the @code{(br-toggle-keep-viewed)} command or with the menu item,
1596 @{@kbd{V}@}. 1671 @emph{Options/Keep-Viewed-Classes}.
1597 1672
1598 1673
1599 @node Inhibit Version, Invert Ancestors, Keep Viewed Classes, Options 1674 @node Inhibit Version, Invert Ancestors, Keep Viewed Classes, Options
1600 @section Inhibit Version Screen 1675 @section Inhibit Version Screen
1601 1676
1602 @vindex br-inhibit-version 1677 @vindex br-inhibit-version
1603 After you are familiar with the opening OO-Browser version screen, you may 1678 After you are familiar with the opening OO-Browser version and credits
1604 want to disable its display each time the browser is started. This is done by 1679 screen, you may want to disable its display each time the browser is
1605 setting @var{br-inhibit-version} non-nil, as in the following line that 1680 started. This is done by setting @var{br-inhibit-version} non-nil, as
1606 would go in your personal OO-Browser initialization file: 1681 in the following line that would go in your personal OO-Browser
1682 initialization file:
1607 1683
1608 @example 1684 @example
1609 @code{(setq br-inhibit-version t)} 1685 @code{(setq br-inhibit-version t)}
1610 @end example 1686 @end example
1611 1687
1613 @findex br-version 1689 @findex br-version
1614 @cindex version, browser 1690 @cindex version, browser
1615 @cindex support 1691 @cindex support
1616 @noindent 1692 @noindent
1617 This option has no effect on the display of the help screen which 1693 This option has no effect on the display of the help screen which
1618 follows the version screen. Even with this option set, you may display 1694 is displayed after the version screen. Even with this option set, you
1619 the version screen at any time from within a browser listing 1695 may display the version screen at any time from within a browser listing
1620 window by using @{@kbd{C-c #}@} @code{(br-version)}. 1696 window by using @{@kbd{C-c #}@} @code{(br-version)}.
1621 1697
1622 1698
1623 @node Invert Ancestors, Save All, Inhibit Version, Options 1699 @node Invert Ancestors, Save All, Inhibit Version, Options
1624 @section Invert Ancestor Trees 1700 @section Invert Ancestor Trees
1958 @var{c++-include-dirs}, then the directories listed in the variable 2034 @var{c++-include-dirs}, then the directories listed in the variable
1959 @var{c++-cpp-include-dirs}, and then in any directories included in the 2035 @var{c++-cpp-include-dirs}, and then in any directories included in the
1960 current environment. The variable @var{c++-cpp-include-dirs} should 2036 current environment. The variable @var{c++-cpp-include-dirs} should
1961 hold a list of the standard directories searched by your C++ pre-processor. 2037 hold a list of the standard directories searched by your C++ pre-processor.
1962 Each directory entry must end with a directory separator. On UNIX 2038 Each directory entry must end with a directory separator. On UNIX
1963 systems, this is the '/' character. 2039 systems, this is the `/' character.
1964 2040
1965 @node C++ Settings, , C++ Element Selection, C++ Specifics 2041 @node C++ Settings, , C++ Element Selection, C++ Specifics
1966 @subsection C++ Settings 2042 @subsection C++ Settings
1967 @vindex c++-class-keyword 2043 @vindex c++-class-keyword
1968 @cindex class definition keywords 2044 @cindex class definition keywords
2065 @node Eiffel Specifics, Java Specifics, CLOS Specifics, Languages 2141 @node Eiffel Specifics, Java Specifics, CLOS Specifics, Languages
2066 @section Eiffel Specifics 2142 @section Eiffel Specifics
2067 2143
2068 Eiffel support has now been updated to Eiffel version 3, to the best 2144 Eiffel support has now been updated to Eiffel version 3, to the best
2069 of our knowledge. If you find any problems, please report them 2145 of our knowledge. If you find any problems, please report them
2070 to <oo-browser@@hub.ucsb.edu> (this is a public mailing list). 2146 to <oo-browser@@infodock.com> (this is a public mailing list).
2071 2147
2072 @menu 2148 @menu
2073 * Eiffel Listings:: 2149 * Eiffel Listings::
2074 * Eiffel Element Selection:: Source Code Element Selection 2150 * Eiffel Element Selection:: Source Code Element Selection
2075 * Eiffel Settings:: 2151 * Eiffel Settings::
2130 2206
2131 @node Eiffel Settings, , Eiffel Element Selection, Eiffel Specifics 2207 @node Eiffel Settings, , Eiffel Element Selection, Eiffel Specifics
2132 @subsection Eiffel Settings 2208 @subsection Eiffel Settings
2133 2209
2134 @findex eif-get-parents-from-source 2210 @findex eif-get-parents-from-source
2135 Be sure that the 'inherit' and 'feature' clauses in your classes begin in 2211 Be sure that the `inherit' and `feature' clauses in your classes begin in
2136 column 0; otherwise the browser parser will not work properly. If you prefer 2212 column 0; otherwise the browser parser will not work properly. If you prefer
2137 some other indentation style, you will need to slightly alter 2213 some other indentation style, you will need to slightly alter
2138 @code{(eif-get-parents-from-source)} in @file{br-eif.el}; specifically, 2214 @code{(eif-get-parents-from-source)} in @file{br-eif.el}; specifically,
2139 the lines that contain '^inherit' and '^feature'. 2215 the lines that contain `^inherit' and `^feature'.
2140 2216
2141 @cindex Eiffel, error parsing 2217 @cindex Eiffel, error parsing
2142 @cindex error parsing 2218 @cindex error parsing
2143 Emacs has a feature called error parsing which lets one quickly jump to 2219 Emacs has a feature called error parsing which lets one quickly jump to
2144 the line of code that supposedly triggered an error. 2220 the line of code that supposedly triggered an error.
2156 2232
2157 @node Java Specifics, Objective-C Specifics, Eiffel Specifics, Languages 2233 @node Java Specifics, Objective-C Specifics, Eiffel Specifics, Languages
2158 @section Java Specifics 2234 @section Java Specifics
2159 2235
2160 @cindex Java feature listings 2236 @cindex Java feature listings
2237 @cindex Java attribute
2238 @cindex attribute, Java
2239 Java attribute names are precededed by @code{"= "} in feature listings.
2240
2161 @cindex abstract method 2241 @cindex abstract method
2162 @cindex method, abstract 2242 @cindex method, abstract
2163 @cindex deferred function 2243 @cindex deferred function
2164 Java abstract method declarations, which specify method interfaces 2244 Java abstract method declarations, which specify method interfaces
2165 but no implementation, appear in class feature listings. The method 2245 but no implementation, appear in class feature listings. The method
2279 @var{objc-include-dirs}, then the directories listed in the variable 2359 @var{objc-include-dirs}, then the directories listed in the variable
2280 @var{objc-cpp-include-dirs}, and then in any directories included in the 2360 @var{objc-cpp-include-dirs}, and then in any directories included in the
2281 current environment. The variable @var{objc-cpp-include-dirs} should 2361 current environment. The variable @var{objc-cpp-include-dirs} should
2282 hold a list of the standard directories searched by your Objective-C 2362 hold a list of the standard directories searched by your Objective-C
2283 pre-processor. Each directory entry must end with a directory 2363 pre-processor. Each directory entry must end with a directory
2284 separator. On UNIX systems, this is the '/' character. 2364 separator. On UNIX systems, this is the `/' character.
2285 2365
2286 @node Objective-C Settings, Python Specifics, Objective-C Element Selection, Objective-C Specifics 2366 @node Objective-C Settings, Python Specifics, Objective-C Element Selection, Objective-C Specifics
2287 @subsection Objective-C Settings 2367 @subsection Objective-C Settings
2288 @vindex objc-class-keyword 2368 @vindex objc-class-keyword
2289 @cindex class definition keywords 2369 @cindex class definition keywords
2300 2380
2301 2381
2302 @node Python Specifics, Python Module Lookup, Objective-C Settings, Languages 2382 @node Python Specifics, Python Module Lookup, Objective-C Settings, Languages
2303 @section Python Specifics 2383 @section Python Specifics
2304 2384
2305 The OO-Browser supports browsing Python classes, methods, and 2385 @cindex Python doc strings
2306 documentation strings for both. The class info key 'i' is used to 2386 The OO-Browser supports browsing Python classes and methods.
2307 display class or method documentation string, if that is available. 2387 Documentation strings for classes or methods may be displayed
2308 2388 from a listing buffer with the @{@kbd{i}@} key.
2309 Python methods appear in class feature listings. The method 2389
2310 name is preceded by the @code{"- "} string. 2390 Python method names are preceded by the @code{"- "} string in listing
2311 2391 buffers.
2312 Global functions are grouped under the imaginary class @code{[functions]} to 2392
2393 @cindex Python functions
2394 Global functions are grouped under the default class @code{[function]} to
2313 distinguish them from classes or class methods. 2395 distinguish them from classes or class methods.
2314 2396
2315 Known bugs: nested classes are not recognized. As browsing is based on 2397 Nested classes are not recognized by the browser, nor are run-time
2316 analyzing the source code, run-time modifications are lost. 2398 modifications to classes.
2317 2399
2318 @menu 2400 @menu
2319 * Python Module Lookup:: Source Code Element Selection 2401 * Python Module Lookup:: Source Code Element Selection
2320 * Python Settings:: 2402 * Python Settings::
2321 @end menu 2403 @end menu
2322 2404
2323 @node Python Module Lookup, Python Settings , Python Specifics, Python Specifics 2405 @node Python Module Lookup, Python Settings , Python Specifics, Python Specifics
2324 @subsection Python Module Lookup 2406 @subsection Python Module Lookup
2325 2407
2326 The @file{br-help-ms} file uses a table format to summarize mouse 2408 The @file{br-help-ms} file summarizes mouse key operation within the
2327 control within the browser, it may be displayed within the browser via 2409 browser. Use @{@kbd{H}@}, the @code{(br-help-ms)} command, to display
2328 the @{@kbd{H}@} @code{(br-help-ms)} command. 2410 this help when point is within a listing window.
2329 2411
2330 Clicking on a module name in an import statement using the Action Key 2412 @cindex Python import statement
2331 will open the specified module, if it is found in the search path. 2413 An Action Key press on a module name within a Python import statement
2414 will display the source for the module, if it is found within the
2415 current Environment.
2332 2416
2333 @node Python Settings, , Python Module Lookup, Python Specifics 2417 @node Python Settings, , Python Module Lookup, Python Specifics
2334 @subsection Python Settings 2418 @subsection Python Settings
2419
2335 @vindex python-import-dirs 2420 @vindex python-import-dirs
2336 @cindex class definition keywords 2421 A press of the Action Key on an import statement, tries to display the
2337 When a module name in an import statement is clicked using 2422 module to be imported. First, the module is looked up within the
2338 the Action Key, OO-Browser tries to open the module.py file. By default, 2423 current Environment directories. If not found, the path
2339 it looks for the module file in the environment directories, and from the path 2424 @file{/usr/local/lib/python} is searched. Modify
2340 @code{/usr/local/lib/python}. If you have installed Python libraries 2425 the variable, @var{python-import-dirs}, to alter the set of paths
2341 elsewhere, or wish to include other modules in the search path, you will 2426 searched after the Environment directories..
2342 need to modify the definition of @var{python-import-dirs} in 2427
2343 @file{br-python-ft.el}.
2344 2428
2345 @c *************************** 2429 @c ***************************
2346 @c Appendices 2430 @c Appendices
2347 @c *************************** 2431 @c ***************************
2348 2432
2352 @appendix OO-Browser Features 2436 @appendix OO-Browser Features
2353 2437
2354 @itemize @bullet 2438 @itemize @bullet
2355 2439
2356 @item 2440 @item
2357 Support for Eiffel, C++, Objective-C, Smalltalk, Java and Common Lisp 2441 Support for C, C++, Common Lisp and its Object System (CLOS), Eiffel,
2358 and its Object System (CLOS) is included. Additionally, support for 2442 Java, Objective-C, Python and Smalltalk class browsing is included.
2359 browsing large amounts of material in Info format by node name (a 2443 Additionally, support for browsing large amounts of material in Info
2360 popular online documentation format with cross references and 2444 format by node name (a popular online documentation format with cross
2361 hierarchical structure) is include. All languages provide class 2445 references and hierarchical structure) is included. All languages
2362 browsing via either a textual or a graphical interface. 2446 provide class browsing via either a textual or a graphical interface.
2363 2447
2364 @item 2448 @item
2365 Method browsing is supported for C++, Objective-C, Eiffel and CLOS. 2449 Method and typically attribute browsing is supported for all languages
2366 CLOS supports browsing all elements defined with (def* constructs. 2450 except Smalltalk. CLOS supports browsing all elements defined with
2367 In-source feature browsing is also supported for all of these languages. 2451 (def* constructs. In-source feature browsing is also supported for all
2368 One simply selects a feature name to jump to its corresponding source. 2452 of these languages. One simply selects a feature name to jump to its
2369 Method name overloading in C++ and inherited feature renaming in Eiffel 2453 corresponding source. Method name overloading in C++ and inherited
2370 are fully supported. 2454 feature renaming in Eiffel are fully supported.
2371 2455
2372 @item 2456 @item
2373 C code browsing is supported for C++, Objective-C and C source code. 2457 C code browsing is supported for C++, Objective-C and C source code.
2458
2374 @item 2459 @item
2375 Objective-C category and formal protocol browsing are supported. 2460 Objective-C category and formal protocol browsing are supported.
2376 2461
2377 @item 2462 @item
2378 C++ parameterized template classes and methods are supported. 2463 C++ parameterized template classes and methods are supported.
2464
2465 @item
2466 Java abstract and native (externally defined) methods are supported.
2379 2467
2380 @item 2468 @item
2381 Building Environments is fast compared to many other tools and browser 2469 Building Environments is fast compared to many other tools and browser
2382 startup once an Environment has been built is very fast. Response times 2470 startup once an Environment has been built is very fast. Response times
2383 on workstations are excellent; for example, in one test case, less than 2471 on workstations are excellent; for example, in one test case, less than
2406 Class files may be added, replaced or deleted one at a time or as a 2494 Class files may be added, replaced or deleted one at a time or as a
2407 group by specifying a root directory below which all class files are 2495 group by specifying a root directory below which all class files are
2408 found, including those in subdirectories. 2496 found, including those in subdirectories.
2409 2497
2410 @item 2498 @item
2411 The browser uses class source code only, hence no compiler is necessary for 2499 The OO-Browser uses class source code only, hence no compiler is
2412 proper browser operation. 2500 necessary for proper browser operation. This allows one to explore
2501 class libraries without the need for additional tools.
2413 2502
2414 @item 2503 @item
2415 Library (stable) and System (in development) classes may be maintained and 2504 Library (stable) and System (in development) classes may be maintained and
2416 listed separately or together. Any number of Libraries and Systems may be 2505 listed separately or together. Any number of Libraries and Systems may be
2417 combined for listing in a single Environment. There are no fixed limits 2506 combined for listing in a single Environment. There are no fixed limits
2427 2516
2428 @item 2517 @item
2429 Language-specific class information may be shown. Presently this feature is 2518 Language-specific class information may be shown. Presently this feature is
2430 supported only for Eiffel. A listing of class parents, attributes, 2519 supported only for Eiffel. A listing of class parents, attributes,
2431 routines and best guess (highly accurate) list of routine calls may be 2520 routines and best guess (highly accurate) list of routine calls may be
2432 displayed. Outputs from the Eiffel 'short' and 'flat' commands may also be 2521 displayed. Outputs from the Eiffel `short' and `flat' commands may also be
2433 shown. 2522 shown.
2434 2523
2435 @item 2524 @item
2436 Machine-independent mouse support is included along with an extremely 2525 Machine-independent mouse support is included along with an extremely
2437 intuitive point and click interface. The OO-Browser is pre-configured 2526 intuitive point and click interface. The OO-Browser is pre-configured
2438 for use with the X window system, NEXTSTEP, Sunview or Apollo's DM 2527 for use with the X window system, NEXTSTEP, Sunview or Apollo's DM
2439 window system under InfoDock, Emacs V19, XEmacs, Epoch, and Emacs V18. 2528 window system under InfoDock, Emacs V19, XEmacs, Epoch, and Emacs V18.
2529 Online mouse usage help is always one key away. (Don't try that level
2530 of platform independence with Java!)
2531
2532 @item
2533 X and NEXTSTEP hierarchy display browsers are included. They provide
2534 views of class inheritance structure and lexically included elements,
2535 which allows for quick random access to entire Environments. A click on
2536 a class or element name immediately jumps to it in the editor, providing
2537 rapid, visual browsing. One can pop up several graphical browsers to
2538 gain several views of classes in the same or in multiple environments.
2539 All graphical browsers can communicate with a single textual browser, so
2540 one can quickly display and edit classes from different environments
2541 (even different languages). Multiple inheritance is handled through
2542 repetition of nodes throughout the tree; repeated nodes are followed by
2543 ellipses to indicate multiple inheritance.
2440 2544
2441 @item 2545 @item
2442 Popup and pulldown command menus are available under InfoDock, Emacs V19 2546 Popup and pulldown command menus are available under InfoDock, Emacs V19
2443 and XEmacs. 2547 and XEmacs.
2444 2548
2575 Create and save the specification of a new OO-Browser Environment. 2679 Create and save the specification of a new OO-Browser Environment.
2576 Interactively prompt for the Environment file name or use optional 2680 Interactively prompt for the Environment file name or use optional
2577 ENV-FILE. Interactively prompt for the Environment language to use or 2681 ENV-FILE. Interactively prompt for the Environment language to use or
2578 use optional LANG-PREFIX as language indicator. Return the name of the 2682 use optional LANG-PREFIX as language indicator. Return the name of the
2579 Envir spec file created. Do not build the Environment. Use 2683 Envir spec file created. Do not build the Environment. Use
2580 'br-env-build' to construct an Environment from its specification. 2684 `br-env-build' to construct an Environment from its specification.
2581 2685
2582 @findex br-env-load 2686 @findex br-env-load
2583 @item br-env-load @{@kbd{C-c C-l}@} 2687 @item br-env-load @{@kbd{C-c C-l}@}
2584 Load browser Environment or spec from optional ENV-FILE or 'br-env-file'. 2688 Load browser Environment or spec from optional ENV-FILE or `br-env-file'.
2585 Non-nil PROMPT means prompt user before building tables. 2689 Non-nil PROMPT means prompt user before building tables.
2586 Non-nil NO-BUILD means skip build of Environment entirely. 2690 Non-nil NO-BUILD means skip build of Environment entirely.
2587 Return t if load is successful, else nil. 2691 Return t if load is successful, else nil.
2588 2692
2589 @findex br-env-rebuild 2693 @findex br-env-rebuild
2591 Rescan System and Library sources associated with the current Environment. 2695 Rescan System and Library sources associated with the current Environment.
2592 2696
2593 @findex br-env-save 2697 @findex br-env-save
2594 @item br-env-save @{@kbd{C-c C-s}@} 2698 @item br-env-save @{@kbd{C-c C-s}@}
2595 Save changed Environment to file given by optional SAVE-FILE or 2699 Save changed Environment to file given by optional SAVE-FILE or
2596 'br-env-file'. 2700 `br-env-file'.
2597 2701
2598 @findex br-env-stats 2702 @findex br-env-stats
2599 @item br-env-stats @{@kbd{M-e}@} 2703 @item br-env-stats @{@kbd{M-e}@}
2600 Display summary for current Environment in viewer window. 2704 Display summary for current Environment in viewer window.
2601 With optional prefix ARG, display class totals in minibuffer. 2705 With optional prefix ARG, display class totals in minibuffer.
2881 @item Environment Specification 2985 @item Environment Specification
2882 Unambiguously tells the browser what to include in the construction of 2986 Unambiguously tells the browser what to include in the construction of
2883 an Environment.@refill 2987 an Environment.@refill
2884 2988
2885 @item Feature 2989 @item Feature
2886 An element (method/attribute/component) of a class. 2990 An method, attribute, or other component of a class. Features may be
2991 public or private and in some languages, non-inheritable.
2887 2992
2888 @item Formal Protocol 2993 @item Formal Protocol
2889 See @code{Protocol}.@refill 2994 See @code{Protocol}.@refill
2890 2995
2891 @item Implementor 2996 @item Implementor