@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 letting you navigate through class hierarchies and investigate
-features of the software. Without such a tool you often end up grep'ing
-through dozens or even hundreds of files.
+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
@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.
+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
@itemize @bullet
@item
-Instance member variables,
+Instance member variables;
@item
-Instance member functions,
+Instance member functions;
@item
-Static member variables,
+Static member variables;
@item
-Static member functions,
+Static member functions;
@item
-Friends/Defines, The list of defines is contained in the friends
-list of the pseudo-class @samp{*Globals*}.
+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
@findex --search-path
@item --search-path=@var{paths}
-This option let's you specify search paths for your input files.
+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
This switch suppresses all classes in the data base declared as
@code{struct} or @code{union} in the output.
-This is mainly thought for the case that you are converting an existing
+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
@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.
+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}.
@table @samp
@findex --no-regexps
@item --no-regexps
-This option turns regular expression recording off.
+This option turns off regular expression recording.
@findex --min-regexp-length
@cindex minimum regexp length for recording
and definitions. The default value is set at compilation time of
@command{ebrowse}.
-The smaller the minimum length the higher the probability that
+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.
definitions. The default value is set at compilation time of
@command{ebrowse}.
-The larger the maximum length the higher the probability that the
+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
+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
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},
+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
@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
+cursor is on. Both commands for collapsing and expanding branches are
also available from the class' object menu.
@item *
@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
+redisplays the tree buffer with the new indentation It is also
available from the tree buffer's context menu.
@end table
@table @kbd
@item C-x C-s
-This command writes a class tree to the file it was read from. This is
-useful after classes have been deleted from a tree.
+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.
@itemize @bullet
@item
-Instance variables (normal member variables),
+Instance variables (normal member variables);
@item
-Instance functions (normal member functions),
+Instance functions (normal member functions);
@item
-Static variables,
+Static variables;
@item
-Static member functions,
+Static member functions;
@item
-Friend functions,
+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.
Switch to the list of friends or defines.
@item L t
-Switch to the list of types.x
+Switch to the list of types.
@end table
Both commands cycle through the member list.
@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.
+buffer. This is also in the buffer's context menu.
@end table
@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
+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
+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
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
+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
@item C-c b 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
+You can select a position by pressing @kbd{SPC} in a line. You can
view a position with @kbd{v}.
@end table
Perform a query replace over the set of files.
@item C-c b ,
-All three operations above stop when finding a match. You can restart
+All three operations above stop when finding a match. You can restart
the operation with this command.
@item C-c b n
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
+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 b f}, for example, to jump to a specific member.