changeset 84142:cabf50644487

Move to ../doc/emacs/, misc/
author Glenn Morris <rgm@gnu.org>
date Thu, 06 Sep 2007 04:35:22 +0000
parents 907f7a33d849
children 3d8e7284e76a
files man/ebrowse.texi
diffstat 1 files changed, 0 insertions(+), 1462 deletions(-) [+]
line wrap: on
line diff
--- a/man/ebrowse.texi	Thu Sep 06 04:35:13 2007 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1462 +0,0 @@
-\input texinfo   @c -*-texinfo-*-
-
-@comment %**start of header
-@setfilename ../info/ebrowse
-@settitle A Class Browser for C++
-@setchapternewpage odd
-@syncodeindex fn cp
-@comment %**end of header
-
-@copying
-This file documents Ebrowse, a C++ class browser for GNU Emacs.
-
-Copyright @copyright{} 2000, 2001, 2002, 2003, 2004,
-2005, 2006, 2007  Free Software Foundation, Inc.
-
-@quotation
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.2 or
-any later version published by the Free Software Foundation; with no
-Invariant Sections, with the Front-Cover texts being ``A GNU
-Manual,'' and with the Back-Cover Texts as in (a) below.  A copy of the
-license is included in the section entitled ``GNU Free Documentation
-License'' in the Emacs manual.
-
-(a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify
-this GNU Manual, like GNU software.  Copies published by the Free
-Software Foundation raise funds for GNU development.''
-
-This document is part of a collection distributed under the GNU Free
-Documentation License.  If you want to distribute this document
-separately from the collection, you can do so by adding a copy of the
-license to the document, as described in section 6 of the license.
-@end quotation
-@end copying
-
-@dircategory Emacs
-@direntry
-* Ebrowse: (ebrowse).   A C++ class browser for Emacs.
-@end direntry
-
-@titlepage
-@title Ebrowse User's Manual
-@sp 4
-@subtitle Ebrowse/Emacs
-@sp 5
-@author Gerd Moellmann
-@page
-@vskip 0pt plus 1filll
-@insertcopying
-@end titlepage
-
-@node Top, Overview, (dir), (dir)
-
-@ifnottex
-You can browse C++ class hierarchies from within Emacs by using
-Ebrowse.
-@end ifnottex
-
-@menu
-* Overview::			What is it and how does it work?
-* Generating browser files::	How to process C++ source files
-* Loading a Tree::		How to start browsing
-* Tree Buffers::		Traversing class hierarchies
-* Member Buffers::		Looking at member information
-* Tags-like Functions::		Finding members from source files
-* GNU Free Documentation License:: The license for this documentation.
-* Concept Index::		An entry for each concept defined
-@end menu
-
-
-
-
-@node Overview, Generating browser files, Top, Top
-@chapter Introduction
-
-When working in software projects using C++, I frequently missed
-software support for two things:
-
-@itemize @bullet
-@item
-When you get a new class library, or you have to work on source code you
-haven't written yourself (or written sufficiently long ago), you need a
-tool to let you navigate class hierarchies and investigate
-features of the software.  Without such a tool you often end up
-@command{grep}ing through dozens or even hundreds of files.
-
-@item
-Once you are productive, it would be nice to have a tool that knows your
-sources and can help you while you are editing source code.  Imagine to
-be able to jump to the definition of an identifier while you are
-editing, or something that can complete long identifier names because it
-knows what identifiers are defined in your program@dots{}.
-@end itemize
-
-The design of Ebrowse reflects these two needs.
-
-How does it work?
-
-@cindex parser for C++ sources
-A fast parser written in C is used to process C++ source files.
-The parser generates a data base containing information about classes,
-members, global functions, defines, types etc.@: found in the sources.
-
-The second part of Ebrowse is a Lisp program.  This program reads
-the data base generated by the parser.  It displays its contents in
-various forms and allows you to perform operations on it, or do
-something with the help of the knowledge contained in the data base.
-
-@cindex major modes, of Ebrowse buffers
-@dfn{Navigational} use of Ebrowse is centered around two
-types of buffers which define their own major modes:
-
-@cindex tree buffer
-@dfn{Tree buffers} are used to view class hierarchies in tree form.
-They allow you to quickly find classes, find or view class declarations,
-perform operations like query replace on sets of your source files, and
-finally tree buffers are used to produce the second buffer form---member
-buffers.  @xref{Tree Buffers}.
-
-@cindex member buffer
-Members are displayed in @dfn{member buffers}.  Ebrowse
-distinguishes between six different types of members; each type is
-displayed as a member list of its own:
-
-@itemize @bullet
-@item
-Instance member variables;
-
-@item
-Instance member functions;
-
-@item
-Static member variables;
-
-@item
-Static member functions;
-
-@item
-Friends/Defines.  The list of defines is contained in the friends
-list of the pseudo-class @samp{*Globals*};
-
-@item
-Types (@code{enum}s, and @code{typedef}s defined with class
-scope).@refill
-@end itemize
-
-You can switch member buffers from one list to another, or to another
-class.  You can include inherited members in the display, you can set
-filters that remove categories of members from the display, and most
-importantly you can find or view member declarations and definitions
-with a keystroke.  @xref{Member Buffers}.
-
-These two buffer types and the commands they provide support the
-navigational use of the browser.  The second form resembles Emacs' Tags
-package for C and other procedural languages.  Ebrowse's commands of
-this type are not confined to special buffers; they are most often used
-while you are editing your source code.
-
-To list just a subset of what you can use the Tags part of Ebrowse for:
-
-@itemize @bullet
-@item
-Jump to the definition or declaration of an identifier in your source
-code, with an electric position stack that lets you easily navigate
-back and forth.
-
-@item
-Complete identifiers in your source with a completion list containing
-identifiers from your source code only.
-
-@item
-Perform search and query replace operations over some or all of your
-source files.
-
-@item
-Show all identifiers matching a regular expression---and jump to one of
-them, if you like.
-@end itemize
-
-
-
-
-@node Generating browser files, Loading a Tree, Overview, Top
-@comment node-name,  next,  previous,  up
-@chapter Processing Source Files
-
-@cindex @command{ebrowse}, the program
-@cindex class data base creation
-Before you can start browsing a class hierarchy, you must run the parser
-@command{ebrowse} on your source files in order to generate a Lisp data
-base describing your program.
-
-@cindex command line for @command{ebrowse}
-The operation of @command{ebrowse} can be tailored with command line
-options.  Under normal circumstances it suffices to let the parser use
-its default settings.  If you want to do that, call it with a command
-line like:
-
-@example
-ebrowse *.h *.cc
-@end example
-
-@noindent
-or, if your shell doesn't allow all the file names to be specified on
-the command line,
-
-@example
-ebrowse --files=@var{file}
-@end example
-
-@noindent
-where @var{file} contains the names of the files to be parsed, one
-per line.
-
-@findex --help
-When invoked with option @samp{--help}, @command{ebrowse} prints a list of
-available command line options.@refill
-
-@menu
-* Input files::		Specifying which files to parse
-* Output file::		Changing the output file name
-* Structs and unions::	Omitting @code{struct}s and @code{union}s
-* Matching::		Setting regular expression lengths
-* Verbosity::           Getting feedback for lengthy operations
-@end menu
-
-
-
-
-@comment name,     next,        prev,                     up
-@node Input files, Output file, Generating browser files, Generating browser files
-@section Specifying Input Files
-
-@table @samp
-@cindex input files, for @command{ebrowse}
-@item file
-Each file name on the command line tells @command{ebrowse} to parse
-that file.
-
-@cindex response files
-@findex --files
-@item --files=@var{file}
-This command line switch specifies that @var{file} contains a list of
-file names to parse.  Each line in @var{file} must contain one file
-name.  More than one option of this kind is allowed.  You might, for
-instance, want to use one file for header files, and another for source
-files.
-
-@cindex standard input, specifying input files
-@item standard input
-When @command{ebrowse} finds no file names on the command line, and no
-@samp{--file} option is specified, it reads file names from standard
-input.  This is sometimes convenient when @command{ebrowse} is used as part
-of a command pipe.
-
-@findex --search-path
-@item --search-path=@var{paths}
-This option lets you specify search paths for your input files.
-@var{paths} is a list of directory names, separated from each other by a
-either a colon or a semicolon, depending on the operating system.
-@end table
-
-@cindex header files
-@cindex friend functions
-It is generally a good idea to specify input files so that header files
-are parsed before source files.  This facilitates the parser's work of
-properly identifying friend functions of a class.
-
-
-
-@comment name,     next,               prev,        up
-@node Output file, Structs and unions, Input files, Generating browser files
-@section Changing the Output File Name
-
-@table @samp
-@cindex output file name
-@findex --output-file
-@cindex @file{BROWSE} file
-@item --output-file=@var{file}
-This option instructs @command{ebrowse} to generate a Lisp data base with
-name @var{file}.  By default, the data base is named @file{BROWSE}, and
-is written in the directory in which @command{ebrowse} is invoked.
-
-If you regularly use data base names different from the default, you
-might want to add this to your init file:
-
-@lisp
-(add-to-list 'auto-mode-alist '(@var{NAME} . ebrowse-tree-mode))
-@end lisp
-
-@noindent
-where @var{NAME} is the Lisp data base name you are using.
-
-@findex --append
-@cindex appending output to class data base
-@item --append
-By default, each run of @command{ebrowse} erases the old contents of the
-output file when writing to it.  You can instruct @command{ebrowse} to
-append its output to an existing file produced by @command{ebrowse}
-with this command line option.
-@end table
-
-
-
-
-@comment name,            next,     prev,        up
-@node Structs and unions, Matching, Output file, Generating browser files
-@section Structs and Unions
-@cindex structs
-@cindex unions
-
-@table @samp
-@findex --no-structs-or-unions
-@item --no-structs-or-unions
-This switch suppresses all classes in the data base declared as
-@code{struct} or @code{union} in the output.
-
-This is mainly useful when you are converting an existing
-C program to C++, and do not want to see the old C structs in a class
-tree.
-@end table
-
-
-
-
-@comment name,  next,      prev,               up
-@node Matching, Verbosity, Structs and unions, Generating browser files
-@section Regular Expressions
-
-@cindex regular expressions, recording
-The parser @command{ebrowse} normally writes regular expressions to its
-output file that help the Lisp part of Ebrowse to find functions,
-variables etc.@: in their source files.
-
-You can instruct @command{ebrowse} to omit these regular expressions by
-calling it with the command line switch @samp{--no-regexps}.
-
-When you do this, the Lisp part of Ebrowse tries to guess, from member
-or class names, suitable regular expressions to locate that class or
-member in source files.  This works fine in most cases, but the
-automatic generation of regular expressions can be too weak if unusual
-coding styles are used.
-
-@table @samp
-@findex --no-regexps
-@item --no-regexps
-This option turns off regular expression recording.
-
-@findex --min-regexp-length
-@cindex minimum regexp length for recording
-@item --min-regexp-length=@var{n}
-The number @var{n} following this option specifies the minimum length of
-the regular expressions recorded to match class and member declarations
-and definitions.  The default value is set at compilation time of
-@command{ebrowse}.
-
-The smaller the minimum length, the higher the probability that
-Ebrowse will find a wrong match.  The larger the value, the
-larger the output file and therefore the memory consumption once the
-file is read from Emacs.
-
-@findex --max-regexp-length
-@cindex maximum regexp length for recording
-@item --max-regexp-length=@var{n}
-The number following this option specifies the maximum length of the
-regular expressions used to match class and member declarations and
-definitions.  The default value is set at compilation time of
-@command{ebrowse}.
-
-The larger the maximum length, the higher the probability that the
-browser will find a correct match, but the larger the value the larger
-the output file and therefore the memory consumption once the data is
-read.  As a second effect, the larger the regular expression, the higher
-the probability that it will no longer match after editing the file.
-@end table
-
-
-
-
-@node Verbosity, , Matching, Generating browser files
-@comment  node-name,  next,  previous,  up
-@section Verbose Mode
-@cindex verbose operation
-
-@table @samp
-@findex --verbose
-@item --verbose
-When this option is specified on the command line, @command{ebrowse} prints
-a period for each file parsed, and it displays a @samp{+} for each
-class written to the output file.
-
-@findex --very-verbose
-@item --very-verbose
-This option makes @command{ebrowse} print out the names of the files and
-the names of the classes seen.
-@end table
-
-
-
-
-@node Loading a Tree, Tree Buffers, Generating browser files, Top
-@comment  node-name,  next,  previous,  up
-@chapter Starting to Browse
-@cindex loading
-@cindex browsing
-
-You start browsing a class hierarchy parsed by @command{ebrowse} by just
-finding the @file{BROWSE} file with @kbd{C-x C-f}.
-
-An example of a tree buffer display is shown below.
-
-@example
-|  Collection
-|    IndexedCollection
-|      Array
-|        FixedArray
-|    Set
-|    Dictionary
-@end example
-
-@cindex mouse highlight in tree buffers
-When you run Emacs on a display which supports colors and the mouse, you
-will notice that certain areas in the tree buffer are highlighted
-when you move the mouse over them.  This highlight marks mouse-sensitive
-regions in the buffer.  Please notice the help strings in the echo area
-when the mouse moves over a sensitive region.
-
-@cindex context menu
-A click with @kbd{Mouse-3} on a mouse-sensitive region opens a context
-menu.  In addition to this, each buffer also has a buffer-specific menu
-that is opened with a click with @kbd{Mouse-3} somewhere in the buffer
-where no highlight is displayed.
-
-
-
-@comment ****************************************************************
-@comment ***
-@comment ***                 TREE BUFFERS
-@comment ***
-@comment ****************************************************************
-
-@node Tree Buffers, Member Buffers, Loading a Tree, Top
-@comment  node-name,  next,  previous,  up
-@chapter Tree Buffers
-@cindex tree buffer mode
-@cindex class trees
-
-Class trees are displayed in @dfn{tree buffers} which install their own
-major mode.  Most Emacs keys work in tree buffers in the usual way,
-e.g.@: you can move around in the buffer with the usual @kbd{C-f},
-@kbd{C-v} etc., or you can search with @kbd{C-s}.
-
-Tree-specific commands are bound to simple keystrokes, similar to
-@code{Gnus}.  You can take a look at the key bindings by entering
-@kbd{?} which calls @code{M-x describe-mode} in both tree and member
-buffers.
-
-@menu
-* Source Display::		Viewing and finding a class declaration
-* Member Display::		Showing members, switching to member buffers
-* Go to Class::			Finding a class
-* Quitting::			Discarding and burying the tree buffer
-* File Name Display::		Showing file names in the tree
-* Expanding and Collapsing::	Expanding and collapsing branches
-* Tree Indentation::		Changing the tree indentation
-* Killing Classes::		Removing class from the tree
-* Saving a Tree::		Saving a modified tree
-* Statistics::			Displaying class tree statistics
-* Marking Classes::		Marking and unmarking classes
-@end menu
-
-
-
-@node Source Display, Member Display, Tree Buffers, Tree Buffers
-@comment  node-name,  next,  previous,  up
-@section Viewing and Finding Class Declarations
-@cindex viewing, class
-@cindex finding a class
-@cindex class declaration
-
-You can view or find a class declaration when the cursor is on a class
-name.
-
-@table @kbd
-@item SPC
-This command views the class declaration if the database
-contains informations about it.  If you don't parse the entire source
-you are working on, some classes will only be known to exist but the
-location of their declarations and definitions will not be known.@refill
-
-@item RET
-Works like @kbd{SPC}, except that it finds the class
-declaration rather than viewing it, so that it is ready for
-editing.@refill
-@end table
-
-The same functionality is available from the menu opened with
-@kbd{Mouse-3} on the class name.
-
-
-
-
-@node Member Display, Go to Class, Source Display, Tree Buffers
-@comment  node-name,  next,  previous,  up
-@section Displaying Members
-@cindex @samp{*Members*} buffer
-@cindex @samp{*Globals*}
-@cindex freezing a member buffer
-@cindex member lists, in tree buffers
-
-Ebrowse distinguishes six different kinds of members, each of
-which is displayed as a separate @dfn{member list}: instance variables,
-instance functions, static variables, static functions, friend
-functions, and types.
-
-Each of these lists can be displayed in a member buffer with a command
-starting with @kbd{L} when the cursor is on a class name.  By default,
-there is only one member buffer named @dfn{*Members*} that is reused
-each time you display a member list---this has proven to be more
-practical than to clutter up the buffer list with dozens of member
-buffers.
-
-If you want to display more than one member list at a time you can
-@dfn{freeze} its member buffer. Freezing a member buffer prevents it
-from being overwritten the next time you display a member list. You can
-toggle this buffer status at any time.
-
-Every member list display command in the tree buffer can be used with a
-prefix argument (@kbd{C-u}).  Without a prefix argument, the command will
-pop to a member buffer displaying the member list.  With prefix argument,
-the member buffer will additionally be @dfn{frozen}.
-
-@table @kbd
-@cindex instance member variables, list
-@item L v
-This command displays the list of instance member variables.
-
-@cindex static variables, list
-@item L V
-Display the list of static variables.
-
-@cindex friend functions, list
-@item L d
-Display the list of friend functions.  This list is used for defines if
-you are viewing the class @samp{*Globals*} which is a place holder for
-global symbols.
-
-@cindex member functions, list
-@item L f
-Display the list of member functions.
-
-@cindex static member functions, list
-@item L F
-Display the list of static member functions.
-
-@cindex types, list
-@item L t
-Display a list of types.
-@end table
-
-These lists are also available from the class' context menu invoked with
-@kbd{Mouse-3} on the class name.
-
-
-
-
-@node Go to Class, Quitting, Member Display, Tree Buffers
-@comment  node-name,  next,  previous,  up
-@section Finding a Class
-@cindex locate class
-@cindex expanding branches
-@cindex class location
-
-@table @kbd
-@cindex search for class
-@item /
-This command reads a class name from the minibuffer with completion and
-positions the cursor on the class in the class tree.
-
-If the branch of the class tree containing the class searched for is
-currently collapsed, the class itself and all its base classes are
-recursively made visible.  (See also @ref{Expanding and
-Collapsing}.)@refill
-
-This function is also available from the tree buffer's context menu.
-
-@item n
-Repeat the last search done with @kbd{/}.  Each tree buffer has its own
-local copy of the regular expression last searched in it.
-@end table
-
-
-
-
-@node Quitting, File Name Display, Go to Class, Tree Buffers
-@comment  node-name,  next,  previous,  up
-@section Burying a Tree Buffer
-@cindex burying tree buffer
-
-@table @kbd
-@item q
-Is a synonym for @kbd{M-x bury-buffer}.
-@end table
-
-
-
-
-@node File Name Display, Expanding and Collapsing, Quitting, Tree Buffers
-@comment  node-name,  next,  previous,  up
-@section Displaying File Names
-
-@table @kbd
-@cindex file names in tree buffers
-@item T f
-This command toggles the display of file names in a tree buffer.  If
-file name display is switched on, the names of the files containing the
-class declaration are shown to the right of the class names.  If the
-file is not known, the string @samp{unknown} is displayed.
-
-This command is also provided in the tree buffer's context menu.
-
-@item s
-Display file names for the current line, or for the number of lines
-given by a prefix argument.
-@end table
-
-Here is an example of a tree buffer with file names displayed.
-
-@example
-|  Collection		(unknown)
-|    IndexedCollection	(indexedcltn.h)
-|      Array		(array.h)
-|        FixedArray	(fixedarray.h)
-|    Set		(set.h)
-|    Dictionary		(dict.h)
-@end example
-
-
-
-
-@node Expanding and Collapsing, Tree Indentation, File Name Display, Tree Buffers
-@comment  node-name,  next,  previous,  up
-@section Expanding and Collapsing a Tree
-@cindex expand tree branch
-@cindex collapse tree branch
-@cindex branches of class tree
-@cindex class tree, collapse or expand
-
-You can expand and collapse parts of a tree to reduce the complexity of
-large class hierarchies.  Expanding or collapsing branches of a tree has
-no impact on the functionality of other commands, like @kbd{/}.  (See
-also @ref{Go to Class}.)@refill
-
-Collapsed branches are indicated with an ellipsis following the class
-name like in the example below.
-
-@example
-|  Collection
-|    IndexedCollection...
-|    Set
-|    Dictionary
-@end example
-
-@table @kbd
-@item -
-This command collapses the branch of the tree starting at the class the
-cursor is on.
-
-@item +
-This command expands the branch of the tree starting at the class the
-cursor is on.  Both commands for collapsing and expanding branches are
-also available from the class' object menu.
-
-@item *
-This command expands all collapsed branches in the tree.
-@end table
-
-
-
-
-@node Tree Indentation, Killing Classes, Expanding and Collapsing, Tree Buffers
-@comment  node-name,  next,  previous,  up
-@section Changing the Tree Indentation
-@cindex tree indentation
-@cindex indentation of the tree
-
-@table @kbd
-@item T w
-This command reads a new indentation width from the minibuffer and
-redisplays the tree buffer with the new indentation  It is also
-available from the tree buffer's context menu.
-@end table
-
-
-
-
-@node Killing Classes, Saving a Tree, Tree Indentation, Tree Buffers
-@comment  node-name,  next,  previous,  up
-@section Removing Classes from the Tree
-@cindex killing classes
-@cindex class, remove from tree
-
-@table @kbd
-@item C-k
-This command removes the class the cursor is on and all its derived
-classes from the tree.  The user is asked for confirmation before the
-deletion is actually performed.
-@end table
-
-
-
-
-@node Saving a Tree, Statistics, Killing Classes, Tree Buffers
-@comment  node-name,  next,  previous,  up
-@comment node-name, next, previous, up
-@section Saving a Tree
-@cindex save tree to a file
-@cindex tree, save to a file
-@cindex class tree, save to a file
-
-@table @kbd
-@item C-x C-s
-This command writes a class tree to the file from which it was read.
-This is useful after classes have been deleted from a tree.
-
-@item  C-x C-w
-Writes the tree to a file whose name is read from the minibuffer.
-@end table
-
-
-
-
-@node     Statistics, Marking Classes, Saving a Tree, Tree Buffers
-@comment  node-name,  next,        previous, up
-@cindex statistics for a tree
-@cindex tree statistics
-@cindex class statistics
-
-@table @kbd
-@item x
-Display statistics for the tree, like number of classes in it, number of
-member functions, etc.  This command can also be found in the buffer's
-context menu.
-@end table
-
-
-
-
-@node     Marking Classes, , Statistics, Tree Buffers
-@comment  node-name,       next,       previous,      up
-@cindex marking classes
-@cindex operations on marked classes
-
-Classes can be marked for operations similar to the standard Emacs
-commands @kbd{M-x tags-search} and @kbd{M-x tags-query-replace} (see
-also @xref{Tags-like Functions}.)@refill
-
-@table @kbd
-@cindex toggle mark
-@item M t
-Toggle the mark of the line point is in or for as many lines as given by
-a prefix command.  This command can also be found in the class' context
-menu.
-
-@cindex unmark all
-@item M a
-Unmark all classes.  With prefix argument @kbd{C-u}, mark all classes in
-the tree. Since this command operates on the whole buffer, it can also be
-found in the buffer's object menu.
-@end table
-
-Marked classes are displayed with an @code{>} in column one of the tree
-display, like in the following example
-
-@example
-|> Collection
-|    IndexedCollection...
-|>   Set
-|    Dictionary
-@end example
-
-
-
-
-@c ****************************************************************
-@c ***
-@c ***                 MEMBER BUFFERS
-@c ***
-@c ****************************************************************
-
-@node Member Buffers, Tags-like Functions, Tree Buffers, Top
-@comment  node-name,       next,       previous,      up
-@chapter Member Buffers
-@cindex members
-@cindex member buffer mode
-
-@cindex class members, types
-@cindex types of class members
-@dfn{Member buffers} are used to operate on lists of members of a class.
-Ebrowse distinguishes six kinds of lists:
-
-@itemize @bullet
-@item
-Instance variables (normal member variables);
-@item
-Instance functions (normal member functions);
-@item
-Static variables;
-@item
-Static member functions;
-@item
-Friend functions;
-@item
-Types (@code{enum}s and @code{typedef}s defined with class scope.
-Nested classes will be shown in the class tree like normal classes.
-@end itemize
-
-Like tree buffers, member buffers install their own major mode.  Also
-like in tree buffers, menus are provided for certain areas in the
-buffer: members, classes, and the buffer itself.
-
-@menu
-* Switching Member Lists::	Choosing which members to display
-* Finding/Viewing::		Modifying source code
-* Inherited Members::		Display of Inherited Members
-* Searching Members::		Finding members in member buffer
-* Switching to Tree::		Going back to the tree buffer
-* Filters::			Selective member display
-* Attributes::			Display of @code{virtual} etc.
-* Long and Short Display::	Comprehensive and verbose display
-* Regexp Display::		Showing matching regular expressions
-* Switching Classes::		Displaying another class
-* Killing/Burying::		Getting rid of the member buffer
-* Column Width::		Display style
-* Redisplay::			Redrawing the member list
-* Getting Help::		How to get help for key bindings
-@end menu
-
-
-
-
-@node Switching Member Lists, Finding/Viewing, Member Buffers, Member Buffers
-@comment  node-name,       next,       previous,      up
-@section Switching Member Lists
-@cindex member lists, in member buffers
-@cindex static members
-@cindex friends
-@cindex types
-@cindex defines
-
-@table @kbd
-@cindex next member list
-@item L n
-This command switches the member buffer display to the next member list.
-
-@cindex previous member list
-@item L p
-This command switches the member buffer display to the previous member
-list.
-
-@item L f
-Switch to the list of member functions.
-
-@cindex static
-@item L F
-Switch to the list of static member functions.
-
-@item L v
-Switch to the list of member variables.
-
-@item L V
-Switch to the list of static member variables.
-
-@item L d
-Switch to the list of friends or defines.
-
-@item L t
-Switch to the list of types.
-@end table
-
-Both commands cycle through the member list.
-
-Most of the commands are also available from the member buffer's
-context menu.
-
-
-
-
-@node Finding/Viewing, Inherited Members, Switching Member Lists, Member Buffers
-@comment  node-name,       next,       previous,      up
-@section Finding and Viewing Member Source
-@cindex finding members, in member buffers
-@cindex viewing members, in member buffers
-@cindex member definitions, in member buffers
-@cindex member declarations, in member buffers
-@cindex definition of a member, in member buffers
-@cindex declaration of a member, in member buffers
-
-@table @kbd
-@item RET
-This command finds the definition of the member the cursor is on.
-Finding involves roughly the same as the standard Emacs tags facility
-does---loading the file and searching for a regular expression matching
-the member.
-
-@item f
-This command finds the declaration of the member the cursor is on.
-
-@item SPC
-This is the same command as @kbd{RET}, but views the member definition
-instead of finding the member's source file.
-
-@item v
-This is the same command as @kbd{f}, but views the member's declaration
-instead of finding the file the declaration is in.
-@end table
-
-You can install a hook function to perform actions after a member or
-class declaration or definition has been found, or when it is not found.
-
-All the commands described above can also be found in the context menu
-displayed when clicking @kbd{Mouse-2} on a member name.
-
-
-
-
-@node Inherited Members, Searching Members, Finding/Viewing, Member Buffers
-@comment  node-name,       next,       previous,      up
-@section Display of Inherited Members
-@cindex superclasses, members
-@cindex base classes, members
-@cindex inherited members
-
-@table @kbd
-@item D b
-This command toggles the display of inherited members in the member
-buffer.  This is also in the buffer's context menu.
-@end table
-
-
-
-
-@node Searching Members, Switching to Tree, Inherited Members, Member Buffers
-@comment  node-name,       next,       previous,      up
-@section Searching Members
-@cindex searching members
-
-@table @kbd
-@item G v
-Position the cursor on a member whose name is read from the minibuffer;
-only members shown in the current member buffer appear in the completion
-list.
-
-@item G m
-Like the above command, but all members for the current class appear in
-the completion list.  If necessary, the current member list is switched
-to the one containing the member.
-
-With a prefix argument (@kbd{C-u}), all members in the class tree,
-i.e.@: all members the browser knows about appear in the completion
-list.  The member display will be switched to the class and member list
-containing the member.
-
-@item G n
-Repeat the last member search.
-@end table
-
-Look into the buffer's context menu for a convenient way to do this with
-a mouse.
-
-
-
-@node Switching to Tree, Filters, Searching Members, Member Buffers
-@comment  node-name,       next,       previous,      up
-@section Switching to Tree Buffer
-@cindex tree buffer, switch to
-@cindex buffer switching
-@cindex switching buffers
-
-@table @kbd
-@item @key{TAB}
-Pop up the tree buffer to which the member buffer belongs.
-
-@item t
-Do the same as @key{TAB} but also position the cursor on the class
-displayed in the member buffer.
-@end table
-
-
-
-
-@node Filters, Attributes, Switching to Tree, Member Buffers
-@comment  node-name,       next,       previous,      up
-@section Filters
-@cindex filters
-
-@table @kbd
-@cindex @code{public} members
-@item F a u
-This command toggles the display of @code{public} members.  The
-@samp{a} stands for `access'.
-
-@cindex @code{protected} members
-@item F a o
-This command toggles the display of @code{protected} members.
-
-@cindex @code{private} members
-@item F a i
-This command toggles the display of @code{private} members.
-
-@cindex @code{virtual} members
-@item F v
-This command toggles the display of @code{virtual} members.
-
-@cindex @code{inline} members
-@item F i
-This command toggles the display of @code{inline} members.
-
-@cindex @code{const} members
-@item F c
-This command toggles the display of @code{const} members.
-
-@cindex pure virtual members
-@item F p
-This command toggles the display of pure virtual members.
-
-@cindex remove filters
-@item F r
-This command removes all filters.
-@end table
-
-These commands are also found in the buffer's context menu.
-
-
-
-
-@node Attributes, Long and Short Display, Filters, Member Buffers
-@comment  node-name,       next,       previous,      up
-@section Displaying Member Attributes
-@cindex attributes
-@cindex member attribute display
-
-@table @kbd
-@item D a
-Toggle the display of member attributes (default is on).
-
-The nine member attributes Ebrowse knows about are displayed
-as a list a single-characters flags enclosed in angle brackets in front
-the of the member's name.  A @samp{-} at a given position means that
-the attribute is false.  The list of attributes from left to right is
-
-@table @samp
-@cindex @code{template} attribute
-@item T
-The member is a template.
-
-@cindex @code{extern "C"} attribute
-@item C
-The member is declared @code{extern "C"}.
-
-@cindex @code{virtual} attribute
-@item v
-Means the member is declared @code{virtual}.
-
-@cindex @code{inline}
-@item i
-The member is declared @code{inline}.
-
-@cindex @code{const} attribute
-@item c
-The member is @code{const}.
-
-@cindex pure virtual function attribute
-@item 0
-The member is a pure virtual function.
-
-@cindex @code{mutable} attribute
-@item m
-The member is declared @code{mutable}.
-
-@cindex @code{explicit} attribute
-@item e
-The member is declared @code{explicit}.
-
-@item t
-The member is a function with a throw list.
-@end table
-@end table
-
-This command is also in the buffer's context menu.
-
-
-
-@node Long and Short Display, Regexp Display, Attributes, Member Buffers
-@comment  node-name,       next,       previous,      up
-@section Long and Short Member Display
-@cindex display form
-@cindex long display
-@cindex short display
-
-@table @kbd
-@item D l
-This command toggles the member buffer between short and long display
-form.  The short display form displays member names, only:
-
-@example
-| isEmpty        contains       hasMember      create
-| storeSize      hash           isEqual        restoreGuts
-| saveGuts
-@end example
-
-The long display shows one member per line with member name and regular
-expressions matching the member (if known):
-
-@example
-| isEmpty               Bool isEmpty () const...
-| hash                  unsigned hash () const...
-| isEqual               int isEqual (...
-@end example
-
-Regular expressions will only be displayed when the Lisp database has
-not been produced with the @command{ebrowse} option @samp{--no-regexps}.
-@xref{Matching, --no-regexps, Regular Expressions}.
-@end table
-
-
-
-
-@node Regexp Display, Switching Classes, Long and Short Display, Member Buffers
-@comment  node-name,       next,       previous,      up
-@section Display of Regular Expressions
-@cindex regular expression display
-
-@table @kbd
-@item D r
-This command toggles the long display form from displaying the regular
-expressions matching the member declarations to those expressions
-matching member definitions.
-@end table
-
-Regular expressions will only be displayed when the Lisp database has
-not been produced with the @command{ebrowse} option @samp{--no-regexps},
-see @ref{Matching, --no-regexps, Regular Expressions}.
-
-
-
-
-@node Switching Classes, Killing/Burying, Regexp Display, Member Buffers
-@comment  node-name,       next,       previous,      up
-@section Displaying Another Class
-@cindex base class, display
-@cindex derived class, display
-@cindex superclass, display
-@cindex subclass, display
-@cindex class display
-
-@table @kbd
-@item C c
-This command lets you switch the member buffer to another class.  It
-reads the name of the new class from the minibuffer with completion.
-
-@item C b
-This is the same command as @kbd{C c} but restricts the classes shown in
-the completion list to immediate base classes, only.  If only one base
-class exists, this one is immediately shown in the minibuffer.
-
-@item C d
-Same as @kbd{C b}, but for derived classes.
-
-@item C p
-Switch to the previous class in the class hierarchy on the same level as
-the class currently displayed.
-
-@item C n
-Switch to the next sibling of the class in the class tree.
-@end table
-
-
-
-
-@node Killing/Burying, Column Width, Switching Classes, Member Buffers
-@comment  node-name,       next,       previous,      up
-@section Burying a Member Buffer
-@cindex burying member buffers
-
-@table @kbd
-@item q
-This command is a synonym for @kbd{M-x bury-buffer}.
-@end table
-
-
-
-
-@node Column Width, Redisplay, Killing/Burying, Member Buffers
-@comment  node-name,       next,       previous,      up
-@section Setting the Column Width
-@cindex column width
-@cindex member indentation
-@cindex indentation, member
-
-@table @kbd
-@item D w
-This command sets the column width depending on the display form used
-(long or short display).
-@end table
-
-
-
-
-@node Redisplay, Getting Help, Column Width, Member Buffers
-@comment  node-name,       next,       previous,      up
-@section Forced Redisplay
-@cindex redisplay of member buffers
-
-@table @kbd
-@item C-l
-This command forces a redisplay of the member buffer.  If the width
-of the window displaying the member buffer is changed this command
-redraws the member list with the appropriate column widths and number of
-columns.
-@end table
-
-
-
-
-@node Getting Help, , Redisplay, Member Buffers
-@comment  node-name,  next,  previous,  up
-@cindex help
-
-@table @kbd
-@item ?
-This key is bound to @code{describe-mode}.
-@end table
-
-
-
-
-@comment **************************************************************
-@comment ***		    TAGS LIKE FUNCTIONS
-@comment **************************************************************
-
-@node Tags-like Functions, GNU Free Documentation License, Member Buffers, Top
-@comment  node-name,       next,       previous,      up
-@chapter Tags-like Functions
-
-Ebrowse provides tags functions similar to those of the standard
-Emacs Tags facility, but better suited to the needs of C++ programmers.
-
-@menu
-* Finding and Viewing::	Going to a member declaration/definition
-* Position Stack::	Moving to previous locations
-* Search & Replace::    Searching and replacing over class tree files
-* Members in Files::    Listing all members in a given file
-* Apropos::             Listing members matching a regular expression
-* Symbol Completion::   Completing names while editing
-* Member Buffer Display:: Quickly display a member buffer for some
-                        identifier
-@end menu
-
-
-
-@node Finding and Viewing, Position Stack, Tags-like Functions, Tags-like Functions
-@comment  node-name,       next,       previous,      up
-@section Finding and Viewing Members
-@cindex finding class member, in C++ source
-@cindex viewing class member, in C++ source
-@cindex tags
-@cindex member definition, finding, in C++ source
-@cindex member declaration, finding, in C++ source
-
-The functions in this section are similar to those described in
-@ref{Source Display}, and also in @ref{Finding/Viewing}, except that
-they work in a C++ source buffer, not in member and tree buffers created
-by Ebrowse.
-
-@table @kbd
-@item C-c C-m f
-Find the definition of the member around point.  If you invoke this
-function with a prefix argument, the declaration is searched.
-
-If more than one class contains a member with the given name you can
-select the class with completion.  If there is a scope declaration in
-front of the member name, this class name is used as initial input for
-the completion.
-
-@item C-c C-m F
-Find the declaration of the member around point.
-
-@item C-c C-m v
-View the definition of the member around point.
-
-@item C-c C-m V
-View the declaration of the member around point.
-
-@item C-c C-m 4 f
-Find a member's definition in another window.
-
-@item C-c C-m 4 F
-Find a member's declaration in another window.
-
-@item C-c C-m 4 v
-View a member's definition in another window.
-
-@item C-c C-m 4 V
-View a member's declaration in another window.
-
-@item C-c C-m 5 f
-Find a member's definition in another frame.
-
-@item C-c C-m 5 F
-Find a member's declaration in another frame.
-
-@item C-c C-m 5 v
-View a member's definition in another frame.
-
-@item C-c C-m 5 V
-View a member's declaration in another frame.
-@end table
-
-
-
-@node Position Stack, Search & Replace, Finding and Viewing, Tags-like Functions
-@comment  node-name,       next,       previous,      up
-@section The Position Stack
-@cindex position stack
-
-When jumping to a member declaration or definition with one of
-Ebrowse's commands, the position from where you performed the
-jump and the position where you jumped to are recorded in a
-@dfn{position stack}.  There are several ways in which you can quickly
-move to positions in the stack:@refill
-
-@table @kbd
-@cindex return to original position
-@item C-c C-m -
-This command sets point to the previous position in the position stack.
-Directly after you performed a jump, this will put you back to the
-position where you came from.
-
-The stack is not popped, i.e.@: you can always switch back and forth
-between positions in the stack.  To avoid letting the stack grow to
-infinite size there is a maximum number of positions defined.  When this
-number is reached, older positions are discarded when new positions are
-pushed on the stack.
-
-@item C-c C-m +
-This command moves forward in the position stack, setting point to
-the next position stored in the position stack.
-
-@item C-c C-m p
-Displays an electric buffer showing all positions saved in the stack.
-You can select a position by pressing @kbd{SPC} in a line.  You can
-view a position with @kbd{v}.
-@end table
-
-
-
-
-@node Search & Replace, Members in Files, Position Stack, Tags-like Functions
-@comment  node-name,       next,       previous,      up
-@section Searching and Replacing
-@cindex searching multiple C++ files
-@cindex replacing in multiple C++ files
-@cindex restart tags-operation
-
-Ebrowse allows you to perform operations on all or a subset of the files
-mentioned in a class tree.  When you invoke one of the following
-functions and more than one class tree is loaded, you must choose a
-class tree to use from an electric tree menu.  If the selected tree
-contains marked classes, the following commands operate on the files
-mentioned in the marked classes only.  Otherwise all files in the class
-tree are used.
-
-@table @kbd
-@item C-c C-m s
-This function performs a regular expression search in the chosen set of
-files.
-
-@item C-c C-m u
-This command performs a search for calls of a given member which is
-selected in the usual way with completion.
-
-@item C-c C-m %
-Perform a query replace over the set of files.
-
-@item C-c C-m ,
-All three operations above stop when finding a match.  You can restart
-the operation with this command.
-
-@item C-c C-m n
-This restarts the last tags operation with the next file in the list.
-@end table
-
-
-
-
-@node Members in Files, Apropos, Search & Replace, Tags-like Functions
-@comment  node-name,       next,       previous,      up
-@section Members in Files
-@cindex files
-@cindex members in file, listing
-@cindex list class members in a file
-@cindex file, members
-
-The command @kbd{C-c C-m l}, lists all members in a given file.  The file
-name is read from the minibuffer with completion.
-
-
-
-
-@node Apropos, Symbol Completion, Members in Files, Tags-like Functions
-@comment  node-name,       next,       previous,      up
-@section Member Apropos
-@cindex apropos on class members
-@cindex members, matching regexp
-
-The command @kbd{C-c C-m a} can be used to display all members matching a
-given regular expression.  This command can be very useful if you
-remember only part of a member name, and not its beginning.
-
-A special buffer is popped up containing all identifiers matching the
-regular expression, and what kind of symbol it is (e.g.@: a member
-function, or a type).  You can then switch to this buffer, and use the
-command @kbd{C-c C-m f}, for example, to jump to a specific member.
-
-
-
-
-@node Symbol Completion, Member Buffer Display, Apropos, Tags-like Functions
-@comment  node-name,       next,       previous,      up
-@section Symbol Completion
-@cindex completion
-@cindex symbol completion
-
-The command @kbd{C-c C-m @key{TAB}} completes the symbol in front of point.
-
-
-
-
-@node Member Buffer Display, , Symbol Completion, Tags-like Functions
-@section Quick Member Display
-@cindex member buffer, for member at point
-
-You can quickly display a member buffer containing the member the cursor
-in on with the command @kbd{C-c C-m m}.
-
-
-@node GNU Free Documentation License, Concept Index, Tags-like Functions, Top
-@appendix GNU Free Documentation License
-@include doclicense.texi
-
-
-@node Concept Index, , GNU Free Documentation License, Top
-@unnumbered Concept Index
-@printindex cp
-
-@contents
-@bye
-
-@ignore
-   arch-tag: 52fe78ac-a1c4-48e7-815e-0a31acfad4bf
-@end ignore