~ubuntu-branches/ubuntu/saucy/ecb/saucy

« back to all changes in this revision

Viewing changes to ecb.texi

  • Committer: Bazaar Package Importer
  • Author(s): Joerg Jaspert
  • Date: 2004-09-01 22:15:18 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20040901221518-0jfdt2apb2rj69ey
Tags: 2.27-1
And include latest Upstream too...

Show diffs side-by-side

added added

removed removed

Lines of Context:
26
26
@c GNU Emacs; see the file COPYING.  If not, write to the Free Software
27
27
@c Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
28
28
 
29
 
@c $Id: ecb.texi,v 1.154 2004/02/16 18:53:56 berndl Exp $
 
29
@c $Id: ecb.texi,v 1.184 2004/08/25 15:09:05 berndl Exp $
30
30
 
31
31
@setfilename ecb.info
32
32
 
49
49
@c edit the Makefile to change the version number. mechanism stolen
50
50
@c from Tramp
51
51
@macro ecbver{}
52
 
2.21
 
52
2.27
53
53
@end macro
54
54
 
55
55
 
72
72
This is the user manual for ECB version @ecbver{}.
73
73
@end ifnottex
74
74
 
75
 
ECB stands for ``Emacs Code Browser'' and is a source-code-browser for
76
 
(X)Emacs. It is a global minor-mode which offers a
77
 
language-independent and complete IDE (Integrated Development
78
 
Environment) within one Emacs-frame. It displays a couple of windows
79
 
that can be used to browse directories, files and file-contents like
80
 
methods and variables. It supports source-code parsing for
81
 
semantic-supported languages like Java, C, C++, Elisp and Scheme as
82
 
well as for source-types supported ``only'' by imenu or etags (e.g.
83
 
perl, TeX, LaTeX etc.). In addition it offers (optional) a durable
84
 
``compile-window'' at the bottom of the frame which is used to display
85
 
all help-, grep-, compile- and etc.-output. The rest of the frame is
86
 
called the ``edit-area'' which can be divided in several (no limit)
87
 
edit-windows which are used for editing of sources. Deleting some of
88
 
the edit-windows does neither destroy the compile-window nor the
89
 
browsing-windows.
 
75
ECB stands for "Emacs Code Browser". While (X)Emacs already has good
 
76
@strong{editing} support for many modes, its @strong{browsing} support
 
77
is somewhat lacking. That's where ECB comes in: it displays a number
 
78
of informational windows that allow for easy source code navigation
 
79
and overview.
 
80
 
 
81
The informational windows can contain:
 
82
 
 
83
@itemize @bullet
 
84
@item A directory tree,
 
85
@item a list of source files in the current directory,
 
86
@item a list of functions/classes/methods/... in the current file,
 
87
(ECB uses the Semantic Bovinator, or Imenu, or etags, for getting this
 
88
list so all languages supported by any of these tools are
 
89
automatically supported by ECB too)
 
90
@item a history of recently visited files, 
 
91
@item the Speedbar and
 
92
@item output from compilation (the "*compilation*" window) and other
 
93
modes like help, grep etc. or whatever a user defines to be displayed
 
94
in this window.
 
95
@end itemize
 
96
 
 
97
As an added bonus, ECB makes sure to keep these informational windows
 
98
visible, even when you use @kbd{C-x 1} and similar commands.
 
99
 
 
100
It goes without saying that you can configure the layout, ie which
 
101
informational windows should be displayed where. ECB comes with a
 
102
number of ready-made window layouts to choose from.
90
103
 
91
104
@iftex
92
105
@sp 1
105
118
To send bug reports, or participate in discussions about ECB, use the
106
119
mailing list @email{ecb-list@@lists.sourceforge.net} via the URL
107
120
@url{http://lists.sourceforge.net/lists/listinfo/ecb-list}.
 
121
 
108
122
@end ifinfo
109
123
 
110
124
@iftex
129
143
@uref{http://lists.sourceforge.net/lists/listinfo/ecb-list}
130
144
@end ifhtml
131
145
 
 
146
@strong{IMPORTANT}: Cause of extra appearance of SPAM in the
 
147
mailing-lists, SourceForge has changed its policy: Now it is only
 
148
possible to post to the mailing-list for users who have subscribed
 
149
this mailing-list. So please be aware you will not be able to send
 
150
comments, bug reports and improvement suggestions before you have
 
151
subscribed the ECB-mailing-list. See the section "Mailing-list" at the
 
152
ECB-website at
 
153
@ifhtml
 
154
@uref{http://ecb.sourceforge.net}
 
155
@end ifhtml
 
156
@ifnothtml
 
157
@url{http://ecb.sourceforge.net}
 
158
@end ifnothtml
 
159
how to do this.
 
160
 
132
161
@menu
133
162
* Install and first steps::     Installing ECB and first steps
134
163
* Overview::                    Introduce basic concepts
184
213
* The edit-area::               How to use the edit-area
185
214
* Temp- and compile-buffers::   Displaying temp- and compilation-buffers
186
215
* The other window::            How the ``other window'' is determined
187
 
* The Methods buffer::          Using and customizing he Methods-buffer
 
216
* The Methods buffer::          Using and customizing the Methods-buffer
 
217
* Filtering the tree-buffers::  Applying filters to the ECB-tree-buffers 
188
218
* The ECB-layout::              Changing, customizing, redrawing, creating
189
219
* Hiding the ECB windows::      Hiding/Showing the ECB-windows
190
220
* Maximizing the ECB windows::  Maximizing the ECB-windows
206
236
* Customizing the display::     How to customize the Methods-buffer display
207
237
* Rebuilding the Methods::      When to rebuild the Methods-buffer      
208
238
 
 
239
Applying filters to the special ECB-tree-buffers
 
240
 
 
241
* Filtering Directories::       Applying filters to the Directories-buffer
 
242
* Filtering Sources::           Applying filters to the Sources--buffer
 
243
* Filtering History::           Applying filters to the History-buffer
 
244
* Filtering Methods::           Applying filters to the Methods-buffer
 
245
 
209
246
Changing, customizing, redrawing and creating layouts
210
247
 
211
248
* Changing the ECB-layout::     How to change and customize the layout
241
278
* ecb-download::                Customizing how to download ECB
242
279
* ecb-help::                    Customizing the online help of ECB
243
280
* ecb-eshell::                  Customizing the eshell-integration
 
281
* ecb-speedbar::                Customizing the speedbar-integration
244
282
* ecb-non-semantic::            Customizing parsing non-semantic sources
245
283
* ecb-winman::                  Customizing window-manager support
246
284
* ecb-mode-line::               Customizing the tree-buffer-modelines
279
317
* Style basics::                Basic knowledge about the styles
280
318
* Ascii-based styles::          How to customize the ascii-styles
281
319
* Tree-buffers with images::    Which images are used for the tree
 
320
* Images for Methods-buffer::   Images for the tags in the Methods-buffer
282
321
 
283
322
Entry points for Elisp programmers
284
323
 
455
494
Emacs 20.X and Emacs 21.X but XEmacs may have slightly different
456
495
mechanisms; see the XEmacs documentation}.
457
496
 
 
497
So for example the needed entry for your @file{.emacs}-file could be:
 
498
 
 
499
@example
 
500
(add-to-list 'load-path
 
501
             "/path/to/your/ecb/installation/directory")
 
502
@end example
 
503
 
458
504
@strong{ATTENTION}:
459
505
ECB is NOT properly installed if it's directory is not added to
460
506
@code{load-path} and for example just loaded by
492
538
@code{ecb-minor-mode}, @code{ecb-byte-compile} and
493
539
@code{ecb-show-help}.
494
540
 
 
541
Regardless which method you prefer: In both cases the used statement
 
542
must be placed @strong{after} the statement of step 3!
 
543
 
 
544
 
495
545
@item Restart (X)Emacs.
496
546
@end enumerate
497
547
 
800
850
can be displayed (optional), where all the output of Emacs-compilation
801
851
(compile, grep etc.) is shown (@pxref{Temp- and compile-buffers}).
802
852
 
803
 
The following ``ascii-screenshot'' illustrates the typical layout of
 
853
The following ``screenshot'' illustrates the typical layout of
804
854
the ECB-frame@footnote{This is only one example of the layouts ECB
805
855
offers, see @ref{Changing the ECB-layout}}:
806
856
 
1037
1087
* The edit-area::               How to use the edit-area
1038
1088
* Temp- and compile-buffers::   Displaying temp- and compilation-buffers
1039
1089
* The other window::            How the ``other window'' is determined
1040
 
* The Methods buffer::          Using and customizing he Methods-buffer
 
1090
* The Methods buffer::          Using and customizing the Methods-buffer
 
1091
* Filtering the tree-buffers::  Applying filters to the ECB-tree-buffers 
1041
1092
* The ECB-layout::              Changing, customizing, redrawing, creating
1042
1093
* Hiding the ECB windows::      Hiding/Showing the ECB-windows
1043
1094
* Maximizing the ECB windows::  Maximizing the ECB-windows
1607
1658
in another edit-window but only if @code{pop-up-windows} is not nil
1608
1659
(otherwise the edit-window will not be splitted).
1609
1660
 
1610
 
If called from outside the edit-area for a non-``compilation-buffers''
1611
 
(s.a.) then it behaves as if called from within an edit-window if
1612
 
@code{display-buffer} is contained in
1613
 
@code{ecb-layout-always-operate-in-edit-window}: It depends on
1614
 
@code{pop-up-windows} if the edit-window is automatically splitted ot
1615
 
not. If @code{ecb-layout-always-operate-in-edit-window} does not
1616
 
contain @code{display-buffer} then the buffer is displayed in the
1617
 
edit-window without splitting it (if unsplitted).
 
1661
All buffers which are not ``compilation-buffers'' in the sense of
 
1662
@code{ecb-compilation-buffer-p} will be displayed in one of the
 
1663
edit-area and @code{display-buffer} behaves as if the edit-windows
 
1664
would be the only windows in the frame.
1618
1665
 
1619
1666
If BUFFER is contained in @code{special-display-buffer-names} or
1620
1667
matches @code{special-display-regexps} then
1717
1764
then the temp-buffer is displayed in another edit-window otherwise the
1718
1765
edit-are will be splitted first into two edit-windows, one above the
1719
1766
other. The variables @code{temp-buffer-max-height} and
1720
 
@code{temp-buffer-resize-mode} (the latter one does not exist in
1721
 
XEmacs) work also correctly with ECB.
 
1767
@code{temp-buffer-resize-mode} (for GNU Emacs) and
 
1768
@code{temp-buffer-shrink-to-fit} (for XEmacs) work also correctly with
 
1769
ECB.
1722
1770
 
1723
1771
Same for all compilation output-buffers (e.g. after a @code{compile} or
1724
1772
@code{grep}) and the variable @code{compilation-window-height}.
1917
1965
ecb-window is choosen (whereas the next ecb-window of the last
1918
1966
ecb-window is the first ecb-window). In the context of an
1919
1967
@code{other-window}-call the @var{ARG} of @code{other-window} will be
1920
 
taken into account.
 
1968
taken into account. If there is only one ecb-window then ECB considers
 
1969
also the edit-windows.
1921
1970
 
1922
1971
If the compile-window is selected then always the last edit-window
1923
1972
which had the point will be used unless @code{other-window} has been
1969
2018
@item
1970
2019
An integer which indicates how many steps away from the current
1971
2020
selected window the ``other-window'' is. Is nil when this function is
1972
 
called in another context then for @code{other-window}.
 
2021
called in another context than for @code{other-window}.
1973
2022
@end enumerate
1974
2023
 
1975
2024
The function has to return a window-object which is then used as
1988
2037
                                   minibuf-win
1989
2038
                                   point-loc
1990
2039
                                   nth-window)
 
2040
  "Implements the smart-setting of `ecb-other-window-behavior'."
1991
2041
  (if minibuf-win
1992
2042
      ;; if we have an active mini-buffer we delegate this to
1993
2043
      ;; `ecb-get-other-window-minibuf-active'
1999
2049
                                           point-loc
2000
2050
                                           nth-window)
2001
2051
    ;; here we have no active minibuffer!
2002
 
    (let* ((nth-win (or nth-window 1))
2003
 
           (next-listelem-fcn (if (< nth-win 0)
2004
 
                                  'ecb-prev-listelem
2005
 
                                'ecb-next-listelem)))
 
2052
    (let ((nth-win (or nth-window 1)))
2006
2053
      (cond ((equal point-loc 'ecb)
2007
 
             (funcall next-listelem-fcn ecb-win-list
2008
 
                      (selected-window) nth-win))
 
2054
             (ecb-next-listelem ecb-win-list (selected-window) nth-win))
2009
2055
            ((equal point-loc 'compile)
2010
2056
             (if (= nth-win 1)
2011
2057
                 (or (and ecb-last-edit-window-with-point
2012
2058
                          (window-live-p ecb-last-edit-window-with-point)
2013
2059
                          ecb-last-edit-window-with-point)
2014
2060
                     (car edit-win-list))
2015
 
               (funcall next-listelem-fcn
2016
 
                        (append edit-win-list (list (selected-window)))
2017
 
                        (selected-window)
2018
 
                        nth-win)))
 
2061
               (ecb-next-listelem (append edit-win-list
 
2062
                                          (list (selected-window)))
 
2063
                                  (selected-window)
 
2064
                                  nth-win)))
2019
2065
            (t ;; must be an edit-window
2020
 
             (funcall next-listelem-fcn
2021
 
                      (append edit-win-list
2022
 
                              (if (and comp-win
2023
 
                                       (= (length edit-win-list) 1))
2024
 
                                  (list comp-win)))
2025
 
                      (selected-window)
2026
 
                      nth-win))))))
 
2066
             (ecb-next-listelem (append edit-win-list
 
2067
                                        (if (and comp-win
 
2068
                                                 (= (length edit-win-list)
 
2069
                                                    1))
 
2070
                                            (list comp-win)))
 
2071
                                (selected-window)
 
2072
                                nth-win))))))
2027
2073
@end group
2028
2074
@end example
2029
2075
 
2030
2076
This example implements the builtin smart behavior described above.
2031
2077
 
2032
 
@node The Methods buffer, The ECB-layout, The other window, Usage of ECB
 
2078
@node The Methods buffer, Filtering the tree-buffers, The other window, Usage of ECB
2033
2079
@section Using and customizing the ECB-Methods buffer
2034
2080
 
2035
2081
ECB is mostly designed to display parsing information for files
2122
2168
all node-types are expanded/collapsed, i.e. the two options above
2123
2169
takes no effect for these files.
2124
2170
 
2125
 
@subsubsection Automatic expanding the ECB-methods-buffer
 
2171
@subsubsection Automatic expansion ot tags after buffer-parsing
 
2172
 
 
2173
With the option @code{ecb-show-tags} you tell ECB how to display tags
 
2174
of a certain tag-class (@pxref{Customizing the display}). Among other
 
2175
things you can tell ECB that a certain tag-class should be combined
 
2176
under an expanded or collapsed bucket-node. But such a setting defines
 
2177
the expansion-state of such a bucket-node only direct afterwards the
 
2178
buffer has been (re)parsed, which can occur after opening a file,
 
2179
after autom. reparsing the buffer via semantic or after manually
 
2180
rebuilding the methods-buffer of ECB.
 
2181
 
 
2182
The tag-class @code{type} (classes, interfaces, enumerations etc.) is
 
2183
divided into several subtypes by semantic. The subtypes are stings
 
2184
which names exactly if the tag with tag-class @code{type} is a class,
 
2185
an interface, an enumeration, a typedef etc. With the option
 
2186
@code{ecb-type-tag-expansion} you can tell ECB if these type-tags
 
2187
should be autom. expanded after (reparsing) a buffer (see above) or if
 
2188
they should be displayed collapsed - so all its members (methods,
 
2189
variables etc.) are hidden.
 
2190
 
 
2191
@subsubsection Automatic expanding the ECB-methods-buffer for current tag
2126
2192
 
2127
2193
If the option @code{ecb-highlight-tag-with-point} is switched on, then
2128
 
then always that node in the method-buffer is highlighted which
2129
 
belongs to the current semantic-tag under point in the current active
 
2194
always that node in the method-buffer is highlighted which belongs to
 
2195
the current semantic-tag under point in the current active
2130
2196
edit-window. But if this node is invisible (probably because its
2131
2197
parent node is collapsed) then no node is highlighted if the auto.
2132
2198
expanding feature is switched off.
2142
2208
 
2143
2209
The autom. expanding feature is only available for semantic-sources!
2144
2210
 
 
2211
Previous versions of ECB have always fully expanded the whole tree in
 
2212
the Methods-buffer if the current tag in the source-buffer was not
 
2213
visible in the current tree - e.g. because the variables-bucket was
 
2214
collapsed or the containing type of a tag (e.g. the class of a method)
 
2215
was collapsed. So in most cases much more was expanded as needed to
 
2216
make the current tag visible.
 
2217
 
 
2218
The mechanism of ECB 2.22 and higher only expands the needed parts of
 
2219
the tree-buffer to make the related node visible: First we try to
 
2220
highlight the current tag with current expansion-state of the
 
2221
Methods-buffer. If the node is not visible so the tag can not be
 
2222
highlighted then we go upstairs the ladder of type-tags the current
 
2223
tag belongs to (e.g. we expand successive the nodes of the whole
 
2224
class-hierachy of the current method-tag until the related node
 
2225
becomes visible). If there is no containing type for the current tag
 
2226
then the node of the tag is probably contained in a toplevel-bucket
 
2227
which is currently collapsed; in this case we expand only this
 
2228
bucket-node and try highlighting again. Only if this has still no
 
2229
success then we expand the full tree-buffer and try to highlight the
 
2230
current tag.
 
2231
 
 
2232
There is another option
 
2233
@code{ecb-auto-expand-tag-tree-collapse-other}: If this option is set
 
2234
then auto. expanding the tag-tree collapses all not related nodes.
 
2235
This means that all nodes which have no relevance for the currently
 
2236
highlighted node will be collapsed, because they are not necessary to
 
2237
make the highlighted node visible. This feature is switched off by
 
2238
default because if always collapses the complete Methods-tree before
 
2239
the following highlighting of the node for the current tag expands the
 
2240
needed parts of the tree-buffer.
 
2241
 
 
2242
 
2145
2243
@node Customizing the display, Rebuilding the Methods, Expanding, The Methods buffer
2146
2244
@subsection Customizing the display of the Methods-buffer
2147
2245
 
2165
2263
 
2166
2264
@table @code
2167
2265
@item ecb-show-tags
2168
 
Which semantic-tags (e.g. types, methods, variables etc.) should be
2169
 
displayed and should they be collapsed, flattened or expanded. Sorting
2170
 
is also possible.
 
2266
With the option @code{ecb-show-tags} you specify how ECB should
 
2267
display the tags returned by the semantic parser. Semantic divides its
 
2268
tags in several so called @dfn{tag classes}. A tag-class is always a
 
2269
symbol and can be for example @code{type} (tags which represent a
 
2270
class@footnote{Do not confuse the term ``class'' in the context of a
 
2271
tag, which means the class of the tag and which is a semantic-term and
 
2272
a ``class'' in the context of an object oriented language like Java or
 
2273
C++! Normally the surrounding context sould be sufficient to
 
2274
understand which type of ``class'' is meant whenever the term
 
2275
``class'' is used in this manual.}, a interface, an enumeration etc.),
 
2276
@code{function} (tags which represent function or methods),
 
2277
@code{variable} (variables and attributes), @code{include}
 
2278
(import-statements) etc. There is no predefined superset of allowed
 
2279
tag-class-symbols because each language-parser can define its own
 
2280
tag-classes. But to get an overview of the most common tag-classes see
 
2281
the default value of the option @code{ecb-show-tags}.
 
2282
 
 
2283
With the option @code{ecb-show-tags} you can now specify how ECB
 
2284
should display tags of a certain tag-class in a certain major-mode.
 
2285
You can tell ECB that all tags of a tag-class @code{X} should be
 
2286
displayed in an expanded bucket and all tags of a tag-class @code{Y}
 
2287
should be displayed in a collapsed bucket and all tags of a tag-class
 
2288
@code{Z} should be displayed flattened (means not contained in a
 
2289
expandable/collapsable bucket-node). These settings can be made
 
2290
separately for each major-mode but you can also define a
 
2291
default-display which takes effect when for a major-mode no special
 
2292
setting can be found in @code{ecb-show-tags}.
 
2293
 
 
2294
For every tag-class you can tell ECB how the tags should be sorted.
2171
2295
 
2172
2296
@item ecb-font-lock-tags
2173
2297
@itemx ecb-type-tag-display
2233
2357
source-buffer because otherwise etags would not operate with the
2234
2358
latest contents!
2235
2359
 
2236
 
@node The ECB-layout, Hiding the ECB windows, The Methods buffer, Usage of ECB
 
2360
@node Filtering the tree-buffers, The ECB-layout, The Methods buffer, Usage of ECB
 
2361
@section Applying filters to the special ECB-tree-buffers
 
2362
 
 
2363
@cindex Filter
 
2364
To get a fast and good overlook of the contents of a tree-buffer ECB
 
2365
offers a filter-mechanism for the Directories-, Sources-, the History-
 
2366
and the Methods-buffer.
 
2367
 
 
2368
@menu
 
2369
* Filtering Directories::       Applying filters to the Directories-buffer
 
2370
* Filtering Sources::           Applying filters to the Sources--buffer
 
2371
* Filtering History::           Applying filters to the History-buffer
 
2372
* Filtering Methods::           Applying filters to the Methods-buffer
 
2373
@end menu
 
2374
 
 
2375
@node Filtering Directories, Filtering Sources, Filtering the tree-buffers, Filtering the tree-buffers
 
2376
@subsection Applying filters to the Directories-buffer
 
2377
 
 
2378
With the option @code{ecb-excluded-directories-regexps} certain
 
2379
directories can be excluded from being displayed in the
 
2380
directories-browser of ECB. This can be done by defining regular
 
2381
expressions. If the name of a directory matches at least one of the
 
2382
regexps of this option the directory is not displayed in the
 
2383
directories-tree-buffer.
 
2384
 
 
2385
The option @code{ecb-sources-exclude-cvsignore} allows to exclude
 
2386
source-files from the sources-tree-buffer if their name is listed in a
 
2387
so called @file{.cvsignore}-file. This option is a list of regular
 
2388
expressions and if a directory-name matches at least one of these
 
2389
regexps then all files listed in the @file{.cvsignore}-file of this
 
2390
directory are not displayed in the sources-tree-buffer.
 
2391
 
 
2392
@node Filtering Sources, Filtering History, Filtering Directories, Filtering the tree-buffers
 
2393
@subsection Applying filters to the Sources-buffer
 
2394
 
 
2395
@subsubsection Interactive Sources-filters
 
2396
 
 
2397
The command @code{ecb-sources-filter} allows to filter these
 
2398
tree-buffer either by a regular expression or by an extension (e.g.
 
2399
java, cc, el for java-, c++- rsp elisp-sources). This functionality is
 
2400
also available via the popup-menu of the Sources-tree-buffer.
 
2401
 
 
2402
The currently applied filter is indicated in the modeline of the
 
2403
related tree-buffer. Applying a new filter replaces an eventually
 
2404
already applied filter.
 
2405
 
 
2406
@subsubsection Default Sources-filters
 
2407
 
 
2408
The option @code{ecb-source-file-regexps} allow to specify which
 
2409
source-files should be displayed and which not. This is done on a
 
2410
directory-basis, ie. for each directory-regexp the files to display
 
2411
can be specified. See the documentation of this option for all
 
2412
details.
 
2413
 
 
2414
In addition to this option you should also know the option
 
2415
@code{ecb-sources-exclude-cvsignore} (@pxref{Filtering Directories}).
 
2416
 
 
2417
@node Filtering History, Filtering Methods, Filtering Sources, Filtering the tree-buffers
 
2418
@subsection Applying filters to the History-buffer
 
2419
 
 
2420
@subsubsection Interactive History-filters
 
2421
 
 
2422
The command @code{ecb-history-filter} allows to filter these
 
2423
tree-buffer either by a regular expression or by an extension (e.g.
 
2424
java, cc, el for java-, c++- rsp elisp-sources). This functionality is
 
2425
also available via the popup-menu of the History-tree-buffer.
 
2426
 
 
2427
The currently applied filter is indicated in the modeline of the
 
2428
related tree-buffer. Applying a new filter replaces an eventually
 
2429
already applied filter.
 
2430
 
 
2431
@subsubsection Default History-filters
 
2432
 
 
2433
The option @code{ecb-history-exclude-file-regexps} allows to exclude
 
2434
source-files from being historized (ie. displayed in the
 
2435
History-buffer). Despite the fact that the History-buffer already
 
2436
excludes all non-file-buffers there can be still buffers which name
 
2437
you do not wat to be displayed in the history. These are file-buffer
 
2438
like @file{TAGS} or @file{semantic.cache} which store
 
2439
meta-informations used by Emacs and its tools (etags, semantic etc.).
 
2440
These files can be excluded via
 
2441
@code{ecb-history-exclude-file-regexps}.
 
2442
 
 
2443
@node Filtering Methods, , Filtering History, Filtering the tree-buffers
 
2444
@subsection Applying filters to the Methods-buffer
 
2445
 
 
2446
The commands @code{ecb-methods-filter},
 
2447
@code{ecb-methods-filter-regexp},
 
2448
@code{ecb-methods-filter-protection},
 
2449
@code{ecb-methods-filter-tagclass},
 
2450
@code{ecb-methods-filter-function},
 
2451
@code{ecb-methods-filter-delete-last},
 
2452
@code{ecb-methods-filter-nofilter} allows to filter the tags/nodes of
 
2453
the Methods-buffer by several criterias. As for the Sources- and the
 
2454
History-buffer the same functionality is also available via the
 
2455
popup-menu of the Methods-buffer.
 
2456
 
 
2457
@subsubsection Possible filter-criterias
 
2458
 
 
2459
@itemize @bullet
 
2460
@item Filter by protection:
 
2461
Just insert the protection you want the Methods-buffer being filtered:
 
2462
private, protected or public! For sources not supported by semantic
 
2463
the protection filter will not be offered because these informations
 
2464
are not available for such sources.
 
2465
 
 
2466
@item Filter by regexp:
 
2467
Insert the filter as regular expression.
 
2468
 
 
2469
@item Filter by tag-class:
 
2470
You can filter by tag-classes. The popup-menu contains mode-dependend
 
2471
tag-filter entries and the command @code{ecb-methods-filter} offers
 
2472
only the tag-classes of the current mode. This means for sources not
 
2473
supported by semantic the tag-class filter will not be offered. And
 
2474
for semantic-supported sources exactly these tag-classes are offered
 
2475
the semantic-parser for the current major-mode offers. For example
 
2476
texi-sources can only be filtered by the tag-classes ``Definitions''
 
2477
and ``Sections'' and java-sources can be filtered by ``Methods'',
 
2478
``Variables'', ``Classes'' etc. In general the semantic-variable
 
2479
@code{semantic-symbol->name-assoc-list} is used to get the right
 
2480
tag-classes.
 
2481
 
 
2482
@item Filter by a filter-function:
 
2483
Such a function gets two arguments: a tag and the source-buffer of
 
2484
this tag. If the tag should be displayed (i.e. not being filtered out)
 
2485
then the function has to return not nil otherwise nil.
 
2486
 
 
2487
@item No special filter:
 
2488
This means to display all tags specified with the option
 
2489
@code{ecb-show-tokens}. If currently some of the above filters are
 
2490
applied they will be all removed.
 
2491
 
 
2492
@item Delete the last added:
 
2493
This removes only the topmost filter-layer, means that filter added
 
2494
last.
 
2495
@end itemize
 
2496
 
 
2497
Be aware that the tag-list specified by the option
 
2498
@code{ecb-show-tags} is the basis of all filters, i.e. tags which are
 
2499
excluded by that option will never be shown regardless of the filter
 
2500
type here!
 
2501
 
 
2502
All tags which match the applied filter(s) will be displayed in the
 
2503
Methods-buffer. Such a filter is only applied to the current
 
2504
source-buffer, i.e. each source-buffer can have its own tag-filters.
 
2505
 
 
2506
These tag-filters can also applied to sources which are not supported
 
2507
by the semantic-parser but ``only'' by imenu or etags. But because for
 
2508
these sources not all information are avaiable the protection- and
 
2509
tag-class filter are not offered with such ``non-semantic''-sources.
 
2510
See @ref{Non-semantic sources} for further details about working with
 
2511
source-files not supported by the semantic-parser.
 
2512
 
 
2513
 
 
2514
@subsubsection Inverse Filters
 
2515
 
 
2516
But if @code{ecb-methods-filter} is called with a prefix-argument then
 
2517
an inverse filter is applied to the Methods-buffer, i.e. all tags
 
2518
which do @strong{NOT} match the choosen filter will be displayed in
 
2519
the Methods-buffer!
 
2520
 
 
2521
@subsubsection Layered filters
 
2522
 
 
2523
Per default the choosen filter will be applied on top of already
 
2524
existing filters. This means that filters applied before are combined
 
2525
with the new filter. This behavior can changed via the option
 
2526
@code{ecb-methods-filter-replace-existing}.
 
2527
 
 
2528
@subsubsection Display of currently applied filters
 
2529
 
 
2530
The current active filter will be displayed in the modeline of the
 
2531
Methods-buffer [regexp, prot (= protection), tag-class, function (=
 
2532
filter-function)]. If an inverse filter has been applied then this is
 
2533
signalized by a preceding caret ^. If currently more than 1 filter is
 
2534
applied then always the top-most filter is displayed in the modeline
 
2535
but the fact of more than 1 filter is visualized by the number of the
 
2536
filters - included in parens. You can see all currently applied
 
2537
filters by moving the mouse over the filter-string in modeline of the
 
2538
Methods-buffer: They will displayed as help-echo.
 
2539
 
 
2540
@subsubsection Default filters for certain files.
 
2541
 
 
2542
The new option @code{ecb-default-tag-filter} allow to define default
 
2543
tag-filters for certain files which are applied automatically after
 
2544
loading such a file into a buffer. The possible filters are the same
 
2545
as offered by the command @code{ecb-methods-filter} and they are
 
2546
applied in the same manner - the only difference is they are applied
 
2547
automatically. The files can be specified on a combined major-mode-
 
2548
and filename-regexp-basis.
 
2549
 
 
2550
Usage-example: This can be used to display in outline-mode files (e.g.
 
2551
@file{NEWS}) only the level-1-headings by defining a filter regexp
 
2552
``^\* .*''.
 
2553
 
 
2554
@node The ECB-layout, Hiding the ECB windows, Filtering the tree-buffers, Usage of ECB
2237
2555
@section Changing, customizing, redrawing and creating layouts
2238
2556
 
2239
2557
@cindex layout
3347
3665
@end deffn
3348
3666
 
3349
3667
@deffn Command add-all-buffers-to-history
3350
 
Add all current file-buffers to the history-buffer of ECB. If
3351
 
@code{ecb-sort-history-items} is not nil then afterwards the history
3352
 
is sorted alphabetically. Otherwise the most recently used buffers are
3353
 
on the top of the history and the seldom used buffers at the bottom.
 
3668
Add all current file-buffers to the history-buffer of ECB. Dependend
 
3669
on the value of @code{ecb-history-sort-method} afterwards the history
 
3670
is sorted either by name or by extension. If
 
3671
@code{ecb-history-sort-method} is nil the most recently used buffers
 
3672
are on the top of the history and the seldom used buffers at the
 
3673
bottom.
3354
3674
@end deffn
3355
3675
 
 
3676
 
 
3677
 
3356
3678
@deffn Command change-layout &optional preselect-type
3357
3679
Select a layout-name from all current available layouts
3358
3680
(TAB-completion is offered) and change the layout to the selected
3515
3837
@code{ecb-process-non-semantic-files}) @var{FORCE-ALL} is always true!
3516
3838
@end deffn
3517
3839
 
 
3840
@deffn Command dump-semantic-toplevel
 
3841
Dump the current semantic-tags in special buffer and display them.
 
3842
@end deffn
 
3843
 
 
3844
 
3518
3845
@deffn Command eshell-current-buffer-sync
3519
3846
Synchronize the eshell with the directory of current source-buffer.
3520
3847
This is only done if the eshell is currently visible in the
3644
3971
within the ECB-frame.
3645
3972
@end deffn
3646
3973
 
 
3974
@deffn Command methods-filter
 
3975
Apply a filter to the Methods-buffer to reduce the number of entries.
 
3976
So you get a better overlooking. There are six choices:
 
3977
 
 
3978
@itemize @bullet
 
3979
@item Filter by protection:
 
3980
Just insert the protection you want the Methods-buffer being filtered:
 
3981
private, protected or public!
 
3982
 
 
3983
@item Filter by regexp:
 
3984
Insert the filter as regular expression.
 
3985
 
 
3986
@item Filter by tag-class:
 
3987
You can filter by the tag-classes of current major-mode. The available
 
3988
tag-classes come from the variable
 
3989
@code{semantic--symbol->name-assoc-list}. The are normally methods,
 
3990
variables etc.
 
3991
 
 
3992
@item Filter by current type:
 
3993
In languages which have types like Java or C++ this filter displays
 
3994
only the current type and all its members (e.g. attributes and
 
3995
methods). If ECB can not identify the current type in the
 
3996
source-buffer or in the methods-window then nothing will be done.
 
3997
 
 
3998
@item Filter by a filter-function:   
 
3999
Such a function gets two arguments: a tag and the source-buffer of
 
4000
this tag. If the tag should be displayed (i.e. not being filtered out)
 
4001
then the function has to return not nil otherwise nil.
 
4002
 
 
4003
@item No special filter:
 
4004
This means to display all tags specified with the option
 
4005
@code{ecb-show-tokens}. If currently some of the above filters are
 
4006
applied they will be all removed.
 
4007
 
 
4008
@item Delete the last added:
 
4009
This removes only the topmost filter-layer, means that filter added
 
4010
last.
 
4011
@end itemize
 
4012
 
 
4013
The protection-, current-type- and the tag-class-filter are only
 
4014
available for semantic-supported sources.
 
4015
 
 
4016
Be aware that the tag-list specified by the option
 
4017
@code{ecb-show-tags} is the basis of all filters, i.e. tags which are
 
4018
excluded by that option will never be shown regardless of the filter
 
4019
type here!
 
4020
 
 
4021
All tags which match the applied filter(s) will be displayed in the
 
4022
Methods-buffer.
 
4023
 
 
4024
If called with a prefix-argument or when optional arg INVERSE is not
 
4025
nil then an inverse filter is applied to the Methods-buffer, i.e. all
 
4026
tags which do NOT match the choosen filter will be displayed in the
 
4027
Methods-buffer!
 
4028
 
 
4029
Per default the choosen filter will be applied on top of already
 
4030
existing filters. This means that filters applied before are combined
 
4031
with the new filter. This behavior can changed via the option
 
4032
@code{ecb-methods-filter-replace-existing}. But regardless of the
 
4033
setting in @code{ecb-methods-filter-replace-existing} applying one of
 
4034
the not-inverse filters protection, tag-class or current-type always
 
4035
replaces exactly already existing filters of that type. On the other
 
4036
hand applying more than one inverse tag-class- or protection-filter
 
4037
can make sense.
 
4038
 
 
4039
Such a filter is only applied to the current source-buffer, i.e. each
 
4040
source-buffer can have its own tag-filters.
 
4041
 
 
4042
The current active filter will be displayed in the modeline of the
 
4043
Methods-buffer [regexp, prot (= protection), tag-class, function (=
 
4044
filter-function)]. If an inverse filter has been applied then this is
 
4045
signalized by a preceding caret ^. If currently more than 1 filter is
 
4046
applied then always the top-most filter is displayed in the modeline
 
4047
but the fact of more than 1 filter is visualized by the number of the
 
4048
filters - included in parens. You can see all currently applied
 
4049
filters by moving the mouse over the filter-string in modeline of the
 
4050
Methods-buffer: They will displayed as help-echo.
 
4051
 
 
4052
See the option @code{ecb-default-tag-filter} if you search for
 
4053
automatically applied default-tag-filters.
 
4054
@end deffn
 
4055
 
 
4056
@deffn Command methods-filter-current-type
 
4057
Display in the Methods-buffer only the current type and its members.
 
4058
For further details see @code{ecb-methods-filter}.
 
4059
@end deffn
 
4060
 
 
4061
 
 
4062
@deffn Command methods-filter-delete-last
 
4063
Remove the most recent filter from the Methods-buffer. For further details see
 
4064
@code{ecb-methods-filter}.
 
4065
@end deffn
 
4066
 
 
4067
@deffn Command methods-filter-function &optional inverse
 
4068
Filter the methods-buffer by a function. If INVERSE is not nil (called
 
4069
with a prefix arg) then an inverse filter is applied. For further details see
 
4070
@code{ecb-methods-filter}.
 
4071
@end deffn
 
4072
 
 
4073
@deffn Command methods-filter-nofilter
 
4074
Remove any filter from the Methods-buffer. For further details see
 
4075
@code{ecb-methods-filter}.
 
4076
@end deffn
 
4077
 
 
4078
@deffn Command methods-filter-protection &optional inverse
 
4079
Filter the methods-buffer by protection. If INVERSE is not nil (called
 
4080
with a prefix arg) then an inverse filter is applied. For further details see
 
4081
@code{ecb-methods-filter}.
 
4082
@end deffn
 
4083
 
 
4084
@deffn Command methods-filter-regexp &optional inverse
 
4085
Filter the methods-buffer by a regexp. If INVERSE is not nil (called
 
4086
with a prefix arg) then an inverse filter is applied. For further details see
 
4087
@code{ecb-methods-filter}.
 
4088
@end deffn
 
4089
 
 
4090
@deffn Command methods-filter-tagclass &optional inverse
 
4091
Filter the methods-buffer by tag-class. If INVERSE is not nil (called
 
4092
with a prefix arg) then an inverse filter is applied. For further details see
 
4093
@code{ecb-methods-filter}.
 
4094
@end deffn
 
4095
 
3647
4096
@deffn Command minor-mode &optional arg
3648
4097
Toggle ECB minor mode. With prefix argument @var{ARG}, turn on if
3649
4098
positive, otherwise off. Return non-@code{nil} if the minor mode is
3802
4251
directory has its own filtered sources-buffer.
3803
4252
@end deffn
3804
4253
 
3805
 
 
3806
 
@deffn Command store-window-sizes &optional fix
 
4254
@deffn Command store-window-sizes &optional FIX
3807
4255
Stores the sizes of the ECB windows for the current layout. The size
3808
4256
of the ECB windows will be set to their stored values when
3809
4257
@code{ecb-redraw-layout} or @code{ecb-restore-window-sizes} is called.
3813
4261
 
3814
4262
The windows sizes are stored per default as fractions of current
3815
4263
frame-width and -height of the ecb-frame, so the stored values will
3816
 
``work'' for other frame sizes too. But if @var{FIX} is not nil (means
3817
 
called with a prefix argument) then the fixed values of current width
3818
 
and height are stored!
 
4264
``work'' for other frame sizes too. If a permanent compile-window is
 
4265
visible then ECB will tell you that window-sizes should be stored with
 
4266
hidden compile-window and ask you if you want proceed; if you proceed
 
4267
then the window-heights will be stored as fractions of current
 
4268
(frame-height minus current visible compile-window-height) so you
 
4269
should ensure that the current compile-window has its standard-height
 
4270
as specified in @code{ecb-compile-window-height}!. If @var{FIX} is not
 
4271
nil (means called with a prefix argument) then always the fixed values
 
4272
of current width and height are stored!
3819
4273
@end deffn
3820
4274
 
3821
4275
@deffn Command submit-problem-report
3866
4320
windows. ECB minor mode remains active!
3867
4321
@end deffn
3868
4322
 
3869
 
@deffn Command toggle-layout
 
4323
@deffn Command toggle-layout &optional last-one
3870
4324
Toggles between the layouts defined in
3871
4325
@code{ecb-toggle-layout-sequence} (See also option
3872
4326
@code{ecb-show-sources-in-directories-buffer}). Note: This function
3873
4327
works by changing the options @code{ecb-layout-name} but only for
3874
4328
current Emacs-session.
 
4329
 
 
4330
If optional argument @var{LAST-ONE} is not nil (e.g. called with a
 
4331
prefix-arg) then always the last selected layout was choosen
 
4332
regardless of the setting in @code{ecb-toggle-layout-sequence}. The
 
4333
last selected layout is always that layout which was current direct
 
4334
before the most recent layout-switch. So now a user can switch to
 
4335
another layout via `ecb-change-layout' and always come back to his
 
4336
previous layout via @kbd{[C-u]} @code{ecb-toggle-layout}.
3875
4337
@end deffn
3876
4338
 
3877
4339
@deffn Command toggle-scroll-other-window-scrolls-compile &optional ARG
4246
4708
* ecb-download::                Customizing how to download ECB
4247
4709
* ecb-help::                    Customizing the online help of ECB
4248
4710
* ecb-eshell::                  Customizing the eshell-integration
 
4711
* ecb-speedbar::                Customizing the speedbar-integration
4249
4712
* ecb-non-semantic::            Customizing parsing non-semantic sources
4250
4713
* ecb-winman::                  Customizing window-manager support
4251
4714
* ecb-mode-line::               Customizing the tree-buffer-modelines
4534
4997
@defopt minor-mode-text
4535
4998
String to display in the mode line when ECB minor mode is active.
4536
4999
(When the string is not empty, make sure that it has a leading space.)
 
5000
 
 
5001
Because for ECB it is quite obvious if it is active or not when the
 
5002
ECB-windows are visible this text is only display in the modeline if
 
5003
the ECB-windows are hidden.
4537
5004
@end defopt
4538
5005
 
4539
5006
 
4950
5417
activated you must deactivate and activate ECB again to take effect.
4951
5418
@end defopt
4952
5419
 
 
5420
@defopt tree-mouse-action-trigger
 
5421
When the tree-buffer mouse-action should be triggered. This option
 
5422
determines the moment a mouse-action in a tree-buffer is triggered.
 
5423
This can be either direct after pressing a mouse-button (value
 
5424
@code{button-press}) or not until releasing the mouse-button (value:
 
5425
@code{button-release}).
 
5426
 
 
5427
If you change this during ECB is activated you must deactivate and
 
5428
activate ECB again to take effect!
 
5429
@end defopt
 
5430
 
 
5431
 
4953
5432
@defopt tree-navigation-by-arrow
4954
5433
Enable smart navigation in the tree-windows by horiz. arrow-keys. If
4955
5434
not nil then the left- and right-arrow keys work in the ECB
5174
5653
@item Submenu:
5175
5654
A list where the first element is the title of the submenu displayed
5176
5655
in the main-menu and all other elements are either menu-commands (see
5177
 
1) or separators (see 2).
 
5656
1) or separators (see 2) or another submenu (see c). This allows deep
 
5657
nested menu-submenu-structures. Currently a level of 4 is allowed but
 
5658
in general there could be an infinite depth of nesting but it makes no
 
5659
sense - if possible at all - to define infinite nested
 
5660
defcustom-types. So there is a limit of 4 levels but tis is not a hard
 
5661
limit: Just increase the value of the @code{ecb-max-submenu-depth}
 
5662
@strong{BEFORE} first loading ECB!
5178
5663
@end enumerate
5179
5664
 
5180
5665
The function of a menu-command must follow the following guidelines:
5235
5720
@end defopt
5236
5721
 
5237
5722
 
5238
 
@defopt excluded-directories-regexp
 
5723
@defopt excluded-directories-regexps
5239
5724
Directories that should not be included in the directories list. The
5240
 
value of this variable should be a regular expression.
 
5725
value of this variable should be a list of regular expression.
 
5726
@end defopt
 
5727
 
 
5728
@defopt prescan-directories-for-emptyness
 
5729
ECB does this so directories are displayed as empty in the
 
5730
directories-buffer even without user-interaction (i.e. in previous
 
5731
ECB-versions the emptyness of a directory has been first checked when
 
5732
the user has clicked onto a directory). ECB optimizes this check as
 
5733
best as possible but if a directory contains a lot of subdirectories
 
5734
which contain in turn a lot of entries, then expanding such a
 
5735
directory or selecting it takes of course more time as without this
 
5736
check - at least at the first time (all following selects of a
 
5737
directory uses the cached information if its subdirectories are empty
 
5738
or not). Therefore this feature can be switched of via this option."
5241
5739
@end defopt
5242
5740
 
5243
5741
@defopt show-sources-in-directories-buffer
5304
5802
 
5305
5803
So the value of this option is a list of cons-cells where the car is a
5306
5804
directory regexp and the cdr is a 2 element list where the first
5307
 
element is a exclude regexp and the second element is a include
5308
 
regexp. A file is displayed in the source-buffer of ECB iff: The file
5309
 
does not match the exclude regexp OR the file matches the include
5310
 
regexp.
 
5805
element is a list of exclude regexps and the second element is a list
 
5806
of include regexps. A file is displayed in the source-buffer of ECB
 
5807
iff: The file does not match any of the exclude regexps OR the file
 
5808
matches at least one of the include regexps.
5311
5809
 
5312
5810
But regardless of the value of this option a file F is never displayed
5313
5811
in the sources-buffer if the directory matches
5412
5910
whole menu can be re-arranged with @code{ecb-sources-menu-sorter}.
5413
5911
@end defopt
5414
5912
 
5415
 
 
 
5913
@defopt sources-sort-ignore-case
 
5914
Ignore case for sorting the source-files of the Sources-buffer. See
 
5915
also @code{ecb-sources-sort-method}.
 
5916
@end defopt
5416
5917
 
5417
5918
@defopt sources-sort-method
5418
5919
Defines how the source files are sorted.
5421
5922
@item @code{name}:
5422
5923
Sorting by name.
5423
5924
@item @code{extension}:
5424
 
Sorting first by name and then by extension.
 
5925
Sorting first by extension and then by name.
5425
5926
@item @code{nil}:
5426
5927
No sorting, means source files are displayed in the sequence returned
5427
5928
by @code{directory-files} (called without sorting).
5428
5929
@end itemize
 
5930
 
 
5931
See also @code{ecb-sources-sort-ignore-case}
5429
5932
@end defopt
5430
5933
 
5431
5934
 
5457
5960
supported by semantic!
5458
5961
@end defopt
5459
5962
 
 
5963
@defopt auto-expand-tag-tree-collapse-other
 
5964
Auto. expanding the tag-tree collapses all not related nodes. There
 
5965
are several choices:
 
5966
 
 
5967
@itemize @minus
 
5968
@item Only if on tag:
 
5969
This means collapsing all nodes which have no relevance for the
 
5970
currently highlighted node will be collapsed, because they are not
 
5971
necessary to make the highlighted node visible. But do this only if
 
5972
point stays onto a tag in the selected edit-window.
 
5973
 
 
5974
@item Always:
 
5975
Same as before but collapse also when point doesn't stays on a tag
 
5976
(e.g. between two defuns in elisp) in the selected edit-window. This
 
5977
means in such a situation a full collapsing of the methods-buffer.
 
5978
 
 
5979
@item Never:
 
5980
Do not automatically collapse the methods-buffer.
 
5981
@end itemize
 
5982
@end defopt
 
5983
 
5460
5984
 
5461
5985
@defopt auto-update-methods-after-save
5462
5986
Automatically updating the ECB method buffer after saving a source.
5463
5987
@end defopt
5464
5988
 
 
5989
@defopt default-tag-filter
 
5990
Default tag-filters for certain files. This option allow to define
 
5991
default tag-filters for certain files which are applied automatically
 
5992
after loading such a file into a buffer. The possible filters are the
 
5993
same as offered by the command @code{ecb-methods-filter} and they are
 
5994
applied in the same manner - the only difference is they are applied
 
5995
automatically. Please be aware that symbol-filters (e.g.
 
5996
protection-symbols like public or private) must not be inserted with
 
5997
quotes whereas a filter-regexp has to be inserted with surrounding
 
5998
double-quotes! In addition backslashes in a regexp have to be doubled!
 
5999
 
 
6000
For each file-spec (a major-mode plus a file-regexp which both specify
 
6001
a file for which filters should be applied) there can be as much
 
6002
filters as needed - they are layered like with
 
6003
@code{ecb-methods-filter} too.
 
6004
 
 
6005
Tag-classes which are completely hidden or excluded by the option
 
6006
@code{ecb-show-tags} will never being displayed in the Methods-buffer
 
6007
regardless of the filters of this option!
 
6008
@end defopt
 
6009
 
 
6010
@defopt display-image-icons-for-semantic-tags
 
6011
Display nice and pretty icons for semantic-tags in the Methods-buffer.
 
6012
This option takes only effect if Emacs can display images and if
 
6013
@code{ecb-tree-buffer-style} is set to @code{image}.
 
6014
@end defopt
 
6015
 
5465
6016
@defopt exclude-parents-regexp
5466
 
Regexp which parent classes should not be shown in the methods buffer
 
6017
Regexps which parent classes should not be shown in the methods buffer
5467
6018
(see also @code{ecb-show-parents}). If nil then all parents will be
5468
6019
shown if @code{ecb-show-parents} is not nil.
5469
6020
 
5553
6104
deactivating and then activating ECB again!
5554
6105
@end defopt
5555
6106
 
 
6107
@defopt methods-filter-replace-existing
 
6108
How the methods-filter should be applied to existing filters. There
 
6109
are three different choices:
 
6110
 
 
6111
@itemize @minus
 
6112
@item @code{never}:
 
6113
This is the default and means that calling @code{ecb-methods-filter}
 
6114
always adds the new filter on top of already existing filters. So you
 
6115
can combine several filter to one combined like this example: 'Display
 
6116
only all public methods having the string ``test'' in its name.' With
 
6117
this setting the filters can only be cleared by calling
 
6118
@code{ecb-methods-filter} and then choosing ``nothing''.
 
6119
 
 
6120
@item @code{always}:
 
6121
This means that @code{ecb-methods-filter} always clears a previous
 
6122
filter before applying the new one.
 
6123
 
 
6124
@item @code{ask}:
 
6125
ECB asks if the new filter should replace the existing ones.
 
6126
@end itemize
 
6127
@end defopt
 
6128
 
 
6129
 
 
6130
 
5556
6131
@defopt methods-menu-sorter
5557
6132
Function which re-sorts the menu-entries of the directories buffer.
5558
6133
 
5627
6202
supported by semantic!
5628
6203
@end defopt
5629
6204
 
 
6205
@defopt methods-separate-prototypes
 
6206
Separate function-prototypes from the real functions. This is for
 
6207
example useful for C++ and C because these languages distinct between
 
6208
a method-prototype (rsp. function-prototype for C) and the method
 
6209
(rsp. function for C) itself. If this option is not nil then ECB
 
6210
separates the prototypes from the real function/methods. Then with
 
6211
@code{ecb-show-tags} the user can define different display-settings
 
6212
for each of them. If this option is nil then the prototypes and the
 
6213
real functions are filled in the same bucket and displayed plain and
 
6214
there is no sorting between prototypes and functions possible. If this
 
6215
option is switched on then it is senseful that @code{ecb-show-tags}
 
6216
contains for all modes which distinct between prototypes and real
 
6217
functions/methods two entries for the tag-type 'function - see the
 
6218
documentation of this option.
 
6219
@end defopt
5630
6220
 
5631
6221
@defopt post-process-semantic-taglist
5632
6222
Define mode-dependent post-processing for the semantic-taglist. This
5669
6259
 
5670
6260
@defopt show-tags
5671
6261
How to show tags in the methods buffer first time after find-file.
5672
 
This variable is a list where each element represents a type of
5673
 
tags:
 
6262
This functionality is set on a major-mode base, i.e. for every
 
6263
major-mode a different setting can be used. The value of this option
 
6264
is a list of cons-cells:
 
6265
 
 
6266
The car is either a major-mode symbol or the special symbol 'default
 
6267
which means if no setting for a certain major-mode is defined then the
 
6268
cdr of the 'default cons-cell is used. This option should always
 
6269
contain a default-setting!
 
6270
 
 
6271
The cdr is a list where each element represents a type of tags:
5674
6272
 
5675
6273
@example
5676
6274
(<tag type> <display type> <sort method>)
5677
6275
@end example
5678
6276
 
 
6277
There can be more than 1 element for a certain <tag type>. This is for
 
6278
example useful for C++ and C because these languages distinct between
 
6279
a method-prototype (rsp. function-prototype for C) and the method
 
6280
(rsp. function for C) itself. The default value of these option
 
6281
contains two entries for <tag type> is @code{function} whereas the
 
6282
first one is responsible for the ``real'' methods (rsp. functions) and
 
6283
the second one for the prototypes. So if the methods should be
 
6284
flattened and the prototypes collapsed the show-tags-list for C++ and
 
6285
C must contain two entries for <tag type> @code{function}, the first
 
6286
one defined as @code{flattened} and the second one defined as
 
6287
@code{collapsed}.
 
6288
 
5679
6289
The tags in the methods buffer are displayed in the order as they appear in
5680
6290
this list.
5681
6291
 
5832
6442
function for details what they do.
5833
6443
 
5834
6444
But you can add any arbitrary function if the following conditions are
5835
 
fulfilled: The function gets the semantic tag as argument returns
5836
 
the (new) point after finishing its job.
 
6445
fulfilled: The function gets the semantic tag as argument, returns the
 
6446
(new) point after finishing its job and the function must not put the
 
6447
point outside the tag-boundaries of the tag-argument.
5837
6448
@end defopt
5838
6449
 
5839
6450
 
5980
6591
deactivating and then activating ECB again!
5981
6592
@end defopt
5982
6593
 
 
6594
@defopt history-exclude-file-regexps
 
6595
List of regexps which exclude source-files from being historized. Be
 
6596
aware that each always full filenames (ie. incl. full path) are
 
6597
matched against these regexps! Therefore be carefore with regexps
 
6598
beginning with ^!
 
6599
@end defopt
 
6600
 
5983
6601
@defopt history-item-name
5984
6602
The name to use for items in the history buffer.
5985
6603
@end defopt
6021
6639
whole menu can be re-arranged with @code{ecb-history-menu-sorter}.
6022
6640
@end defopt
6023
6641
 
 
6642
@defopt history-sort-ignore-case
 
6643
Ignore case for sorting the history-entries. See also
 
6644
@code{ecb-history-sort-method}.
 
6645
@end defopt
 
6646
 
 
6647
@defopt history-sort-method
 
6648
Defines how the entries in the history-buffer are sorted.
 
6649
@itemize @minus
 
6650
@item @code{name}:
 
6651
Sorting by name (default).
 
6652
@item @code{extension}:
 
6653
Sorting first by extension and then by name.
 
6654
@item @code{nil}:
 
6655
No sorting, means the most recently used buffers are on the top of the
 
6656
history and the seldom used buffers at the bottom.
 
6657
@end itemize
 
6658
 
 
6659
See also @code{ecb-history-sort-ignore-case}.
 
6660
@end defopt
 
6661
 
6024
6662
@defopt kill-buffer-clears-history
6025
6663
Define if @code{kill-buffer} should also clear the history. There are
6026
6664
three options:
6036
6674
@end itemize
6037
6675
@end defopt
6038
6676
 
6039
 
@defopt sort-history-items
6040
 
Sorts the items in the history buffer.
6041
 
@end defopt
6042
 
 
6043
6677
@node ecb-layout, ecb-compilation, ecb-history, Customizable options
6044
6678
@subsection Group ecb-layout
6045
6679
 
6424
7058
ecb-window is choosen (whereas the next ecb-window of the last
6425
7059
ecb-window is the first ecb-window). In the context of an
6426
7060
@code{other-window}-call the @var{ARG} of @code{other-window} will be
6427
 
taken into account.
 
7061
taken into account. If there is only one ecb-window then ECB considers
 
7062
also the edit-windows
6428
7063
 
6429
7064
If the compile-window is selected then always the last edit-window
6430
7065
which had the point will be used unless @code{other-window} has been
7241
7876
HTML-online-documentation is not included.
7242
7877
@end defopt
7243
7878
 
7244
 
@node ecb-eshell, ecb-non-semantic, ecb-help, Customizable options
 
7879
@node ecb-eshell, ecb-speedbar, ecb-help, Customizable options
7245
7880
@subsection Group ecb-eshell
7246
7881
 
7247
7882
@noindent
7273
7908
@code{ecb-current-buffer-sync-hook}.
7274
7909
@end defopt
7275
7910
 
7276
 
 
7277
 
@node ecb-non-semantic, ecb-winman, ecb-eshell, Customizable options
 
7911
@node ecb-speedbar, ecb-non-semantic, ecb-eshell, Customizable options
 
7912
@subsection Group ecb-speedbar
 
7913
 
 
7914
TODO
 
7915
 
 
7916
@node ecb-non-semantic, ecb-winman, ecb-speedbar, Customizable options
7278
7917
@subsection Group ecb-non-semantic
7279
7918
 
7280
7919
@noindent
7411
8050
specified which gets three args (name of the buffer, current selected
7412
8051
directory and current selected source-file) and must return a string
7413
8052
which will be displayed in the modeline (or nil if no data should be
7414
 
displayed).
 
8053
displayed). Such a function can add the text-property @code{help-echo}
 
8054
to the result-string. Then this help-string will be displayed when the
 
8055
user moves the mouse over this section of the modeline.
7415
8056
 
7416
8057
If a special ECB-buffer should not display special data in its
7417
8058
modeline then this buffer-name should either not being added to this
7477
8118
used as it is or a function-symbol which is called with three argument
7478
8119
(the buffer-name, the current selected directory and the current
7479
8120
selected source-file) and must return either nil (for no prefix) or a
7480
 
string which is then used a prefix.
 
8121
string which is then used a prefix. Such a function can add the
 
8122
text-property @code{help-echo} to the result-string. Then this
 
8123
help-string will be displayed when the user moves the mouse over this
 
8124
section of the modeline.
7481
8125
 
7482
8126
If a special ECB-buffer should not have a prefix in its modeline then
7483
8127
this buffer-name should either not being added to this option or added
7518
8162
read the documentation of this command, see @ref{Interactive ECB
7519
8163
commands}.
7520
8164
 
 
8165
@strong{IMPORTANT}: Cause of extra appearance of SPAM in the
 
8166
mailing-lists, SourceForge has changed its policy: Now it is only
 
8167
possible to post to the mailing-list for users who have subscribed
 
8168
this mailing-list. So please be aware you will not be able to send
 
8169
comments, bug reports and improvement suggestions before you have
 
8170
subscribed the ECB-mailing-list. See the section "Mailing-list" at the
 
8171
ECB-website at
 
8172
@ifhtml
 
8173
@uref{http://ecb.sourceforge.net}
 
8174
@end ifhtml
 
8175
@ifnothtml
 
8176
@url{http://ecb.sourceforge.net}
 
8177
@end ifnothtml
 
8178
how to do this.
 
8179
 
 
8180
If you think there are problems concerning parsing-results for certain
 
8181
sources supported by semantic then you should call
 
8182
@code{ecb-dump-semantic-toplevel} for the problematic source-buffer
 
8183
@strong{BEFORE} you call @code{ecb-submit-problem-report} because this
 
8184
``dump''-command generates for the current-buffer a new buffer with
 
8185
name ``*ecb-tag-dump*'' which contains all semantic-tags for this
 
8186
source. The contents of this ``*ecb-tag-dump*'' will then autom. be
 
8187
added to the problem-report generated by
 
8188
@code{ecb-submit-problem-report}!
 
8189
 
7521
8190
This command creates a problem-report buffer for you. After that you
7522
8191
get a menu ``Mail'' (dependent on the mail-package used, the menu can
7523
8192
have a different name) with commands to send the problem report. But
8051
8720
 
8052
8721
@strong{IMPORTANT}: ECB can only integrate speedbar-versions >=
8053
8722
0.14beta1! If you use lower versions of speedbar
8054
 
@code{ecb-use-speedbar-for-directories} has no effect.
 
8723
@code{ecb-use-speedbar-instead-native-tree-buffer} has no effect.
8055
8724
 
8056
8725
@node Optimize scrolling, Large directories, Integrating speedbar, Tips and tricks
8057
8726
@section Optimize scrolling in the edit-window
8256
8925
@end group
8257
8926
@end example
8258
8927
 
 
8928
Of course you can add entries to the option
 
8929
@code{ecb-methods-menu-user-extension} and
 
8930
@code{ecb-methods-menu-user-extension} too. 
 
8931
 
8259
8932
@end itemize
8260
8933
 
8261
8934
 
8622
9295
* Style basics::                Basic knowledge about the styles
8623
9296
* Ascii-based styles::          How to customize the ascii-styles
8624
9297
* Tree-buffers with images::    Which images are used for the tree
 
9298
* Images for Methods-buffer::   Images for the tags in the Methods-buffer
8625
9299
@end menu
8626
9300
 
8627
9301
@node Style basics, Ascii-based styles, ,Tree-buffer styles
8676
9350
@group
8677
9351
[-] node-with-subnodes      (open)
8678
9352
 |-[+] not-empty-subnode1   (guide+handle+close)
8679
 
 |-[X] empty-subnode        (guide+handle+empty)
 
9353
 |-[x] empty-subnode        (guide+handle+empty)
8680
9354
 `-[-] not-empty-subnode2   (end-guide+handle+open)
8681
9355
    |-* leaf-1              (no-guide+no-handle+guide+handle+leaf)
8682
9356
    `-* leaf-2              (no-guide+no-handle+end-guide+handle+leaf)
8743
9417
handle-symbols can be customized with the option
8744
9418
@code{ecb-tree-guide-line-face} (default is the equal-named face).
8745
9419
 
8746
 
@node Tree-buffers with images, ,Ascii-based styles, Tree-buffer styles
 
9420
@node Tree-buffers with images, Images for Methods-buffer, Ascii-based styles, Tree-buffer styles
8747
9421
@subsection Which images are used for the tree
8748
9422
 
8749
9423
Depending on the value of @code{ecb-tree-buffer-style} and the
8750
9424
image-support of (X)Emacs, the tree-buffer try to use images instead
8751
 
of strings to draw a nice-looking tree. If images can and should be
8752
 
used then the option @code{ecb-tree-image-icons-directories} tells ECB
8753
 
where to search for suitable image-icons for each of the nine
8754
 
image-names (see above). An image is used for displaying a control
8755
 
with name ``XXX'' if one of the directories of
8756
 
@code{ecb-tree-image-icons-directories} contains an image-file with
8757
 
basename ``ecb-XXX'' and an extension which is supported by (X)Emacs.
8758
 
Currently supported extensions are ``.xpm'', ``.png'', ``.gif'',
8759
 
``.jpeg'', .''jpg'' and ``.xbm''.
 
9425
of strings to draw a nice-looking tree.
 
9426
 
 
9427
If images can and should be used then the option
 
9428
@code{ecb-tree-image-icons-directories} tells ECB where to search for
 
9429
suitable image-icons for each of the nine image-names (see above). An
 
9430
image is used for displaying a control with name ``XXX'' if one of the
 
9431
directories of @code{ecb-tree-image-icons-directories} contains an
 
9432
image-file with basename ``ecb-XXX'' and an extension which is
 
9433
supported by (X)Emacs. Currently supported extensions are ``.xpm'',
 
9434
``.png'', ``.gif'', ``.jpeg'', .''jpg'' and ``.xbm''.
8760
9435
 
8761
9436
Example: To display the control with name ``open'' with a suitable
8762
9437
image then one of the directories of
8766
9441
searches the directories of @code{ecb-tree-image-icons-directories}.
8767
9442
 
8768
9443
ECB comes with predefined default-images usable for every tree-buffer
8769
 
and special images for the Directories-tree-buffer. They are defined
8770
 
in several different heights - so for the most senseful font-heights
8771
 
of a tree-buffer a fitting image-size should be available. The shipped
8772
 
images reside either in the subdirectory "ecb-images" of the
8773
 
ECB-installation or - if ECB is installed as regular XEmacs-package -
8774
 
in the ECB-etc data-directory (the directory returned by evaluating
8775
 
(locate-data-directory "ecb"). If you do not want to change the images
8776
 
then you normally have nothing to do because the default value of
8777
 
@code{ecb-tree-image-icons-directories} points already to the correct
8778
 
image-directories.
 
9444
and special images for the Directories- and the Methods-tree-buffer.
 
9445
They are defined in several different heights - so for the most
 
9446
senseful font-heights of a tree-buffer a fitting image-size should be
 
9447
available. The shipped images reside either in the subdirectory
 
9448
"ecb-images" of the ECB-installation or - if ECB is installed as
 
9449
regular XEmacs-package - in the ECB-etc data-directory (the directory
 
9450
returned by evaluating (locate-data-directory "ecb"). If you do not
 
9451
want to change the images then you normally have nothing to do because
 
9452
the default value of @code{ecb-tree-image-icons-directories} points
 
9453
already to the correct image-directories.
8779
9454
 
8780
9455
@subsubsection A special note for XEmacs
8781
9456
 
8805
9480
Just try it - if the tree-buffers look ugly then the XEmacs-bug is
8806
9481
probably not fixed correctly.
8807
9482
 
 
9483
@node Images for Methods-buffer, ,Tree-buffers with images, Tree-buffer styles
 
9484
@subsection Special images for the Methods-buffer
 
9485
 
 
9486
ECB can display all the semantic-tags in the Method-buffer with
 
9487
special icons for methods, variables and classes - each of them with a
 
9488
different icon dependend of the protection of the tag. This feature
 
9489
can be disabled/enabled via the option
 
9490
@code{ecb-display-image-icons-for-semantic-tags}. All the special
 
9491
images are located in that directory where the option
 
9492
@code{ecb-tree-image-icons-directories} point to for methods.
 
9493
 
8808
9494
@node Using semanticdb, , Tree-buffer styles, Tips and tricks
8809
9495
@section Using semanticdb to jump to type-tags defined in other files
8810
9496
 
9827
10513
@itemize @minus
9828
10514
@item ecb-available-layouts-member-p
9829
10515
@item ecb-canonical-ecb-windows-list
 
10516
@item ecb-canonical-edit-windows-list
9830
10517
@item ecb-compile-window-live-p
 
10518
@item ecb-compile-window-state
9831
10519
@item ecb-do-if-buffer-visible-in-ecb-frame
9832
10520
@item ecb-get-current-visible-ecb-buffers
9833
10521
@item ecb-layout-define
9902
10590
other packages and how to solve them - in most cases ECB already
9903
10591
contains a suitable workaround.
9904
10592
 
9905
 
But in front of this ``know-conflicts-and-solutions-list'' a general
9906
 
recipe is given what you can do when you have detected a conflict
9907
 
between ECB and a package not listed in the know-conflicts-section.
9908
 
 
9909
 
@subsection What to do for unknown conflicts with other packages
9910
 
 
9911
 
As of version 2.20 the layout-engine of ECB is so flexible that
9912
 
normally there should be no conflicts with other packages unless these
9913
 
packages have their own complete window-layout-management (e.g. Gnus,
9914
 
BBDB, Xrefactory). But these packages can and should be handled very
9915
 
well with the window-manager-support of ECB (@pxref{Window-managers
9916
 
and ECB}).
9917
 
 
9918
 
So if you detect an unknown (i.e. not listed in the conflicts-list in
9919
 
the next subsection) conflict with a small package and some of its
9920
 
commands and you have installed an ECB-version < 2.20 the first task
9921
 
you have to do is to upgrade to a version >= 2.20!
9922
 
 
9923
 
If this doesn't solve the problem a very probable reason for the
9924
 
conflict is that the command fails if called from another window than
9925
 
an edit-window of the ecb-frame. So please check if the problem
9926
 
disappears if you call the failing command from an edit-window of ECB.
9927
 
If this is true then you you can add the following code to your
9928
 
.emacs (and of course replace the XXX with the failing command):
9929
 
 
9930
 
@example
9931
 
@group
9932
 
(defadvice XXX (before ecb activate)
9933
 
  "Ensures `XXX' works well when called from another window
9934
 
as an edit-window. Does nothing if called in another frame
9935
 
as the `ecb-frame'."
9936
 
  (when (equal (selected-frame) ecb-frame)
9937
 
    (unless (ecb-point-in-edit-window)
9938
 
      (ecb-select-edit-window))))
9939
 
@end group
9940
 
@end example
9941
 
 
9942
 
This before-advice runs before the command XXX and ensures that the
9943
 
XXX is called from within an edit-window if the current selected
9944
 
window is not an edit-window. It does nothing if called for another
9945
 
frame as the ecb-frame.
9946
 
 
9947
 
If such an advice solves the problem then please send a not with the
9948
 
solution to the ECB-mailing-list or direct to the ECB-maintainer so
9949
 
the solution can be integrated in the next ECB-release
9950
 
 
9951
 
If calling from an edit-window fails too then please file a complete
9952
 
bug-report to the ECB-mailing-list (@pxref{Submitting problem
9953
 
report}). This report should contain a detailed description which
9954
 
command of which package fails under which circumstances!
9955
 
 
9956
 
@subsection Known conflicts and proper solutions/work-arounds
9957
 
 
9958
 
Here is a list of known conflicts of ECB with other packages and
9959
 
helpful solutions/hints/workarounds:
 
10593
That is followed by a general recipe what you can do when you have
 
10594
detected a conflict between ECB and a package is not listed in the
 
10595
know-conflicts-section.
 
10596
 
 
10597
@subsection Proved workarounds or recommendations for other packages
 
10598
 
 
10599
Here is a list of packages which are proved to work properly with ECB
 
10600
and if not (i.e. there are conflicts) then helpful
 
10601
solutions/hints/workarounds are offered:
9960
10602
 
9961
10603
@subsubsection Package avoid.el
9962
10604
 
9991
10633
ECB}). With such a window-manager ECB and BBDB should work together
9992
10634
very well under all circumstances!
9993
10635
 
9994
 
@subsubsection Package calculator.el
9995
 
 
9996
 
@cindex calculator package
9997
 
The following is only for ECB-versions < 2.20. From beginning with
9998
 
version 2.20 there are no conflicts with the package calculator.el!
9999
 
 
10000
 
If the edit-window is already splitted then calling @code{calculator} uses
10001
 
the whole ``other'' edit-window for the calculator. With an unsplitted
10002
 
edit-window the calculator window has it�s normal size of about 2
10003
 
lines. Therefore it�s recommended to set @code{calculator-electric-mode}
10004
 
during ECB activation to not nil so calculator uses always the
10005
 
echo-area instead of creating a new small window!
10006
 
 
10007
10636
@subsubsection Package calendar.el
10008
10637
 
10009
10638
@cindex calendar package
10059
10688
@end group
10060
10689
@end example
10061
10690
 
 
10691
@subsubsection Package desktop.el
 
10692
 
 
10693
@cindex desktop
 
10694
ECB works perfectly with the desktop-saver desktop.el. But to ensure
 
10695
this the option @code{desktop-minor-mode-table} @strong{MUST} contain
 
10696
the following entry:
 
10697
 
 
10698
@example
 
10699
(ecb-minor-mode nil)
 
10700
@end example
 
10701
 
 
10702
Without this entry desktop.el tries for each buffer it loads after
 
10703
Emacs-start to enable @code{ecb-minor-mode} and therefore to start
 
10704
ECB. This conflicts with ECB! Therefore you must add the entry above
 
10705
to @code{desktop-minor-mode-table}!
 
10706
 
 
10707
Further it is strongly recommended to add entries for all the
 
10708
minor-mode of the semantic-package to @code{desktop-minor-mode-table},
 
10709
so for example add also:
 
10710
 
 
10711
@example
 
10712
@group
 
10713
(semantic-show-unmatched-syntax-mode nil)
 
10714
(semantic-stickyfunc-mode nil)
 
10715
(senator-minor-mode nil)
 
10716
(semantic-idle-scheduler-mode nil)
 
10717
@end group
 
10718
@end example
 
10719
 
 
10720
Which modes you have to add depends on which modes of semantic you
 
10721
use. But to get sure you should add all minor-modes of the
 
10722
semantic-package because these modes are normally activated by the
 
10723
related ``global'' command (e.g.
 
10724
@code{global-semantic-show-unmatched-syntax-mode}) or by adding the
 
10725
minor-mode to the related major-mode-hook.
 
10726
 
 
10727
It has also been reported that just disabling the Tip-Of-The-Day
 
10728
(option: @code{ecb-tip-of-the-day}) fixes the compatibility-problems
 
10729
with desktop.el. Just try it out!
 
10730
 
10062
10731
@subsubsection Package edebug (Lisp Debugger)
10063
10732
 
10064
10733
@cindex edebug
10078
10747
reactivate it later then it is recommended to exit ECB first
10079
10748
(@code{ecb-deactivate} or @code{ecb-minor-mode})!
10080
10749
 
10081
 
@subsubsection Package escreen.el
10082
 
 
10083
 
Beginning with version 1.96 ECB supports the window-manager
10084
 
escreen.el. See @ref{Window-managers and ECB}.
10085
 
 
10086
10750
@subsubsection Package follow-mouse.el
10087
10751
 
10088
10752
@noindent
10098
10762
mechanism than follow-mouse the follow-mouse stuff profit from ECB and
10099
10763
works even better and saver as without activated ECB!
10100
10764
 
 
10765
@subsubsection Package func-menu.el
 
10766
 
 
10767
@cindex func-menu package
 
10768
This package has been reported to produce some conflicts under some
 
10769
circumstances when ECB is activated. Some of them could be reproduced
 
10770
by the ECB-maintainer. So the recommendation is to disable
 
10771
func-menu-support when using ECB. Normally using func-menu makes no
 
10772
sense in combination with ECB because ECB provides the same and even
 
10773
more informations as func-menu - so func-menu is redundant ;-)
 
10774
 
10101
10775
@subsubsection Package Gnus (Newsreader)
10102
10776
 
10103
10777
@cindex Gnus
10142
10816
other window just this selected window is scrolled. This is the only
10143
10817
senseful behavior of @code{scroll-all-mode} with ECB.
10144
10818
 
10145
 
@subsubsection Package tmm.el (Text mode menu)
10146
 
 
10147
 
@cindex tmm-menubar
10148
 
@cindex tmm
10149
 
In general this library does not work perfectly with ECB. Beginning
10150
 
with version 1.95.2 ECB autom. ensures that every code which uses
10151
 
@code{tmm-prompt} (e.g. @code{tmm-menubar}) works.
10152
 
 
10153
10819
@subsubsection Package VC (Version Control)
10154
10820
 
10155
10821
@cindex VC package
10179
10845
@code{winner-mode}! But @code{winner-mode} makes also not really sense
10180
10846
with ECB.
10181
10847
 
10182
 
@subsubsection Package winring.el
10183
 
 
10184
 
Beginning with version 1.96 ECB supports the window-manager
10185
 
winring.el. See @ref{Window-managers and ECB}.
 
10848
@subsubsection Package wb-line-number.el
 
10849
@cindex wb-line-number
 
10850
 
 
10851
Do not use the package wb-line-number.el in combination with ECB - it
 
10852
will not work and it will not work under any circumstances and there
 
10853
is no way to make it work together and there will be no way in the
 
10854
future!
 
10855
 
 
10856
The reason behind that is: wb-line-number.el uses additional dedicated
 
10857
windows to display the line-numbers. And ECB can not work if there
 
10858
there are additional dedicated windows - additional to that ones
 
10859
created by ECB.
10186
10860
 
10187
10861
@subsubsection Application xrefactory
10188
10862
 
10204
10878
then use different escreens or window-configurations for ECB and
10205
10879
Xrefactory-browsing - @ref{Window-managers and ECB}).
10206
10880
 
 
10881
@subsection What to do for unknown conflicts with other packages
 
10882
 
 
10883
As of version 2.20 the layout-engine of ECB is so flexible that
 
10884
normally there should be no conflicts with other packages unless these
 
10885
packages have their own complete window-layout-management (e.g. Gnus,
 
10886
BBDB, Xrefactory). But these packages can and should be handled very
 
10887
well with the window-manager-support of ECB (@pxref{Window-managers
 
10888
and ECB}).
 
10889
 
 
10890
So if you detect an unknown (i.e. not listed in the conflicts-list in
 
10891
the next subsection) conflict with a small package and some of its
 
10892
commands and you have installed an ECB-version < 2.20 the first task
 
10893
you have to do is to upgrade to a version >= 2.20!
 
10894
 
 
10895
If this doesn't solve the problem a very probable reason for the
 
10896
conflict is that the command fails if called from another window than
 
10897
an edit-window of the ecb-frame. So please check if the problem
 
10898
disappears if you call the failing command from an edit-window of ECB.
 
10899
If this is true then you you can add the following code to your
 
10900
.emacs (and of course replace the XXX with the failing command):
 
10901
 
 
10902
@example
 
10903
@group
 
10904
(defadvice XXX (before ecb activate)
 
10905
  "Ensures `XXX' works well when called from another window
 
10906
as an edit-window. Does nothing if called in another frame
 
10907
as the `ecb-frame'."
 
10908
  (when (equal (selected-frame) ecb-frame)
 
10909
    (unless (ecb-point-in-edit-window)
 
10910
      (ecb-select-edit-window))))
 
10911
@end group
 
10912
@end example
 
10913
 
 
10914
This before-advice runs before the command XXX and ensures that the
 
10915
XXX is called from within an edit-window if the current selected
 
10916
window is not an edit-window. It does nothing if called for another
 
10917
frame as the ecb-frame.
 
10918
 
 
10919
If such an advice solves the problem then please send a not with the
 
10920
solution to the ECB-mailing-list or direct to the ECB-maintainer so
 
10921
the solution can be integrated in the next ECB-release
 
10922
 
 
10923
If calling from an edit-window fails too then please file a complete
 
10924
bug-report to the ECB-mailing-list (@pxref{Submitting problem
 
10925
report}). This report should contain a detailed description which
 
10926
command of which package fails under which circumstances!
 
10927
 
 
10928
 
10207
10929
@node Bugs, , Conflicts, Conflicts and bugs
10208
10930
@section Known bugs
10209
10931
 
10720
11442
@tab @tab
10721
11443
Yes, see @ref{The other window}.
10722
11444
 
 
11445
@item @tab @tab
 
11446
 
 
11447
@item
 
11448
Can i increase the allowed depth of nested submenus.
 
11449
@tab @tab
 
11450
Yes, see the docstring of the option
 
11451
@code{ecb-directories-menu-user-extension}.
 
11452
 
 
11453
@item @tab @tab
 
11454
 
 
11455
@item
 
11456
Can i apply some filters to the Tree-buffers.
 
11457
@tab @tab
 
11458
Yes, see @ref{Filtering the tree-buffers}
 
11459
 
 
11460
@item @tab @tab
 
11461
 
 
11462
@item
 
11463
With XEmacs i get sometimes an error ``Wrong number of arguments:
 
11464
widen (1)''. What can i do?
 
11465
@tab @tab
 
11466
Disable the func-menu support in your XEmacs-setup. See
 
11467
@ref{Conflicts}.
 
11468
 
 
11469
@item @tab @tab
 
11470
 
 
11471
@item
 
11472
Can i use desktop.el in combination with ECB?
 
11473
@tab @tab
 
11474
Yes, see @ref{Conflicts}.
 
11475
 
 
11476
@item @tab @tab
 
11477
 
 
11478
@item
 
11479
Opening directories takes a long time - what can i do?
 
11480
@tab @tab
 
11481
Read @ref{Large directories} and/or set the option
 
11482
@code{ecb-prescan-directories-for-emptyness} to nil.
 
11483
 
10723
11484
@end multitable
10724
11485
 
10725
11486