ECB 2.22 is released!
What's new in the new release:
------------------------------
* Changes for ECB version 2.22
** New nifty feature for filtering the tags displayed in the Methods-buffer
You can filter by regexp, protection, tag-class etc. See the new command
`ecb-methods-filter' (bound to [C-c . f m] and the new option
`ecb-methods-filter-replace-existing' for getting all details.
Filters can be layered filters, i.e. you can apply filters on top of
already applied filters: An example of 3 combined filters would be: Display
only all public methods having the string "test" in its name. The modeline
of the Methods-buffer always displays the topmost filter. But you can see
all currently applied filters by moving the mouse over this section of the
modeline: The filters will be displayed as help-echo.
The new functionality is also completely available via the popup-menu of
the Methods-buffer.
Currently tags of class 'type can not be filtered out, because especially
in OO-languages like Java or C++ this makes only less sense because if the
class is filtered out then no filter can be applied to its members like
methods or attributes.
These tag-filters can also applied to sources which are not supported by
the semantic-parser but "only" by imenu or etags. But because for these
sources not all information are avaiable the protection- and tag-class
filter can not used with such "non-semantic"-sources.
** All tree-buffer filters are now guarded against filtering out all tags.
Each filter which a user can apply to the sources-, methods- or
history-buffer is now guarded against filtering out all nodes by accident,
ie. if a filter would empty the whole tree-buffer then this filter will be
autom. unwinded.
** Much smarter mechanism to highlight the current tag in the methods-buffer.
Previous versions of ECB have always fully expanded the whole tree in the
Methods-buffer if the current tag in the source-buffer was not visible in
the current tree - e.g. because the variables-bucket was collapsed or the
containing type of a tag (e.g. the class of a method) was collapsed. So in
most cases much more was expanded as needed to make the current tag
visible.
The mechanism of ECB 2.22 only expands the needed parts of the tree-buffer
to make the related node visible: First we try to highlight the current tag
with current expansion-state of the Methods-buffer. If the node is not
visible so the tag can not be highlighted then we go upstairs the ladder of
type-tags the current tag belongs to (e.g. we expand successive the nodes
of the whole class-hierachy of the current method-tag until the related
node becomes visible). If there is no containing type for the current tag
then the node of the tag is probably contained in a toplevel-bucket which
is currently collapsed; in this case we expand only this bucket-node and
try highlighting again. Only if this has still no success then we expand
the full tree-buffer and try to highlight the current tag.
There is also a new option `ecb-auto-expand-tag-tree-collapse-other': If
this option is set then auto. expanding the tag-tree collapses all not
related nodes. This means that all nodes which have no relevance for the
currently highlighted node will be collapsed, because they are not
necessary to make the highlighted node visible. This feature is switched
off by default because if always collapses the complete Methods-tree before
the the following highlighting of the node for the current tag expands the
needed parts of the tree-buffer.
** The popup-menus can now be nested into 4 levels of submenus. In general there
could be an infinite depth of nesting but it makes no sense - if possible
at all - to define infinite nested defcustom-types. So there is a limit of
4 levels until a user asks for more - then this wish can be satisfied
during 1 minute: Just increase the value of the `ecb-max-submenu-depth'
before loading ECB. This enhancement affects the four options with name
`ecb-*-menu-user-extension'.
** The indication for ECB in the minor-mode is now hidden when the ECB-windows
are visible because in this case the activity of ECB is quite obvious. When
the ECB-windows are hidden the the value of `ecb-minor-mode-text' is
displayed in the modeline.
** Compatibility enhancements
*** Cause of the fixed bugs the compatibility for `bs-show' has increased when
the buffer-selection should be displayed in the permanent compile-window.
** Fixed Bugs
*** Fixed a bug preventing the native Windows-port of XEmacs from working.
*** Makes the behavior of adviced `display-buffer' fully compatible to the
original version for all buffers which are neither ecb-tree-buffer nor
compilation-buffers in the sense of `ecb-compilation-buffer-p'. These
"source-buffers" are now also handled correctly in all situations.
*** Fixed a small bug in `ecb-toggle-compile-window-height'. This bug has
influenced the behavior of `display-buffer' when called from programs for
"compilation-buffers".
*** Fixed a bug related to the speedbar-integration.
This bug complained "Can not switch buffer in dedicated window" when the
intergrated speedbar-buffer was selected and the user tries to open a file
or to jump to a tag.
*** Fixed a bug for the special ECB-modeline-menu for the XEmacs-modelines.
Now only in the special ECB-tree-buffer a special ECB-modeline-menu is
bound to mouse-3, all other buffers display the standard modeline-menu of
XEmacs.
*** Fixed a bug which occurs with XEmacs in combination with func-menu.
But there are still some incompatibilities between ECB and func-menu. So
the recommendation is to disable func-menu-support when using ECB.
Normally using func-menu makes no sense in combination with ECB because
ECB provides the same and even more informations as func-menu - so
func-menu is redundant ;-)
How to get it:
--------------
Sorry, it's too big to post the sources here...
If you are using ECB >= 1.80 then you can just call "M-x ecb-download-ecb" if
you are online. ECB will then download autom. latest and newest ECB and
install it for you.
Or go to the homepage at http://ecb.sourceforge.net and download it from
there.
General description of ECB:
---------------------------
ECB stands for "Emacs Code Browser". While Emacs already has good
*editing* support for many modes, its *browsing* support is somewhat
lacking. That's where ECB comes in: it displays a number of informational
windows that allow for easy source code navigation and overview.
The informational windows can contain:
- A directory tree,
- a list of source files in the current directory,
- a list of functions/classes/methods/... in the current file, (ECB uses the
Semantic Bovinator, or Imenu, or etags, for getting this list so all
languages supported by any of these tools are automatically supported by
ECB too)
- a history of recently visited files,
- the Speedbar and
- output from compilation (the "*compilation*" window) and other modes like
help, grep etc. or whatever a user defines to be displayed in this window.
As an added bonus, ECB makes sure to keep these informational windows visible,
even when you use C-x 1 and similar commands.
It goes without saying that you can configure the layout, ie which
informational windows should be displayed where. ECB comes with a number of
ready-made window layouts to choose from.
Here is an ascii-screenshot of what ECB offers you:
------------------------------------------------------------------
| | |
| Directories | |
| | |
|--------------| |
| | |
| Sources | |
| | |
|--------------| Edit-area |
| | (can be splitted in several edit-windows) |
| Methods/Vars | |
| | |
|--------------| |
| | |
| History | |
| | |
------------------------------------------------------------------
| |
| Compilation-window (optional) |
| |
------------------------------------------------------------------
For more details go to http://ecb.sourceforge.net/
Enjoy,
Klaus
Klaus Berndl mailto: [EMAIL PROTECTED]
sd&m AG http://www.sdm.de
software design & management
Carl-Wery-Str. 42, 81739 Muenchen, Germany
Tel +49 89 63812-392, Fax -220