Mercurial > hg > xemacs-beta
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 |