Node:ecb-directories, Next:, Previous:ecb-general, Up:Customizable options

Group ecb-directories

This group contains the following options:

add-path-for-not-matching-files User Option
Add path of a file to ecb-source-path if not already contained. This is done during the auto. windows synchronization which happens if a file is opened not via the file/directory-browser of ECB. In such a situation ECB adds the path of the new file auto. to ecb-source-path at least temporally for the current Emacs session. This option defines two things:

  1. Should only the root-part (which means for Unix-like systems always '/' and for windows-like systems the drive) of the new file be added as source-path to ecb-source-path or the whole directory-part?
  2. Should this path be added for future sessions too?

The value of this option is a cons-cell where the car is a boolean for 1. and the cdr is a boolean for 2.

A value of not nil for the car (1.) is reasonably if a user often opens files not via the ECB-browser which are not located in any of the paths of ecb-source-path because then only one path for each drive (windows) or the root-path (Unix) is added to the directory buffer of ECB.

auto-expand-directory-tree User Option
Automatically expand the directory tree to the current source file. There are three options:
  • best: Expand the best-matching source-path
  • first: Expand the first matching source-path
  • nil: Do not automatically expand the directory tree.

cache-directory-contents User Option
Cache contents of directories.

This can be useful if ecb-source-path contains directories with many files and subdirs, especially if these directories are mounted net-drives ("many" means here something > 1000, dependent of the speed of the net-connection and the machine). For these directories actualizing the sources- and/or directories- buffer of ECB (if displayed in current layout!) can slow down dramatically so a caching increases speed a lot.

The value of this option is a list where each element is a cons-cell and looks like:

  (<dir-regexp> . <filenumber threshold>) with
Regular expression a directory must match to be cached.
<filenumber threshold>:
Number of directory contents must exceed this number.

A directory will we only be cached if and only if the directory-name matches one rexexp of this option and its content-number exceeds the related threshold.

The cache entry for a certain directory will be refreshed and actualized only by using the POWER-click (see ecb-primary-secondary-mouse-buttons) in the directories-buffer of ECB (see Using the mouse).


A value of ("~/bigdir*" . 1000) means the contents of every subdirectory of the home-directory will be cached if the directory contains more than 1000 entries and its name begins with "bigdir".

A value of (".*" . 1000) caches every directory which has more than 1000 entries.

A value of (".*" . 0) caches every directory regardless of the number of entries."

directories-buffer-after-create-hook User Option
Local hook running after the creation of the directories-buffer. Every function of this hook is called once without arguments direct after creating the directories-buffer of ECB and it's local key-map. So for example a function could be added which performs calls of local-set-key to define new keybindings only for the directories-buffer of ECB.

The following keys must not be rebind in the directories-buffer: F2, F3 and F4

directories-buffer-name User Option
Name of the ECB directory buffer. Because it is not a normal buffer for editing you should enclose the name with stars, e.g. " *ECB Directories*".

If it is necessary for you you can get emacs-lisp access to the buffer-object of the ECB-directory-buffer by this name, e.g. by a call of set-buffer.

Changes for this option at runtime will take affect only after deactivating and then activating ECB again!

directories-menu-sorter User Option
Function which re-sorts the menu-entries of the directories buffer.

If a function then this function is called to re-arrange the menu-entries of the combined menu-entries of the user-menu-extensions of ecb-directories-menu-user-extension and the built-in-menu ecb-directories-menu. If nil then no special sorting will be done and the user-extensions are placed in front of the built-in-entries.

The function get one argument, a list of menu-entries. For the format of this argument see ecb-directories-menu-user-extension. The function must return a new list in the same format. Of course this function can not only re-arrange the entries but also delete entries or add new entries.

directories-menu-user-extension User Option
User extensions for the popup-menu of the directories buffer.

Value is a list of elements of the following type: Each element defines a new menu-entry and is a list containing two sub-elements, whereas the first is the name of the menu-entry and the second the function (a function symbol or a lambda-expression) being called if the menu-entry is selected. If there is no second sub-element and the first one is the string "--" then a non-selectable menu-separator is displayed.

The function must follow the following guidelines: It takes one argument which is the tree-buffer-node of the selected node (means the node for which the popup-menu has been opened). With the function tree-node-get-data the related data of this node is accessible and returns in case of the directories buffer the directory for which the popup-menu has been opened. The function can do any arbitrary things with this directory.

Example for such a menu-function:

(defun ecb-my-special-dir-popup-function (node)
  (let ((node-data=dir (tree-node-get-data node)))
     (message "Dir under node: %s" node-data=dir)))

Per default the user-extensions are added at the beginning of the built-in menu-entries of ecb-directories-menu but the whole menu can be re-arranged with ecb-directories-menu-sorter.

If you change this option you have to restart ECB to take effect.

display-default-dir-after-start User Option
Automatically display current default-directory after activating ECB.

If a file-buffer is displayed in the edit-window then ECB synchronizes its tree-buffers to this file-buffer - at least if the option ecb-window-sync it not nil. So for this situation ecb-display-default-dir-after-start takes no effect but this option is for the case if no file-buffer is displayed in the edit-window after startup:

If true then ECB selects autom. the current default-directory after activation even if no file-buffer is displayed in the edit-window. This is useful if ECB is autom. activated after startup of Emacs and Emacs is started without a file-argument. So the directory from which the startup has performed is auto. selected in the ECB-directories buffer and the ECB-sources buffer displays the contents of this directory.

excluded-directories-regexp User Option
Directories that should not be included in the directories list. The value of this variable should be a regular expression.

grep-function User Option
Function used for performing a grep. The popup-menu of the tree-buffers "Directories", "Sources" and "History" offer to grep the "current" directory:
  • Directory-buffer: The grep is performed in the current popup-directory after clicking the right mouse-button onto a node.
  • Sources-buffer: The grep is performed in the current selected directory.
  • History-buffer: The grep is performed in the directory of the current popup-source after clicking the right mouse-button onto a node.

grep-find-function User Option
Function used for performing a recursive grep. For more Details see option `ecb-grep-function' and replace "grep" with "recursive grep".

show-sources-in-directories-buffer User Option
Show source files in directories buffer.

source-path User Option
Paths where to find code sources. Each path can have an optional alias that is used as it's display name. If no alias is set, the path is used as display name.

use-speedbar-instead-native-tree-buffer User Option
If true then uses speedbar for directories, sources or methods. This means that speedbar is integrated in the ECB-frame and is displayed in that window normally displaying the standard ECB-directories-buffer, ECB-sources-buffer or ECB-methods-buffer.

This option takes effect in all layouts which contain either a directory window, a sources window or a method window.

This option can have four valid values:

  • nil: Do not use speedbar (default)
  • dir: Use speedbar instead of the standard directories-buffer
  • source: Use speedbar instead of the standard sources-buffer
  • method: Use speedbar instead of the standard methods-buffer

Note: For directories and sources a similar effect and usability is available by setting this option to nil (or method) and setting ecb-show-sources-in-directories-buffer to not nil, because this combination displays also directories and sources in one window.

ecb-use-speedbar-instead-native-tree-buffer is for people who like the speedbar way handling directories and source-files or methods and want it in conjunction with ECB.