emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to ebrowse.texi


From: Glenn Morris
Subject: [Emacs-diffs] Changes to ebrowse.texi
Date: Thu, 06 Sep 2007 04:59:20 +0000

CVSROOT:        /sources/emacs
Module name:    emacs
Changes by:     Glenn Morris <gm>       07/09/06 04:59:20

Index: ebrowse.texi
===================================================================
RCS file: ebrowse.texi
diff -N ebrowse.texi
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ ebrowse.texi        6 Sep 2007 04:59:20 -0000       1.1
@@ -0,0 +1,1462 @@
+\input texinfo   @c -*-texinfo-*-
+
address@hidden %**start of header
address@hidden ../info/ebrowse
address@hidden A Class Browser for C++
address@hidden odd
address@hidden fn cp
address@hidden %**end of header
+
address@hidden
+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.
+
address@hidden
+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.
address@hidden quotation
address@hidden copying
+
address@hidden Emacs
address@hidden
+* Ebrowse: (ebrowse).   A C++ class browser for Emacs.
address@hidden direntry
+
address@hidden
address@hidden Ebrowse User's Manual
address@hidden 4
address@hidden Ebrowse/Emacs
address@hidden 5
address@hidden Gerd Moellmann
address@hidden
address@hidden 0pt plus 1filll
address@hidden
address@hidden titlepage
+
address@hidden Top, Overview, (dir), (dir)
+
address@hidden
+You can browse C++ class hierarchies from within Emacs by using
+Ebrowse.
address@hidden ifnottex
+
address@hidden
+* 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
address@hidden menu
+
+
+
+
address@hidden Overview, Generating browser files, Top, Top
address@hidden Introduction
+
+When working in software projects using C++, I frequently missed
+software support for two things:
+
address@hidden @bullet
address@hidden
+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
address@hidden through dozens or even hundreds of files.
+
address@hidden
+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 address@hidden
address@hidden itemize
+
+The design of Ebrowse reflects these two needs.
+
+How does it work?
+
address@hidden 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.
+
address@hidden major modes, of Ebrowse buffers
address@hidden use of Ebrowse is centered around two
+types of buffers which define their own major modes:
+
address@hidden tree buffer
address@hidden 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}.
+
address@hidden 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:
+
address@hidden @bullet
address@hidden
+Instance member variables;
+
address@hidden
+Instance member functions;
+
address@hidden
+Static member variables;
+
address@hidden
+Static member functions;
+
address@hidden
+Friends/Defines.  The list of defines is contained in the friends
+list of the pseudo-class @samp{*Globals*};
+
address@hidden
+Types (@code{enum}s, and @code{typedef}s defined with class
+scope)address@hidden
address@hidden 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:
+
address@hidden @bullet
address@hidden
+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.
+
address@hidden
+Complete identifiers in your source with a completion list containing
+identifiers from your source code only.
+
address@hidden
+Perform search and query replace operations over some or all of your
+source files.
+
address@hidden
+Show all identifiers matching a regular expression---and jump to one of
+them, if you like.
address@hidden itemize
+
+
+
+
address@hidden Generating browser files, Loading a Tree, Overview, Top
address@hidden node-name,  next,  previous,  up
address@hidden Processing Source Files
+
address@hidden @command{ebrowse}, the program
address@hidden class data base creation
+Before you can start browsing a class hierarchy, you must run the parser
address@hidden on your source files in order to generate a Lisp data
+base describing your program.
+
address@hidden 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:
+
address@hidden
+ebrowse *.h *.cc
address@hidden example
+
address@hidden
+or, if your shell doesn't allow all the file names to be specified on
+the command line,
+
address@hidden
+ebrowse address@hidden
address@hidden example
+
address@hidden
+where @var{file} contains the names of the files to be parsed, one
+per line.
+
address@hidden --help
+When invoked with option @samp{--help}, @command{ebrowse} prints a list of
+available command line address@hidden
+
address@hidden
+* 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
address@hidden menu
+
+
+
+
address@hidden name,     next,        prev,                     up
address@hidden Input files, Output file, Generating browser files, Generating 
browser files
address@hidden Specifying Input Files
+
address@hidden @samp
address@hidden input files, for @command{ebrowse}
address@hidden file
+Each file name on the command line tells @command{ebrowse} to parse
+that file.
+
address@hidden response files
address@hidden --files
address@hidden address@hidden
+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.
+
address@hidden standard input, specifying input files
address@hidden standard input
+When @command{ebrowse} finds no file names on the command line, and no
address@hidden 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.
+
address@hidden --search-path
address@hidden address@hidden
+This option lets you specify search paths for your input files.
address@hidden is a list of directory names, separated from each other by a
+either a colon or a semicolon, depending on the operating system.
address@hidden table
+
address@hidden header files
address@hidden 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.
+
+
+
address@hidden name,     next,               prev,        up
address@hidden Output file, Structs and unions, Input files, Generating browser 
files
address@hidden Changing the Output File Name
+
address@hidden @samp
address@hidden output file name
address@hidden --output-file
address@hidden @file{BROWSE} file
address@hidden address@hidden
+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:
+
address@hidden
+(add-to-list 'auto-mode-alist '(@var{NAME} . ebrowse-tree-mode))
address@hidden lisp
+
address@hidden
+where @var{NAME} is the Lisp data base name you are using.
+
address@hidden --append
address@hidden appending output to class data base
address@hidden --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.
address@hidden table
+
+
+
+
address@hidden name,            next,     prev,        up
address@hidden Structs and unions, Matching, Output file, Generating browser 
files
address@hidden Structs and Unions
address@hidden structs
address@hidden unions
+
address@hidden @samp
address@hidden --no-structs-or-unions
address@hidden --no-structs-or-unions
+This switch suppresses all classes in the data base declared as
address@hidden 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.
address@hidden table
+
+
+
+
address@hidden name,  next,      prev,               up
address@hidden Matching, Verbosity, Structs and unions, Generating browser files
address@hidden Regular Expressions
+
address@hidden 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.
+
address@hidden @samp
address@hidden --no-regexps
address@hidden --no-regexps
+This option turns off regular expression recording.
+
address@hidden --min-regexp-length
address@hidden minimum regexp length for recording
address@hidden address@hidden
+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
address@hidden
+
+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.
+
address@hidden --max-regexp-length
address@hidden maximum regexp length for recording
address@hidden address@hidden
+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
address@hidden
+
+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.
address@hidden table
+
+
+
+
address@hidden Verbosity, , Matching, Generating browser files
address@hidden  node-name,  next,  previous,  up
address@hidden Verbose Mode
address@hidden verbose operation
+
address@hidden @samp
address@hidden --verbose
address@hidden --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.
+
address@hidden --very-verbose
address@hidden --very-verbose
+This option makes @command{ebrowse} print out the names of the files and
+the names of the classes seen.
address@hidden table
+
+
+
+
address@hidden Loading a Tree, Tree Buffers, Generating browser files, Top
address@hidden  node-name,  next,  previous,  up
address@hidden Starting to Browse
address@hidden loading
address@hidden 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.
+
address@hidden
+|  Collection
+|    IndexedCollection
+|      Array
+|        FixedArray
+|    Set
+|    Dictionary
address@hidden example
+
address@hidden 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.
+
address@hidden 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.
+
+
+
address@hidden ****************************************************************
address@hidden ***
address@hidden ***                 TREE BUFFERS
address@hidden ***
address@hidden ****************************************************************
+
address@hidden Tree Buffers, Member Buffers, Loading a Tree, Top
address@hidden  node-name,  next,  previous,  up
address@hidden Tree Buffers
address@hidden tree buffer mode
address@hidden 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},
address@hidden etc., or you can search with @kbd{C-s}.
+
+Tree-specific commands are bound to simple keystrokes, similar to
address@hidden  You can take a look at the key bindings by entering
address@hidden which calls @code{M-x describe-mode} in both tree and member
+buffers.
+
address@hidden
+* 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
address@hidden menu
+
+
+
address@hidden Source Display, Member Display, Tree Buffers, Tree Buffers
address@hidden  node-name,  next,  previous,  up
address@hidden Viewing and Finding Class Declarations
address@hidden viewing, class
address@hidden finding a class
address@hidden class declaration
+
+You can view or find a class declaration when the cursor is on a class
+name.
+
address@hidden @kbd
address@hidden 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 address@hidden
+
address@hidden RET
+Works like @kbd{SPC}, except that it finds the class
+declaration rather than viewing it, so that it is ready for
address@hidden
address@hidden table
+
+The same functionality is available from the menu opened with
address@hidden on the class name.
+
+
+
+
address@hidden Member Display, Go to Class, Source Display, Tree Buffers
address@hidden  node-name,  next,  previous,  up
address@hidden Displaying Members
address@hidden @samp{*Members*} buffer
address@hidden @samp{*Globals*}
address@hidden freezing a member buffer
address@hidden 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
address@hidden 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}.
+
address@hidden @kbd
address@hidden instance member variables, list
address@hidden L v
+This command displays the list of instance member variables.
+
address@hidden static variables, list
address@hidden L V
+Display the list of static variables.
+
address@hidden friend functions, list
address@hidden 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.
+
address@hidden member functions, list
address@hidden L f
+Display the list of member functions.
+
address@hidden static member functions, list
address@hidden L F
+Display the list of static member functions.
+
address@hidden types, list
address@hidden L t
+Display a list of types.
address@hidden table
+
+These lists are also available from the class' context menu invoked with
address@hidden on the class name.
+
+
+
+
address@hidden Go to Class, Quitting, Member Display, Tree Buffers
address@hidden  node-name,  next,  previous,  up
address@hidden Finding a Class
address@hidden locate class
address@hidden expanding branches
address@hidden class location
+
address@hidden @kbd
address@hidden search for class
address@hidden /
+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.
+
address@hidden n
+Repeat the last search done with @kbd{/}.  Each tree buffer has its own
+local copy of the regular expression last searched in it.
address@hidden table
+
+
+
+
address@hidden Quitting, File Name Display, Go to Class, Tree Buffers
address@hidden  node-name,  next,  previous,  up
address@hidden Burying a Tree Buffer
address@hidden burying tree buffer
+
address@hidden @kbd
address@hidden q
+Is a synonym for @kbd{M-x bury-buffer}.
address@hidden table
+
+
+
+
address@hidden File Name Display, Expanding and Collapsing, Quitting, Tree 
Buffers
address@hidden  node-name,  next,  previous,  up
address@hidden Displaying File Names
+
address@hidden @kbd
address@hidden file names in tree buffers
address@hidden 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.
+
address@hidden s
+Display file names for the current line, or for the number of lines
+given by a prefix argument.
address@hidden table
+
+Here is an example of a tree buffer with file names displayed.
+
address@hidden
+|  Collection          (unknown)
+|    IndexedCollection (indexedcltn.h)
+|      Array           (array.h)
+|        FixedArray    (fixedarray.h)
+|    Set               (set.h)
+|    Dictionary                (dict.h)
address@hidden example
+
+
+
+
address@hidden Expanding and Collapsing, Tree Indentation, File Name Display, 
Tree Buffers
address@hidden  node-name,  next,  previous,  up
address@hidden Expanding and Collapsing a Tree
address@hidden expand tree branch
address@hidden collapse tree branch
address@hidden branches of class tree
address@hidden 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.
+
address@hidden
+|  Collection
+|    IndexedCollection...
+|    Set
+|    Dictionary
address@hidden example
+
address@hidden @kbd
address@hidden -
+This command collapses the branch of the tree starting at the class the
+cursor is on.
+
address@hidden +
+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.
+
address@hidden *
+This command expands all collapsed branches in the tree.
address@hidden table
+
+
+
+
address@hidden Tree Indentation, Killing Classes, Expanding and Collapsing, 
Tree Buffers
address@hidden  node-name,  next,  previous,  up
address@hidden Changing the Tree Indentation
address@hidden tree indentation
address@hidden indentation of the tree
+
address@hidden @kbd
address@hidden 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.
address@hidden table
+
+
+
+
address@hidden Killing Classes, Saving a Tree, Tree Indentation, Tree Buffers
address@hidden  node-name,  next,  previous,  up
address@hidden Removing Classes from the Tree
address@hidden killing classes
address@hidden class, remove from tree
+
address@hidden @kbd
address@hidden 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.
address@hidden table
+
+
+
+
address@hidden Saving a Tree, Statistics, Killing Classes, Tree Buffers
address@hidden  node-name,  next,  previous,  up
address@hidden node-name, next, previous, up
address@hidden Saving a Tree
address@hidden save tree to a file
address@hidden tree, save to a file
address@hidden class tree, save to a file
+
address@hidden @kbd
address@hidden 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.
+
address@hidden  C-x C-w
+Writes the tree to a file whose name is read from the minibuffer.
address@hidden table
+
+
+
+
address@hidden     Statistics, Marking Classes, Saving a Tree, Tree Buffers
address@hidden  node-name,  next,        previous, up
address@hidden statistics for a tree
address@hidden tree statistics
address@hidden class statistics
+
address@hidden @kbd
address@hidden 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.
address@hidden table
+
+
+
+
address@hidden     Marking Classes, , Statistics, Tree Buffers
address@hidden  node-name,       next,       previous,      up
address@hidden marking classes
address@hidden 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
+
address@hidden @kbd
address@hidden toggle mark
address@hidden 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.
+
address@hidden unmark all
address@hidden 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.
address@hidden table
+
+Marked classes are displayed with an @code{>} in column one of the tree
+display, like in the following example
+
address@hidden
+|> Collection
+|    IndexedCollection...
+|>   Set
+|    Dictionary
address@hidden example
+
+
+
+
address@hidden ****************************************************************
address@hidden ***
address@hidden ***                 MEMBER BUFFERS
address@hidden ***
address@hidden ****************************************************************
+
address@hidden Member Buffers, Tags-like Functions, Tree Buffers, Top
address@hidden  node-name,       next,       previous,      up
address@hidden Member Buffers
address@hidden members
address@hidden member buffer mode
+
address@hidden class members, types
address@hidden types of class members
address@hidden buffers} are used to operate on lists of members of a class.
+Ebrowse distinguishes six kinds of lists:
+
address@hidden @bullet
address@hidden
+Instance variables (normal member variables);
address@hidden
+Instance functions (normal member functions);
address@hidden
+Static variables;
address@hidden
+Static member functions;
address@hidden
+Friend functions;
address@hidden
+Types (@code{enum}s and @code{typedef}s defined with class scope.
+Nested classes will be shown in the class tree like normal classes.
address@hidden 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.
+
address@hidden
+* 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
address@hidden menu
+
+
+
+
address@hidden Switching Member Lists, Finding/Viewing, Member Buffers, Member 
Buffers
address@hidden  node-name,       next,       previous,      up
address@hidden Switching Member Lists
address@hidden member lists, in member buffers
address@hidden static members
address@hidden friends
address@hidden types
address@hidden defines
+
address@hidden @kbd
address@hidden next member list
address@hidden L n
+This command switches the member buffer display to the next member list.
+
address@hidden previous member list
address@hidden L p
+This command switches the member buffer display to the previous member
+list.
+
address@hidden L f
+Switch to the list of member functions.
+
address@hidden static
address@hidden L F
+Switch to the list of static member functions.
+
address@hidden L v
+Switch to the list of member variables.
+
address@hidden L V
+Switch to the list of static member variables.
+
address@hidden L d
+Switch to the list of friends or defines.
+
address@hidden L t
+Switch to the list of types.
address@hidden table
+
+Both commands cycle through the member list.
+
+Most of the commands are also available from the member buffer's
+context menu.
+
+
+
+
address@hidden Finding/Viewing, Inherited Members, Switching Member Lists, 
Member Buffers
address@hidden  node-name,       next,       previous,      up
address@hidden Finding and Viewing Member Source
address@hidden finding members, in member buffers
address@hidden viewing members, in member buffers
address@hidden member definitions, in member buffers
address@hidden member declarations, in member buffers
address@hidden definition of a member, in member buffers
address@hidden declaration of a member, in member buffers
+
address@hidden @kbd
address@hidden 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.
+
address@hidden f
+This command finds the declaration of the member the cursor is on.
+
address@hidden SPC
+This is the same command as @kbd{RET}, but views the member definition
+instead of finding the member's source file.
+
address@hidden v
+This is the same command as @kbd{f}, but views the member's declaration
+instead of finding the file the declaration is in.
address@hidden 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.
+
+
+
+
address@hidden Inherited Members, Searching Members, Finding/Viewing, Member 
Buffers
address@hidden  node-name,       next,       previous,      up
address@hidden Display of Inherited Members
address@hidden superclasses, members
address@hidden base classes, members
address@hidden inherited members
+
address@hidden @kbd
address@hidden D b
+This command toggles the display of inherited members in the member
+buffer.  This is also in the buffer's context menu.
address@hidden table
+
+
+
+
address@hidden Searching Members, Switching to Tree, Inherited Members, Member 
Buffers
address@hidden  node-name,       next,       previous,      up
address@hidden Searching Members
address@hidden searching members
+
address@hidden @kbd
address@hidden 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.
+
address@hidden 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.
+
address@hidden G n
+Repeat the last member search.
address@hidden table
+
+Look into the buffer's context menu for a convenient way to do this with
+a mouse.
+
+
+
address@hidden Switching to Tree, Filters, Searching Members, Member Buffers
address@hidden  node-name,       next,       previous,      up
address@hidden Switching to Tree Buffer
address@hidden tree buffer, switch to
address@hidden buffer switching
address@hidden switching buffers
+
address@hidden @kbd
address@hidden @key{TAB}
+Pop up the tree buffer to which the member buffer belongs.
+
address@hidden t
+Do the same as @key{TAB} but also position the cursor on the class
+displayed in the member buffer.
address@hidden table
+
+
+
+
address@hidden Filters, Attributes, Switching to Tree, Member Buffers
address@hidden  node-name,       next,       previous,      up
address@hidden Filters
address@hidden filters
+
address@hidden @kbd
address@hidden @code{public} members
address@hidden F a u
+This command toggles the display of @code{public} members.  The
address@hidden stands for `access'.
+
address@hidden @code{protected} members
address@hidden F a o
+This command toggles the display of @code{protected} members.
+
address@hidden @code{private} members
address@hidden F a i
+This command toggles the display of @code{private} members.
+
address@hidden @code{virtual} members
address@hidden F v
+This command toggles the display of @code{virtual} members.
+
address@hidden @code{inline} members
address@hidden F i
+This command toggles the display of @code{inline} members.
+
address@hidden @code{const} members
address@hidden F c
+This command toggles the display of @code{const} members.
+
address@hidden pure virtual members
address@hidden F p
+This command toggles the display of pure virtual members.
+
address@hidden remove filters
address@hidden F r
+This command removes all filters.
address@hidden table
+
+These commands are also found in the buffer's context menu.
+
+
+
+
address@hidden Attributes, Long and Short Display, Filters, Member Buffers
address@hidden  node-name,       next,       previous,      up
address@hidden Displaying Member Attributes
address@hidden attributes
address@hidden member attribute display
+
address@hidden @kbd
address@hidden 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
+
address@hidden @samp
address@hidden @code{template} attribute
address@hidden T
+The member is a template.
+
address@hidden @code{extern "C"} attribute
address@hidden C
+The member is declared @code{extern "C"}.
+
address@hidden @code{virtual} attribute
address@hidden v
+Means the member is declared @code{virtual}.
+
address@hidden @code{inline}
address@hidden i
+The member is declared @code{inline}.
+
address@hidden @code{const} attribute
address@hidden c
+The member is @code{const}.
+
address@hidden pure virtual function attribute
address@hidden 0
+The member is a pure virtual function.
+
address@hidden @code{mutable} attribute
address@hidden m
+The member is declared @code{mutable}.
+
address@hidden @code{explicit} attribute
address@hidden e
+The member is declared @code{explicit}.
+
address@hidden t
+The member is a function with a throw list.
address@hidden table
address@hidden table
+
+This command is also in the buffer's context menu.
+
+
+
address@hidden Long and Short Display, Regexp Display, Attributes, Member 
Buffers
address@hidden  node-name,       next,       previous,      up
address@hidden Long and Short Member Display
address@hidden display form
address@hidden long display
address@hidden short display
+
address@hidden @kbd
address@hidden D l
+This command toggles the member buffer between short and long display
+form.  The short display form displays member names, only:
+
address@hidden
+| isEmpty        contains       hasMember      create
+| storeSize      hash           isEqual        restoreGuts
+| saveGuts
address@hidden example
+
+The long display shows one member per line with member name and regular
+expressions matching the member (if known):
+
address@hidden
+| isEmpty               Bool isEmpty () const...
+| hash                  unsigned hash () const...
+| isEqual               int isEqual (...
address@hidden example
+
+Regular expressions will only be displayed when the Lisp database has
+not been produced with the @command{ebrowse} option @samp{--no-regexps}.
address@hidden, --no-regexps, Regular Expressions}.
address@hidden table
+
+
+
+
address@hidden Regexp Display, Switching Classes, Long and Short Display, 
Member Buffers
address@hidden  node-name,       next,       previous,      up
address@hidden Display of Regular Expressions
address@hidden regular expression display
+
address@hidden @kbd
address@hidden D r
+This command toggles the long display form from displaying the regular
+expressions matching the member declarations to those expressions
+matching member definitions.
address@hidden 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}.
+
+
+
+
address@hidden Switching Classes, Killing/Burying, Regexp Display, Member 
Buffers
address@hidden  node-name,       next,       previous,      up
address@hidden Displaying Another Class
address@hidden base class, display
address@hidden derived class, display
address@hidden superclass, display
address@hidden subclass, display
address@hidden class display
+
address@hidden @kbd
address@hidden 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.
+
address@hidden 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.
+
address@hidden C d
+Same as @kbd{C b}, but for derived classes.
+
address@hidden C p
+Switch to the previous class in the class hierarchy on the same level as
+the class currently displayed.
+
address@hidden C n
+Switch to the next sibling of the class in the class tree.
address@hidden table
+
+
+
+
address@hidden Killing/Burying, Column Width, Switching Classes, Member Buffers
address@hidden  node-name,       next,       previous,      up
address@hidden Burying a Member Buffer
address@hidden burying member buffers
+
address@hidden @kbd
address@hidden q
+This command is a synonym for @kbd{M-x bury-buffer}.
address@hidden table
+
+
+
+
address@hidden Column Width, Redisplay, Killing/Burying, Member Buffers
address@hidden  node-name,       next,       previous,      up
address@hidden Setting the Column Width
address@hidden column width
address@hidden member indentation
address@hidden indentation, member
+
address@hidden @kbd
address@hidden D w
+This command sets the column width depending on the display form used
+(long or short display).
address@hidden table
+
+
+
+
address@hidden Redisplay, Getting Help, Column Width, Member Buffers
address@hidden  node-name,       next,       previous,      up
address@hidden Forced Redisplay
address@hidden redisplay of member buffers
+
address@hidden @kbd
address@hidden 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.
address@hidden table
+
+
+
+
address@hidden Getting Help, , Redisplay, Member Buffers
address@hidden  node-name,  next,  previous,  up
address@hidden help
+
address@hidden @kbd
address@hidden ?
+This key is bound to @code{describe-mode}.
address@hidden table
+
+
+
+
address@hidden **************************************************************
address@hidden ***                  TAGS LIKE FUNCTIONS
address@hidden **************************************************************
+
address@hidden Tags-like Functions, GNU Free Documentation License, Member 
Buffers, Top
address@hidden  node-name,       next,       previous,      up
address@hidden 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.
+
address@hidden
+* 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
address@hidden menu
+
+
+
address@hidden Finding and Viewing, Position Stack, Tags-like Functions, 
Tags-like Functions
address@hidden  node-name,       next,       previous,      up
address@hidden Finding and Viewing Members
address@hidden finding class member, in C++ source
address@hidden viewing class member, in C++ source
address@hidden tags
address@hidden member definition, finding, in C++ source
address@hidden member declaration, finding, in C++ source
+
+The functions in this section are similar to those described in
address@hidden 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.
+
address@hidden @kbd
address@hidden 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.
+
address@hidden C-c C-m F
+Find the declaration of the member around point.
+
address@hidden C-c C-m v
+View the definition of the member around point.
+
address@hidden C-c C-m V
+View the declaration of the member around point.
+
address@hidden C-c C-m 4 f
+Find a member's definition in another window.
+
address@hidden C-c C-m 4 F
+Find a member's declaration in another window.
+
address@hidden C-c C-m 4 v
+View a member's definition in another window.
+
address@hidden C-c C-m 4 V
+View a member's declaration in another window.
+
address@hidden C-c C-m 5 f
+Find a member's definition in another frame.
+
address@hidden C-c C-m 5 F
+Find a member's declaration in another frame.
+
address@hidden C-c C-m 5 v
+View a member's definition in another frame.
+
address@hidden C-c C-m 5 V
+View a member's declaration in another frame.
address@hidden table
+
+
+
address@hidden Position Stack, Search & Replace, Finding and Viewing, Tags-like 
Functions
address@hidden  node-name,       next,       previous,      up
address@hidden The Position Stack
address@hidden 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
address@hidden stack}.  There are several ways in which you can quickly
+move to positions in the stack:@refill
+
address@hidden @kbd
address@hidden return to original position
address@hidden 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.
+
address@hidden C-c C-m +
+This command moves forward in the position stack, setting point to
+the next position stored in the position stack.
+
address@hidden 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}.
address@hidden table
+
+
+
+
address@hidden Search & Replace, Members in Files, Position Stack, Tags-like 
Functions
address@hidden  node-name,       next,       previous,      up
address@hidden Searching and Replacing
address@hidden searching multiple C++ files
address@hidden replacing in multiple C++ files
address@hidden 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.
+
address@hidden @kbd
address@hidden C-c C-m s
+This function performs a regular expression search in the chosen set of
+files.
+
address@hidden 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.
+
address@hidden C-c C-m %
+Perform a query replace over the set of files.
+
address@hidden C-c C-m ,
+All three operations above stop when finding a match.  You can restart
+the operation with this command.
+
address@hidden C-c C-m n
+This restarts the last tags operation with the next file in the list.
address@hidden table
+
+
+
+
address@hidden Members in Files, Apropos, Search & Replace, Tags-like Functions
address@hidden  node-name,       next,       previous,      up
address@hidden Members in Files
address@hidden files
address@hidden members in file, listing
address@hidden list class members in a file
address@hidden 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.
+
+
+
+
address@hidden Apropos, Symbol Completion, Members in Files, Tags-like Functions
address@hidden  node-name,       next,       previous,      up
address@hidden Member Apropos
address@hidden apropos on class members
address@hidden 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.
+
+
+
+
address@hidden Symbol Completion, Member Buffer Display, Apropos, Tags-like 
Functions
address@hidden  node-name,       next,       previous,      up
address@hidden Symbol Completion
address@hidden completion
address@hidden symbol completion
+
+The command @kbd{C-c C-m @key{TAB}} completes the symbol in front of point.
+
+
+
+
address@hidden Member Buffer Display, , Symbol Completion, Tags-like Functions
address@hidden Quick Member Display
address@hidden 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}.
+
+
address@hidden GNU Free Documentation License, Concept Index, Tags-like 
Functions, Top
address@hidden GNU Free Documentation License
address@hidden doclicense.texi
+
+
address@hidden Concept Index, , GNU Free Documentation License, Top
address@hidden Concept Index
address@hidden cp
+
address@hidden
address@hidden
+
address@hidden
+   arch-tag: 52fe78ac-a1c4-48e7-815e-0a31acfad4bf
address@hidden ignore




reply via email to

[Prev in Thread] Current Thread [Next in Thread]