Home - ecb-home/ecb GitHub Wiki

About

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 (with full support and display of the VC-state)
  • A list of functions/classes/methods/etc. in the current file. (ECB uses CEDET-semantic, Imenu or tags for getting this list so all languages supported by any of these tools is automatically supported by ECB too)
  • A history of recently visited files (group able by several criteria)
  • A direct and auto-updated eco-window for semantic-analyzer for context analysis of source code
  • Speedbar support for conveniently navigating or operating on another frame
  • A compilation window used for compilation and the use of other command-line utilities such as help, grep, etc.

As an added bonus, ECB makes sure to keep these informational windows visible, even when you use C-x 1 and similar commands.

While ECB comes with a number of ready-made window layouts to choose from, the window layout is configurable to your desires.

News

ECB 2.50 released! (2015-01-19)

This release includes various fixes and updates including:

  • By default now uses integrated CEDET in Emacs
  • Better compatibility with Emacs 24.4
  • Includes new Makefile layout thanks to Alex Ott
  • Includes a number of bug fixes thanks to Alex Ott

ECB 2.40.1 released! (2014-03-01)

  • Better compatibility with forthcoming Gnu Emacs 23.2

  • Works out of the box with the Emacs-integrated CEDET-suite

    If Emacs >= 23.2 is used then CEDET is already integrated into Emacs and ECB can be used out of the box without further requirements.

    PLEASE NOTE: If ECB detects an author version of CEDET (as available at `http://cedet.sourceforge.net') then ECB will ALWAYS try to use that one even if you use Emacs >= 23.2! This is for users who want to use latest Emacs >= 23.2 but still prefer using the latest author version of CEDET instead of the Emacs-integrated one.

    So if you want to use the Emacs-integrated CEDET-suite you have to ensure that no author-version of CEDET is in the `load-path'! This means that the library cedet.el of the author-version MUST NOT be loaded into Emacs (as described in the file INSTALL of CEDET)! This is a valid check: (locate-library "semantic-ctxt") must return nil!

    Details about the Requirements of ECB are available in the README.

  • The special symboldef ECB-window is now stable and ready for usage

  • TODO description what is new

  • ECB now uses the partial reparse feature of semantic

    The main effect a user will notice is that edit actions which trigger just a partial reparse will just update the related node in the methods-window and not the whole methods-window. One of the main advantages is that this preserves the expand/collapse state of the methods-window.

    Editing examples which trigger only a partial reparse:

    • editing a function- or methodbody
    • changing the name of a variable or function/method
    • modifying the return-type of a function/method
    • and some other...

    In these cases only the related node in the methods-window will change nothing else, ie. the expand/collapse-states of all other nodes in the methods-window will not be changed.

  • ECB eliminates duplicates in the directories-buffer

    There can be duplicates either .... TODO description

  • New default-value for `ecb-auto-update-methods-after-save': nil

    Switching off this by default makes sense because now ECB uses the idle-scheduler of semantic (if it is switched on but this is at least very recommended) and therefore the methods-buffer will be up-to-date most of the time. Therefore updating it after saving makes not much sense. In addition this auto update is always a full-fetch for the tags which does not preserve the expand/collapse-state of the methods-window whereas a partial reparse does (s.a.).

  • The contents of the methods-window are updated even if currently hidden

    If at least the current ecb-window-layout contains a methods-window then the contents will be autom-updated even if the methods-window is currently invisible (e.g. because the ecb-windows are all hidden or another ecb-window is currently maximized. But the updates takes only place if the semantic idle scheduler is active (see instructions in the manuals of ECB and/or cedet).

    The advantage of this new behavior is that now editing changes done with invisible methods-window will be reflected immediately after showing the methods-window (e.g. by unhiding the ecb-windows via the command `ecb-toggle-ecb-windows' - bound to [C-c . l w]).

  • New support for Bazaar as version-control system If Bazaar is supported by VC (means vc-bzr.el is distributed with Emacs) then ECB supports it out of the box.

  • New default value of the option `ecb-history-make-buckets'

    This option offers now an additional choice 'directory-with-source-path: This substituts the best (= deepest) matching source-path of the directory-window in the directory-bucket with the alias of this matching source-path (if an alias is set in the option ecb-source-path'). A new face is used for this: ecb-history-bucket-node-dir-soure-path-face'.

  • defecb-window-dedicator-to-ecb-buffer' replaces defecb-window-dedicator'

    This is only relevant for people who program own special ecb-windows.

  • Fixed Bugs

  • Command `delete-windows-on' has only deleted one window Now this command works also with ECB as expected.

  • Fixed a bug which prevents the ecb-windows from being vertically resizeable This bug occured only when using Gnu Emacs.

  • Fixed a bug concerning horizontal mouse-scrolling of ecb-windows via modeline-click when the ecb-window was not the selected window. This bug occured only when using Gnu Emacs.

  • Fixed a bug which prevented `ecb-type-tag-display' from taking effect.

  • Killing a buffer failed when history-window is not visible Killing a buffer failed in case the history buffer is not visible (e.g. when currently a layout without a history buffer is used or when another buffer is maximized and the history buffer thus hidden). This is fixed now.

  • All compile-modes (e.g. compile, grep etc.) failed in XEmacs This came from a bug introduced in 2.40 but it is fixed now.

ECB 2.40 released! (2009-05-16)

ECB now requires full CEDET being installed (at least 1.0pre6). ECB has now more user-responsible buffer-parsing based on the idle-mechanism of semantic. In addition it fully supports current semantic-analyzer for intellisense and type-finding. ECB is more stable and now fully compatible with Emacs 22 and 23 and also mostly with XEmacs. ECB is able to work with indirect buffers if the base-buffer is filebased. It has a complete reworked history-buffer which can be bucketized and shows dead- and indirect-buffers in different faces. It has new support for Git and Monotone as version-control systems. In addition a lot of bugs are fixed.

ECB 2.32 released! (2005-07-11)

ECB offers now two new interactors (special ecb-windows): One for the semantic-analyser (of cedet) and one for displaying the definition of current symbol at point. In addition the up- and down-arrow-keys are also smart in the tree-buffers. Much better maximizing and minimizing of the ecb-windows. Support for (X)Emacs < 21 has been officialy removed. Full documentation of the library tree-buffer.el. Some important bug-fixes.

ECB 2.31 released! (2004-12-10)

This is mostly a bug-fix-release for native Windows-XEmacs. In addition beta-code for Clearcase-support has been added. It's strongly recommended to install this release when using native Window-Emacs!