comparison man/oo-browser.texi @ 70:131b0175ea99 r20-0b30

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