| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This chapter describes how to customize ECB for your personal taste. The first section introduces some general aspects (which you should really know!), the second one gives an overview of the most important options and the third one lists all options of ECB (divided into the customize groups).
| 5.1 General aspects for customizing ECB | ||
| 5.2 The most important options of ECB | Which option you must know | |
| 5.3 All customizable options of ECB |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This chapter contains all important informations you should know about
customizing ECB. The first section gives an answer to the question
"setq or customize" and the second section describes
what to do when you have to customize ECB for a lot of people.
| 5.1.1 Setq or customize - what should i use? | Should i use setq or customize? | |
| 5.1.2 Site-wide customizing of ECB |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
The best way to customize all the options of ECB is via the
customize-feature of (X)Emacs, i.e. means calling the commands
customize-option or customize-group etc. This is also
the strongly recommended way!
But of course you can also use setq or some Elisp-code to
change the values of many but not all of the options. The values of
the following options MUST NOT be changed via setq or
Elisp-code but only with the customize-feature!
ecb-advice-window-functions
ecb-bucket-node-display
ecb-compile-window-height
ecb-compile-window-temporally-enlarge
ecb-compile-window-width
ecb-exclude-parents-regexp
ecb-fix-window-size
ecb-font-lock-tags
ecb-highlight-tag-with-point-delay
ecb-key-map
ecb-layout-name
ecb-layout-window-sizes
ecb-mode-line-data
ecb-mode-line-display-window-number
ecb-mode-line-prefixes
ecb-show-node-info-in-minibuffer
ecb-show-tags
ecb-source-path
ecb-toggle-layout-sequence
ecb-tag-display-function
ecb-tree-RET-selects-edit-window
ecb-type-tag-display
ecb-type-tag-expansion
ecb-use-speedbar-instead-native-tree-buffer
ecb-window-sync-delay
ecb-windows-height
ecb-windows-width
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
If you are the administrator for an Emacs-site, means you are
responsible for the basic customization of a lot of Emacs users, then
you maybe need a way to customize Emacs and ECB without changing
everyones `.emacs'-file and normally you will do this with the
file `site-start.el'. You can customize all options of ECB in a
central `site-start.el' (even the options mentioned above!) but
you MUST NOT do this via setq but you have to use a
mechanism like the following(23)!
This section describes two methods how to pre-customize ECB site-wide. The elisp-code contained in the following two subsections has to be copied to the file `site-start.el' before it can be used.
But ensure for both methods that you customize the options with the correct lisp format. Read carefully the docstrings of the options you want to customize from within Elisp-code!
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
The mechanism described here defines all site-wide-settings in a file
`site-lisp.el' but stores the values in the users
custom-file which is probably `.emacs'!
First two helper functions are needed, namely
customize-option-get-value and
customize-save-variable-save whereas the latter one sets the
value for an option via the customize-mechanism (and is therefore
allowed for the setq-forbidden options!) but only if the option has no
saved value until now (i.e. the user has not saved this option for
future sessions until now)
(defun customize-option-get-value (option type)
"Return the value of a customizable option OPTION with TYPE, where TYPE
can either be 'standard-value \(the default-value of the defcustom) or
'saved-value \(the value stored durable by the user via customize)."
(let ((val (car (get option type))))
(cond ((not (listp val)) val)
((equal 'quote (car val)) (car (cdr val)))
(t (car val)))))
(defun customize-save-variable-save (option value &optional override)
"Calls `customize-save-variable' with OPTION and VALUE if OPTION is a
custom-type and if OPTION has no saved-value until now.
If OVERRIDE is a function or lambda-form then it is called with two arguments:
- OLD-SAVED-VAL: The saved value of OPTION
- NEW-VALUE: see argument VALUE.
OVERRIDE is only called if OPTION has already a saved-value. If OVERIDE
returns not nil then `customize-save-variable' is called for OPTION with VALUE
even if OPTION has no saved-value until now."
(and (get option 'custom-type)
(or (not (get option 'saved-value))
(and (functionp override)
(funcall override
(customize-option-get-value option 'saved-value)
value)))
(progn
(message "Overriding saved value for option %s with %s" option value)
(customize-save-variable option value))))
|
With customize-save-variable-save all ECB-options can be
site-wide pre-customized like follows:
(customize-save-variable-save 'ecb-show-tags
'((include collapsed nil)
(parent collapsed nil)
(type flattened nil)
(variable collapsed name)
(function flattened name)
(rule flattened name)
(section flattened nil)
(def collapsed name)
(t collapsed name)))
(customize-save-variable-save 'ecb-font-lock-tags t)
;; add here more options of ECB it you want
|
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
The mechanism above saves the pre-customized values always in the
users custom-file (probably `.emacs'). If this is not
preferred, then you can use the following mechanism but of course the
offered setq-save is only allowed for options which are not
setq-forbidden (see section 5.1.1 Setq or customize - what should i use?).
The mechanism below does not change the users custom-file. This
mechanism is needed especially if ECB should be autoloaded and all
site-wide settings should first loaded when ECB is activated by the
user. This can be achieved for example via(24):
(require 'ecb-autoloads)) (eval-after-load "ecb" '(require 'site-ecb)) |
In such a situation the whole custom-file of a user is mostly
loaded before ECB is activated and therefore before the
site-wide-settings are loaded. So the users own customizations are
loaded before the site-wide ones.
The setq-save-mechanism described below prevents the users own
customisations contained in his custom-file from being
overridden by the site-wide setq-settings. If setq would be
used for the site-wide settings then in an autoload-situation the
site-wide settings would override the users-settings and this should
not be done!
First two helper-macros are needed:
(defmacro custom-saved-p (option)
"Return only not nil if OPTION is a defcustom-option and has a
saved value. Option is a variable and is literal \(not evaluated)."
`(and (get (quote ,option) 'custom-type)
(get (quote ,option) 'saved-value)))
(defmacro setq-save (option value)
"Sets OPTION to VALUE if and only if OPTION is not already saved
by customize. Option is a variable and is literal \(not evaluated)."
`(and (not (custom-saved-p ,option))
(set (quote ,option) ,value)))
|
With setq-save all "not-setq-forbidden"-ECB-options can be
site-wide pre-customized like follows:
(setq-save ecb-tree-indent 4) (setq-save ecb-tree-expand-symbol-before t) (setq-save ecb-primary-secondary-mouse-buttons 'mouse-1--mouse-2) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Here are the most important options (it is recommended to check at
least the following options before working with ECB). You can
customize them via the customize-group "ecb-most-important" or via
the command ecb-customize-most-important.
ecb-source-path
ecb-show-help-format
ecb-auto-activate
ecb-major-modes-show-or-hide
ecb-winman-escreen-number
ecb-winman-winring-name
ecb-key-map
ecb-new-ecb-frame
ecb-primary-secondary-mouse-buttons
ecb-mouse-click-destination
ecb-tree-buffer-style
ecb-tree-expand-symbol-before
ecb-tree-indent
ecb-truncate-lines
ecb-source-file-regexps
ecb-show-node-info-in-minibuffer
ecb-layout-name
ecb-compile-window-height
ecb-compile-window-width
ecb-other-window-behavior
ecb-compilation-buffer-names
ecb-tag-display-function
ecb-type-tag-display
ecb-type-tag-expansion
ecb-show-tags
ecb-process-non-semantic-files
But to make ECB working best for you it is also recommended to have a look at 5.3 All customizable options of ECB!
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
All customization of ECB is divided into the following "customize groups". You can highly customize all the ECB behavior/layout so just go to these groups and you will see all well documented ECB-options.
Please note: All options in the following subsections are
listed without the prefix "ecb-" (e.g. the option
ecb-layout-name is listed with name "layout-name"). This has
been done for a better readable option index. See section Option Index.
| 5.3.1 Group ecb-general | General customizing ECB | |
| 5.3.2 Group ecb-tree-buffer | Customizing the general tree layout | |
| 5.3.3 Group ecb-directories | Customizing the ECB-directories-tree | |
| 5.3.4 Group ecb-sources | Customizing the ECB-sources-tree | |
| 5.3.5 Group ecb-methods | Customizing the ECB-methods-tree | |
| 5.3.6 Group ecb-history | Customizing the ECB-history-tree | |
| 5.3.7 Group ecb-layout | Customizing the ECB-layout | |
| 5.3.8 Group ecb-compilation | Customizing the compile-window | |
| 5.3.9 Group ecb-create-layout | Customizing options for creating layouts | |
| 5.3.10 Group ecb-face-options | Customizing options for faces | |
| 5.3.11 Group ecb-faces | Customizing the faces | |
| 5.3.12 Group ecb-download | Customizing how to download ECB | |
| 5.3.13 Group ecb-help | Customizing the online help of ECB | |
| 5.3.14 Group ecb-eshell | Customizing the eshell-integration | |
| 5.3.15 Group ecb-speedbar | Customizing the speedbar-integration | |
| 5.3.16 Group ecb-non-semantic | Customizing parsing non-semantic sources | |
| 5.3.17 Group ecb-winman | Customizing window-manager support | |
| 5.3.18 Group ecb-mode-line | Customizing the tree-buffer-modelines | |
| 5.3.19 Group ecb-version-control | Customizing the version-control-support |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This group contains general settings for the Emacs code browser:
ecb-activate. This hooks are run after all the internal setup
process but directly before(!) drawing the layout specified in
ecb-layout (means before dividing the frame into several
windows).
A senseful using of this hook can be maximizing the Emacs-frame for
example, because this should be done before the layout is drawn
because ECB computes the size of the ECB-windows with the current
frame size! If you need a hook-option for the real end of the
activating process (i.e. after the layout-drawing) look at
ecb-activate-hook.
IMPORTANT: The difference between this hook and
ecb-redraw-layout-before-hook is that the latter one is
evaluated always before the layout is redrawn (for example after
calling ecb-redraw-layout) whereas the former one (this hook)
is only evaluated exactly once during the activation-process of ECB.
So during the activation process there is the following sequence of
hooks:
ecb-activate-before-layout-draw-hook \(this one)
ecb-redraw-layout-before-hook
ecb-redraw-layout-after-hook
ecb-activate-hook
ecb-activate. This
hooks are run at the real end of the activating process, means after
the layout has been drawn!. If you need hooks which are run direct
before the layout-drawing look at
ecb-activate-before-layout-draw-hook.
ecb-frame.
ecb-activate.
ecb-upgrade-options and
ecb-display-upgraded-options. If this option is off then the
user can perform the check and reset manually with
ecb-upgrade-options.
See section 7.2 Automatic upgrading of options.
ecb-activate. These hooks run before any other tasks of
the activating process are performed. If any of these hooks returns
nil then ECB will not be activated!
This can be used to check some conditions and then only start ECB if
all conditions are true. For example a function could be added which
returns only nil if Gnus is running. Then calling ecb-activate
or ecb-minor-mode will only start ECB if Gnus is not already
running.
ecb-deactivate. These hooks run before any other tasks of the
deactivating process are performed. If any of these hooks returns nil
then ECB will not be deactivated! See also
ecb-before-activate-hook.
This option defines how bucket-node should be displayed. The name of the bucket-node is computed by ECB but you can define a prefix, a suffix and a special face for the bucket-node
The default are empty prefix/suffix-strings and
ecb-bucket-node-face. But an alternative can be for example
'("[" "]" nil) which means no special face and a display like
"[+] [<bucket-name>]".
ecb-cache-directory-contents and
ecb-cache-directory-contents-not) for semantic-tags and for
the history-filter.
This caches are completely clean at load-time of the ECB-library!
Default is nil, because is makes sense not to clear these caches at start-time because ECB is often deacticated temporally especially in combination with window-managers like escreen.el. In these situations the internal state of ECB should be preserved for next activation.
ecb-current-buffer-sync.
See documentation of ecb-current-buffer-sync for conditions when
synchronization takes place and so in turn these hooks are evaluated.
Precondition for such a hook: Current buffer is the buffer of the current selected edit-window.
Postcondition for such a hook: Point must stay in the same edit-window as before evaluating the hook.
Important note: If ecb-window-sync is not nil
ecb-current-buffer-sync is running either every time Emacs is
idle or even after every command (see ecb-window-sync-delay).
So these hooks can be really called very often! Therefore each
function of this hook should/must check in an efficient way at
beginning if its task have to be really performed and then do them
only if really necessary! Otherwise performance of Emacs could slow
down dramatically!
It is strongly recommended that each function added to this hook uses
the macro ecb-do-if-buffer-visible-in-ecb-frame at beginning!
See ecb-speedbar-current-buffer-sync and
ecb-eshell-current-buffer-sync for examples how to use this
macro!
ecb-deactivate.
ecb-submit-problem-report) after getting the
error again!
'(<common-prefix-flag> <keysequence> <function>) where |
<common-prefix-flag>
<keysequence>
<function>:
It is highly recommended to use one of the standard keys C-c or C-x as first key of your common-prefix-key!
You MUST change this option via customize to take effect!
All keysequences must be inserted as a string and must follow the
syntax needed by read-kbd-macro or kbd. This means you
can insert the key in the same manner C-h k displays keysequences.
Here is the summary of the syntax:
Text is divided into "words" separated by whitespace. Except for the words described below, the characters of each word go directly as characters of the keysequence. The whitespace that separates words is ignored. Whitespace in the macro must be written explicitly, as in C-c SPC.
^ notation for control characters also works: ^M = C-m.
Because for ECB it is quite obvious if it is active or not when the ECB-windows are visible this text is only display in the modeline if the ECB-windows are hidden.
ecb-primary-secondary-mouse-buttons) onto a node. There
are two possible choices:
left-top:
Does the "right" action always in the left/topmost edit-window.
last-point:
Does the "right" action always in that edit-window which had the point
before.
If the edit-area is not splitted this setting doesn't matter.
A click with the secondary mouse-button (see again
ecb-primary-secondary-mouse-buttons does the "right" action
always in another edit-window related to the setting in this option:
If there are two edit-windows then the "other" edit-window is used
and for more than 2 edit-windows the "next" edit-window is used
(whereas the next edit-window of the last edit-window is the first
edit-window).
Note: If the tree-buffers are used with the keyboard instead with the mouse then this option takes effect too because RET is interpreted as primary mouse-button and C-RET as secondary mouse-button!
ecb-prescan-directories-for-emptyness for a description.
ecb-sources-perform-read-only-check.
ecb-vc-enable-support.
Here the interval is defined ECB has to be idle before starting with these stealthy tasks. It can be a floating-point value in seconds. The value can also be changed during running ECB.
It is strongly recommended to set this option to not nil!
always then the synchronization takes place always a buffer
changes in the edit window, if nil then never. If a list of
major-modes then only if the major-mode of the new buffer
belongs NOT to this list.
But in every case the synchronization takes only place if the
current-buffer in the current active edit-window has a relation to
files or directories. Examples for the former one are all
programming-language-modes, Info-mode too, an example for the
latter one is dired-mode. For all major-modes related to
non-file/directory-buffers like help-mode,
customize-mode and others never an autom. synchronization will
be done!
It's recommended to exclude at least Info-mode because it makes
no sense to synchronize the ECB-windows after calling the Info help.
Per default also dired-mode is excluded but it can also making
sense to synchronize the ECB-directories/sources windows with the
current directory in the dired-buffer.
IMPORTANT NOTE: Every time the synchronization is done the hook
ecb-current-buffer-sync-hook is evaluated.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This group contains general settings related to the tree-buffers of ECB:
local-set-key
to define new keybindings for EVERY tree-buffer.
The following keys must not be rebind in all tree-buffers:
C-t
ecb-mouse-click-destination.
ecb-mouse-click-destination.
A click with the primary mouse-button while the SHIFT-key is pressed called the POWER-click and does the following (depending on the ECB-buffer where the POWER-click occurs):
ecb-cache-directory-contents).
ecb-tag-visit-post-actions). This works only for semantic
supported sources but not for imenu- or etags-supported ones!
In addition always the whole node-name is displayed in the minibuffer after a POWER-click \(for this see also `ecb-show-node-info-in-minibuffer').
The secondary mouse-button is for opening (jumping to) the file in
another edit-window (see the documentation
ecb-mouse-click-destination).
The following combinations are possible:
Please note: If the tree-buffers are used with the keyboard instead with the mouse then RET is interpreted as primary mouse-button and C-RET as secondary mouse-button!
If you change this during ECB is activated you must deactivate and activate ECB again to take effect
For every tree-buffer you can define "when" node info should be displayed:
always:
Node info is displayed by moving with the mouse over a node.
if-too-long:
Node info is only displayed by moving with the mouse over a node does
not fit into the window-width of the tree-buffer window. In the ECB
directories buffer this means also if a node is shortened or if the
node has an alias (see ecb-source-path).
shift-click:
Node info is only displayed after a shift click with the primary mouse
button onto the node.
never:
Node info is never displayed.
For every tree-buffer you can define what info should be displayed:
name: Only the full node-name is displayed.
path: The full-path of the node is displayed.
name: Only the full node-name is displayed.
file-info: File infos for this file are displayed.
file-info-full: Fill infos incl. full path for this file are
displayed.
name: Only the full node name is displayed.
name+type: The full name + the type of the node (function, class,
variable) is displayed.
Do NOT set this option directly via setq but use always customize!
ecb-directories-buffer-name,
ecb-sources-buffer-name, ecb-methods-buffer-name or
ecb-history-buffer-name is contained in this list then hitting
RET in the associated tree-buffer selects as last action the right
edit-window otherwise only the right action is performed (opening a
new source, selecting a method etc.) but point stays in the
tree-buffer.
A special remark for the ecb-directories-buffer-name: Of course
here the edit-window is only selected if the name of the current
layout is contained in ecb-show-sources-in-directories-buffer
or if the value of ecb-show-sources-in-directories-buffer is
'always and the hitted node represents a sourcefile (otherwise this
would not make any sense)!
The setting in this option is only the default for each tree-buffer.
With ecb-toggle-RET-selects-edit-window the behavior of RET can
be changed fast and easy in a tree-buffer without customizing this
option, but of course not for future Emacs sessions!
Image-style (value image): Very nice and modern - just try it.
For this style the options ecb-tree-indent and
ecb-tree-expand-symbol-before have no effect! Note: GNU Emacs
<= 21.3.X for Windows does not support image-display so ECB uses
always 'ascii-guides even when here 'image is set!
Ascii-style with guide-lines (value ascii-guides):
[-] ECB
| [+] code-save
`- [-] ecb-images
| [-] directories
| | [-] height-15
| | | * close.xpm
| | | * empty.xpm
| | | * leaf.xpm
| | `- * open.xpm
| | [+] height-17
| | [+] height-19
| `- [+] height-21
| [x] history
| [x] methods
`- [x] sources
|
Ascii-style without guide-lines (value ascii-no-guides) - this
is the style used by ECB <= 1.96:
[-] ECB
[+] code-save
[-] ecb-images
[-] directories
[-] height-15
* close.xpm
* empty.xpm
* leaf.xpm
* open.xpm
[+] height-17
[+] height-19
[+] height-21
[x] history
[x] methods
[x] sources
|
With both ascii-styles the tree-layout can be affected with the
options ecb-tree-indent and
ecb-tree-expand-symbol-before.
GNU Emacs does not have hor. scroll-bars so especially with the mouse
it is quite impossible to scroll smoothly right and left. The
functions scroll-left and scroll-right can be annoying
and are also not bound to mouse-buttons.
If this option is a positive integer S then in all ECB-tree-buffers
the keys M-mouse-1 and M-mouse-3 are bound to scrolling
left rsp. right with scroll-step S - clicking with mouse-1 or
mouse-2 onto the edge of the modeline has the same effect, i.e.
if you click with mouse-1 onto the left (rsp right) edge of the
modeline you will scroll left (rsp. right).
Additionally C-M-mouse-1 and C-M-mouse-3 are bound to
scrolling left rsp. right with scroll-step window-width - 2.
Default is a scroll-step of 5. If the value is nil then no keys
for horizontal scrolling are bound.
[-] ECB
[+] code-save
[-] ecb-images
[-] directories
|
When located after then the tree looks like:
ECB [-]
code-save [+]
ecb-images [-]
directories [-]
|
The after-example above use a value of 2 for ecb-tree-indent
whereas the before-example uses a value of 4.
It is recommended to display the expand-symbol before because otherwise it could be that with a deep nested item-structure with and/or with long item-names (e.g. a deep directory-structure with some long subdirectory-names) the expand-symbol is not visible in the tree-buffer and the tree-buffer has to be horizontal scrolled to expand an item.
tree-buffer-tree-image-names. The name of an image-file must
be: "ecb-<NAME of TREE-BUFFER-TREE-IMAGE-NAMES>.<ALLOWED
EXTENSIONS>".
The directories of the element 2 - 5 are additional image-directories which are searched first for images needed for the respective tree-buffer. If the image can not be found in this directory then the default-directory (1. element) is searched. If the image can't even found there the related ascii-symbol is used.
All but the first element (the default directory) can be nil.
ECB comes with images in four diffenent heights - so for the most senseful font-heights of a tree-buffer a fitting image-size should be available. The images reside either in the subdirectory "ecb-images" of the ECB-installation or - if ECB is installed as regular XEmacs-package - in the ECB-etc data-directory.
button-press) or not until releasing the mouse-button (value:
button-release).
If you change this during ECB is activated you must deactivate and activate ECB again to take effect!
If this option is changed the new value takes first effect after deactivating ECB and then activating it again!
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This group contains settings for the directories-buffer in the ECB:
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:
ecb-source-path or the whole directory-part?
For remote-files (e.g. tramp, ange-ftp- or efs-files) the root-part is
the complete host-part + the root-dir at that host (example:
/berndl@ecb.sourceforge.net:/ would be the root-part of
/berndl@ecb.sourceforge.net:/tmp/test.txt).
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.
best: Expand the best-matching source-path
first: Expand the first matching source-path
nil: Do not automatically expand the directory tree.
switch-to-buffer or switch-to-buffer-other-window and
the directory of these filebuffers is different but only when
auto-synchronizing of the ECB-windows is on (see
ecb-window-sync). It runs not when switching between buffers
and the associated files reside in the same directory.
Each function added to this hook will be called with two arguments: The directory which was current _before_ the directory-change-trigger and the directory which was now the current (i.e. after the trigger).
Example: If you switch from a filebuffer "~/.emacs" to a filebuffer "/tmp/test.txt" then the functions of this hook will be called with the two arguments "~" and "/tmp".
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 > 500, dependent of the
speed of the net-connection and the machine). Or if it contains
remote-source-paths which means paths in the sense of tramp, ange-ftp
or efs. 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 |
<dir-regexp>:
<filenumber threshold>:
A directory will only be cached if and only if the directory-name
matches at least one rexexp of this option and its content-number
exceeds the related threshold AND the directory-name matches NOT any
regexp of ecb-cache-directory-contents-not!
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 section 4.1 Working with the mouse in the ECB-windows).
Default-value: ECB caches the contents of all remote directories regardless of the size and all other directories if more than 50 entries are contained.
Examples:
An entry ("/usr/home/john_smith/bigdir*" . 1000) means the
contents of every subdirectory of the home-directory of John Smith
will be cached if the directory contains more than 1000 entries and
its name begins with "bigdir".
An entry (".*" . 1000) caches every directory which has more
than 1000 entries.
An entry ("^/\\([^:/]*@\\)?\\([^@:/]*\\):.*" . 0) caches
every remote (in the sense of tramp, ange-ftp or efs) directory
regardless of the number of entries."
Please note: If you want your home-dir being cached then you MUST NOT use "~" because ECB tries always to match full path-names!
If a directory-name matches at least one of the regexps of this option
the directory-contents will never being cached. See
ecb-cache-directory-contents to see when a directory will be
cached.
This option can be useful when normally all directories with a certain amount of content (files and subdirs) should be cached but some special directories not. This can be achieved by:
ecb-cache-directory-contents to ((".*" . 500)):
Caches all directories with more then 500 entries
ecb-cache-directory-contents-not to a value which
matches these directories which should not being cached (e.g.
("/usr/home/john_smith") excludes the HOME-directory of John Smith
from being cached).
Please note: If you want your home-dir exclude from being cached then you MUST NOT use "~" because ECB tries always to match full path-names!
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
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!
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.
ecb-max-submenu-depth
BEFORE first loading ECB!
The function of a menu-command must follow the following guidelines:
Such a function must be defined with the macro
tree-buffer-defpopup-command! This macro defines a new
popup-command whereas the newly defined command gets one argument
NODE. See the docstring of tree-buffer-defpopup-command
for further details.
Example for the definition of such a menu-function:
(tree-buffer-defpopup-command ecb-my-special-dir-popup-function
"Prints the name of the directory of the node under point."
(let ((node-data=dir (tree-node-get-data node)))
(message ``Dir under node: %s'' node-data=dir)))
|
Per default the static 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.
These menu-extensions are static. A dynamic menu-extension can be
achieved via ecb-directories-menu-user-extension-function.
ecb-directories-menu-user-extension. This function is
called when the user opens the popup-menu for the directories buffer.
Per default the dynamic user-extensions are added in front of the
static extensions of ecb-directories-menu-user-extension but
the whole menu can be re-arranged with
ecb-directories-menu-sorter.
If a file-buffer is displayed in the current active 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 current active 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.
ecb-stealthy-tasks-delay) so normally there
should no performance-decrease or additional waiting-time for the
user. There is one exception: For remote directories (in the sense of
tramp, ange-ftp, or efs) this check can descrease performance even if
performed stealthy and interruptable. Therefore this option offers
three possible settings:
t
Switch on this feature
unless-remote
Switch on this feature but not for remote directories. The term
"remote" means here directories which are used via tramp, ange-ftp
or efs. So mounted directories are counted not as remote directories
here even if such a directory is maybe hosted on a remote machine. But
normally only directories in a LAN are mounted so there should be no
performance-problems with such mounted directories.
nil
Switch off this feature completely.
The option ecb-prescan-directories-exclude-regexps offers are
more fine granularity to exclude certain directories from this
prescan.
Per default ECB discards after 1 minute the cached ping-state of each remote host. But if you are sure that a certain remote host is always accessible (i.e. means in consequence that you are always online when working with ECB and remote-paths) then add an entry to this option with a high valid-interval.
Examples: An entry (".*sourceforge.*" . 3600) ensures that all remote hosts machting the string "sourceforge" will only once pinged during one hour. Or (".*" . 300) would ensure that every remote host would be pinged only once during 5 minutes.
ecb-ping-program.
ecb-ping-options.
ecb-prescan-directories-for-emptyness is not nil.
Lisp-type of tis option: The value must be a list L whereas each element of L is either
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.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This group contains settings for the sources-buffer in the ECB:
ecb-sources-perform-read-only-check is not nil.
This is done on directory-base, which means for each directory-regexp the files to display can be specified. If more than one directory-regexp matches the current selected directory then always the first one (and its related file-exclude/include-regexps) is used! If no directory-regexp matches then all files are displayed for the currently selected directory.
Important note: It is recommended that the *LAST* element of this list
should contain an always matching directory-regexp (".*")!
So the value of this option is a list of cons-cells where the car is a directory regexp and the cdr is a 2 element list where the first element is a list of exclude regexps and the second element is a list of include regexps. A file is displayed in the source-buffer of ECB iff: The file does not match any of the exclude regexps OR the file matches at least one of the include regexps.
But regardless of the value of this option a file F is never displayed
in the sources-buffer if the directory matches
ecb-sources-exclude-cvsignore and the directory contains a file
.cvsignore which contains F as an entry!
There are three predefined and useful combinations of an exclude and include regexp:
In addition to these predefined values a custom exclude and include combination can be defined.
Tips for the directory- and file-rexexps: "$^" matches no
files/directories, ".*" matches all files/directories.
local-set-key to define new keybindings only for the
sources-buffer of ECB.
If it is necessary for you you can get emacs-lisp access to the
buffer-object of the ECB-sources-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!
Value is a list of regular expressions or nil. If you want to exclude files listed in a `.cvsignore'-file from being displayed in the ecb-sources-buffer then specify a regexp for such a directory.
If you want to exclude the contents of `.cvsignore'-files for every directory then you should add one regexp ".*" which matches every directory.
If you never want to exclude the contents of `.cvsignore'-files then set this option to nil.
If a function then this function is called to sort the menu-entries of
the combined menu-entries of the user-menu-extensions of
ecb-sources-menu-user-extension and the built-in-menu
ecb-sources-menu. If nil then no special sorting will be done
and the user-extensions are placed in front of the built-in-entries.
For the guidelines for such a sorter-function see
ecb-directories-menu-sorter.
ecb-directories-menu-user-extension.
The node-argument of a menu-function contains as data the filename of the source for which the popup-menu has been opened.
Per default the static user-extensions are added at the beginning of
the built-in menu-entries of ecb-sources-menu but the whole
menu can be re-arranged with ecb-sources-menu-sorter.
ecb-sources-menu-user-extension. This function is called when
the user opens the popup-menu for the sources buffer.
Per default the dynamic user-extensions are added in front of the
static extensions of ecb-sources-menu-user-extension but the
whole menu can be re-arranged with ecb-sources-menu-sorter.
ecb-source-read-only-face.
Because this check can be take some time if files are used via a
mounted net-drive ECB performs this check stealthy (see
ecb-stealthy-tasks-delay) so normally there should no
performance-decrease or additional waiting-time for the user. But to
get sure this option offers three choices: t,
unless-remote and nil. See
ecb-prescan-directories-for-emptyness for an explanation for
these three choices.
The option ecb-read-only-check-exclude-regexps offers are more
fine granularity to exclude the sources of certain directories from
the read-only state-check.
ecb-sources-sort-method.
name:
Sorting by name.
extension:
Sorting first by extension and then by name.
nil:
No sorting, means source files are displayed in the sequence returned
by directory-files (called without sorting).
See also ecb-sources-sort-ignore-case
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This group contains settings for the methods-buffer in the ECB:
This option has only an effect if option ecb-highlight-tag-with-point is
switched on too. There are three possible choices:
nil:
No auto. expanding of the method buffer.
expand-spec:
Auto expand the method-buffer nodes if the node belonging to current
tag under point is invisible because its parent-node is collapsed.
But expanding is only done if the type of the tag under point in the
edit-buffer is contained in ecb-methods-nodes-expand-spec.
all:
Like expand-spec but expands all tags regardless of the setting in
ecb-methods-nodes-expand-spec.
This options takes only effect for semantic-sources - means sources supported by semantic!
ecb-methods-filter and they are
applied in the same manner - the only difference is they are applied
automatically. Please be aware that symbol-filters (e.g.
protection-symbols like public or private) must not be inserted with
quotes whereas a filter-regexp has to be inserted with surrounding
double-quotes! In addition backslashes in a regexp have to be doubled!
For each file-spec (a major-mode plus a file-regexp which both specify
a file for which filters should be applied) there can be as much
filters as needed - they are layered like with
ecb-methods-filter too.
Tag-classes which are completely hidden or excluded by the option
ecb-show-tags will never being displayed in the Methods-buffer
regardless of the filters of this option!
ecb-tree-buffer-style is set to image.
ecb-show-parents). If nil then all parents will be
shown if ecb-show-parents is not nil.
This options takes only effect for semantic-sources - means sources supported by semantic!
ecb-expand-methods-nodes.
This is done with ecb-toggle-auto-expand-tag-tree so after
the switch off the auto expanding feature can again switched on
quickly.
But after explicitly expanding/collapsing the methods-buffer to a
certain level the auto. expanding could undo this when the node
belonging to current tag under point in the current active edit-window
is invisible after ecb-expand-methods-nodes - then the auto.
expand feature would make this node immediately visible and destroys
the explicitly set expand-level.
This options takes only effect for semantic-sources - means sources supported by semantic!
highlight-scroll:
Always scroll the method buffer, so the current method of the
edit-window is highlighted in the method-window.
highlight:
Only highlight the current method of the edit window in the
method window if the method is visible in the method-window.
nil:
No highlighting is done.
See also ecb-highlight-tag-with-point-delay.
This options takes only effect for semantic-sources - means sources supported by semantic!
This options takes only effect for semantic-sources - means sources supported by semantic!
local-set-key to define new keybindings only for the
methods-buffer of ECB.
If it is necessary for you you can get emacs-lisp access to the
buffer-object of the ECB-methods-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!
never:
This is the default and means that calling ecb-methods-filter
always adds the new filter on top of already existing filters. So you
can combine several filter to one combined like this example: 'Display
only all public methods having the string "test" in its name.' With
this setting the filters can only be cleared by calling
ecb-methods-filter and then choosing "nothing".
always:
This means that ecb-methods-filter always clears a previous
filter before applying the new one.
ask:
ECB asks if the new filter should replace the existing ones.
If a function then this function is called to sort the menu-entries of
the combined menu-entries of the user-menu-extensions of
ecb-methods-menu-user-extension and the built-in-menu
ecb-methods-menu. If nil then no special sorting will be done
and the user-extensions are placed in front of the built-in-entries.
For the guidelines for such a sorter-function see
ecb-directories-menu-sorter.
ecb-directories-menu-user-extension.
The node-argument of a menu-function contains as data the semantic-tag of the method/variable/tag for which the popup-menu has been opened.
Per default the static user-extensions are added at the beginning of
the built-in menu-entries of ecb-methods-menu but the whole
menu can be re-arranged with ecb-methods-menu-sorter.
ecb-methods-menu-user-extension. This function is called when
the user opens the popup-menu for the methods buffer. For an example
how such a function can be programmed see
ecb-methods-menu-editwin-entries.
Per default the dynamic user-extensions are added in front of the
static extensions of ecb-methods-menu-user-extension but the
whole menu can be re-arranged with ecb-methods-menu-sorter.
ecb-expand-methods-nodes.
For valid values of this option see ecb-methods-nodes-expand-spec!
This options takes only effect for semantic-sources - means sources supported by semantic!
ecb-expand-methods-nodes.
The value of this option is either the symbol all (all tags
are expanded regardless of their type) or a list of symbols where each
symbol is a valid semantic tag-type. For a description of semantic
tag types see option ecb-show-tags.
But this option also defines if bucket-nodes in the ECB-method-buffer
(e.g. "[Variables]") should be expanded. Therefore valid symbols for
this list are also all cars of the variable returned by
ecb--semantic-symbol->name-assoc-list.
If there is a bucket-name (the node-name stripped of the settings in
ecb-bucket-node-display) which is not contained as cdr in the
value returned by ecb--semantic-symbol->name-assoc-list then
the symbol with this bucket-name as name is also a valid symbol for
this list. Example: In ECB there are buckets "[Parents]". The
bucket-name is "Parents" and the valid symbol-name is then
Parents.
This options takes only effect for semantic-sources - means sources supported by semantic!
ecb-show-tags the user can define different display-settings
for each of them. If this option is nil then the prototypes and the
real functions are filled in the same bucket and displayed plain and
there is no sorting between prototypes and functions possible. If this
option is switched on then it is senseful that ecb-show-tags
contains for all modes which distinct between prototypes and real
functions/methods two entries for the tag-type 'function - see the
documentation of this option.
ecb--semantic-bovinate-toplevel) for a buffer in this
major-mode. The first function in the list is called with current
semantic taglist of current buffer and must return a valid taglist
again. All other functions are called with the result-taglist of its
preceding function and have to return a new taglist again.
For oo-programming languages where the methods of a class can be
defined outside the class-definition (e.g. C++, Eieio) the function
ecb-group-function-tags-with-parents can be used to get a much
better method-display in the methods-window of ECB, because all method
implementations of a class are grouped together.
Another senseful usage is to filter out certain tags, e.g. prototype
tags in c-mode. For this you can set
ecb-filter-c-prototyp-tags.
This options takes only effect for semantic-sources - means sources supported by semantic!
defclass form which are only displayed
if this option is nil. Displaying such nodes can be senseful even if
they can not be jumped.
This options takes only effect for semantic-sources - means sources supported by semantic!
The car is either a major-mode symbol or the special symbol 'default which means if no setting for a certain major-mode is defined then the cdr of the 'default cons-cell is used. This option should always contain a default-setting!
The cdr is a list where each element represents a type of tags:
(<tag type> <display type> <sort method>) |
There can be more than 1 element for a certain <tag type>. This is for
example useful for C++ and C because these languages distinct between
a method-prototype (rsp. function-prototype for C) and the method
(rsp. function for C) itself. The default value of these option
contains two entries for <tag type> is function whereas the
first one is responsible for the "real" methods (rsp. functions) and
the second one for the prototypes. So if the methods should be
flattened and the prototypes collapsed the show-tags-list for C++ and
C must contain two entries for <tag type> function, the first
one defined as flattened and the second one defined as
collapsed.
The tags in the methods buffer are displayed in the order as they appear in this list.
<tag type>
t: All tag types not specified anywhere else in the list.
parent: The parents of a type.
<display type>
expanded: The tags are shown in an expanded node.
collapsed: The tags are shown in a collapsed node.
flattened: The tags are added to the parent node.
hidden: The tags are not shown.
<sort method>
name:
Sort by the tag name.
access:
Sort by tag access (public, protected, private) and then by name.
nil:
Don't sort tags. They appear in the same order as in the source
buffer.
This options takes only effect for semantic-sources - means sources supported by semantic!
Every function is called with 3 arguments:
ecb-font-lock-tags.
Every function must return the display of the tag as string, colorized if the third argument is not nil.
The following functions are predefined:
ecb--semantic-format-function-alist
exists a function with name "ecb--<(cdr E)>". These functions are
just aliase to the builtin format-functions of semantic. See the
docstring of these functions to see what they do. Example:
(semantic-name-nonterminal . semantic-format-tag-name) is an element
of ecb--semantic-format-function-alist. Therefore the
alias-function for this element is named
ecb--semantic-format-tag-name.
ecb--semantic-format-function-alist with name
"semantic-XYZ" a function with name "ecb-XYC" is predefined. The
differences between the semantic- and the ECB-version are:
ecb-type-tag-display. This is useful for better recognizing
different classes, structs etc. in the ECB-method window.
For all tags which are not types the display of the ECB-version is
identical to the semantic version. Example: For
ecb--semantic-format-tag-name (one of the builtin semantic
formatters) the pendant is ecb-format-tag-name.
This functionality also allows the user to display tags as UML. To
enable this functionality set the function for a major-mode \(e.g.
jde-mode) to
ecb--semantic-format-tag-uml-concise-prototype,
ecb--semantic-format-tag-uml-prototype, or
ecb--semantic-format-tag-uml-abbreviate the ECB-versions of
these functions.
If the value is nil, i.e. neither a function for a major-mode
is defined nor the special 'default, then
ecb--semantic-format-tag-prototype is used for displaying the
tags.
This options takes only effect for semantic-sources - means sources supported by semantic!
This functionality is set on a major-mode base, i.e. for every
major-mode a different setting can be used. The value of this
option is a list of cons-cells:
major-mode symbol or the special symbol
'default.
ECB first performs all actions defined for the special symbol 'default
(if any) and then all actions defined for current major-mode
(if any).
ECB offers some predefined senseful action-functions. Currently there
are: ecb-tag-visit-highlight-tag-header
ecb-tag-visit-smart-tag-start
ecb-tag-visit-recenter ecb-tag-visit-recenter-top
ecb-tag-visit-goto-doc-start
ecb-tag-visit-narrow-tag See the documentation of these
function for details what they do.
But you can add any arbitrary function if the following conditions are fulfilled: The function gets the semantic tag as argument, returns the (new) point after finishing its job and the function must not put the point outside the tag-boundaries of the tag-argument.
ecb--semantic-format-face-alist and the semantic
display-function (e.g. one from
ecb--semantic-format-tag-functions). But sometimes a finer
distinction in displaying the different type specifiers of type-tags
can be useful. For a description when this option is evaluated look at
ecb-tag-display-function!
This functionality is set on a major-mode base, i.e. for every major-mode a different setting can be used. The value of this option is a list of cons-cells:
ecb-post-process-semantic-taglist and
ecb-group-function-tags-with-parents). Any arbitrary
specifier can be set here but if it is not "group" or not known by
semantic it will be useless.
ecb-type-tag-class-face,
ecb-type-tag-interface-face, ecb-type-tag-struct-face,
ecb-type-tag-typedef-face, ecb-type-tag-union-face,
ecb-type-tag-enum-face and ecb-type-tag-group-face) but
any arbitrary face can be set here. This face is merged with the faces
semantic already uses to display a tag,
i.e. the result is a display where all face-attributes of the ECB-face
take effect plus all face-attributes of the semantic-faces which are not
set in the ECB-face (with XEmacs this merge doesn't work so here the
ECB-face replaces the semantic-faces; this may be fixed in future
versions).
The default value is nil means there is no special ECB-displaying of type-tags in addition to the displaying and colorizing semantic does. But a value like the following could be a useful setting:
((default
("class" t ecb-type-tag-class-face)
("group" nil ecb-type-tag-group-face))
(c-mode
("struct" nil ecb-type-tag-struct-face)
("typedef" nil ecb-type-tag-typedef-face)))
|
This means that in c-mode only "struct"s and "typedef"s are
displayed with special faces (the specifiers itself are not removed)
and in all other modes "class"s and grouping-tags (see
ecb-tag-display-function,
ecb-group-function-tags-with-parents) have special faces and
the "class" specifier-string is removed from the display.
This options takes only effect for semantic-sources - means sources supported by semantic!
ecb-post-process-semantic-taglist).
This option defines which type-specifiers should be expanded at file-open-time. Any arbitrary specifier can be set here but if it is not "group" or not known by semantic it will be useless.
This functionality is set on a major-mode base, i.e. for every major-mode a different setting can be used. The value of this option is a list of cons-cells:
default which means if no setting for a certain major-mode is
defined then the cdr of the default cons-cell is used.
all-specifiers (then a type-tag
is always expanded regardless of its type-specifier).
This options takes only effect for semantic-sources - means sources supported by semantic!
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This group contains settings for the history-buffer in the ECB:
local-set-key to define new keybindings only for the
history-buffer of ECB.
If it is necessary for you you can get emacs-lisp access to the
buffer-object of the ECB-history-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!
If a function then this function is called to sort the menu-entries of
the combined menu-entries of the user-menu-extensions of
ecb-history-menu-user-extension and the built-in-menu
ecb-history-menu. If nil then no special sorting will be done
and the user-extensions are placed in front of the built-in-entries.
For the guidelines for such a sorter-function see
ecb-directories-menu-sorter.
ecb-directories-menu-user-extension.
The node-argument of a menu-function contains as data the filename of the source for which the popup-menu has been opened.
Per default the static user-extensions are added at the beginning of
the built-in menu-entries of ecb-history-menu but the whole
menu can be re-arranged with ecb-history-menu-sorter.
ecb-history-menu-user-extension. This function is called when
the user opens the popup-menu for the history buffer.
Per default the dynamic user-extensions are added in front of the
static extensions of ecb-history-menu-user-extension but the
whole menu can be re-arranged with ecb-history-menu-sorter.
ecb-history-sort-method.
name:
Sorting by name (default).
extension:
Sorting first by extension and then by name.
nil:
No sorting, means the most recently used buffers are on the top of the
history and the seldom used buffers at the bottom.
See also ecb-history-sort-ignore-case.
kill-buffer should also clear the history. There are
three options:
auto:
Removes automatically the corresponding history-entry after the buffer
has been killed.
ask:
Asks, if the history-entry should be removed after the kill.
nil:
kill-buffer does not affect the history (this is the default).
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This group contains settings for the screen-layout of the ECB:
ecb-new-ecb-frame is not nil (otherwise this hook is not
evaluated).
other-window
For this one see also the option ecb-other-window-behavior!
delete-window
delete-other-windows
delete-windows-on
split-window-horizontally
split-window-vertically
split-window
If this advice is enabled then split-window-vertically and
split-window-horizontally are autom. enabled too!
switch-to-buffer
switch-to-buffer-other-window
display-buffer
Especially if ecb-compile-window-height is not nil it is
strongly recommended not to disable this advice!
other-window-for-scrolling
If this advice is enabled then the behavior of the following functions
depends on ecb-other-window-behavior:
scroll-other-window
scroll-other-window-down
beginning-of-buffer-other-window
end-of-buffer-other-window
balance-windows:
Only the edit-windows are balanced
For working most conveniently with ECB it is the best to advice all these functions, because then all the standard shortcuts of these functions are also usable with ECB without doing anything else. Also other packages can interact best with ECB if these functions are all adviced. If these adviced functions are called in another frame than the ECB-frame they behave all exactly like the not adviced versions!
But please read also the following:
Normally all packages should work correct with ECB and it´s adviced functions but if there occur problems with a package cause of some of these adviced functions ECB offers the following fall-back solution:
ecb-advice-window-functions all the
adviced-functions which make problems with other packages.
ecb-activate-hook the standard-shortcut of
<adv-func> to "ecb-<adv-func>" and rebind it in