FAQ - ECB - the Emacs Code Browser
Description: ECB - the Emacs Code Browser

Next: Command Index, Previous: Conflicts and bugs, Up: Top

## 13 Frequently asked questions

This is the Emacs Code Browser FAQ.

Question |  | Answer
What is the first step i should do if i have problems with ECB? |  | Read carefully the related sections of the online-help of ECB.
What should i do, if a have a problem which can not be solved even after reading the online-help? |  | Send a problem-report to the ECB-mailing-list with the command `ecb-submit-problem-report`. See Submitting problem report.
What should i do, if another package seems not to work correct with ECB? |  | Take a look into Conflicts. If your package is not listed there then submit a problem-report.
Can ECB parse and display source-contents not supported by semantic? |  | Yes, in all version >= 1.94. ECB can now parse and display all source-contents supported by semantic, imenu or etags - same as speedbar. See Non-semantic sources.
Why are the lines in the ECB-, temp- and compilation-buffers not wrapped but truncated? |  | Check the variable `truncate-partial-width-windows` and set it to nil.
Why doesn't ECB work correct with VC? |  | The variable `vc-delete-logbuf-window` must be set to nil during active ECB. This can be done with the hooks of ECB.
Does ECB support C++ as well as Java? |  | In general C++ is supported very well. But it depends on the used cedet-version, but cedet-version >= 1.0pre6 support C++ really well.
Does ECB support Perl? |  | If perl can be parsed either by imenu, etags or semantic then ECB supports perl. Of course ECB would support perl best if perl is supported by semantic.
Does ECB support language XYZ? |  | See question “Does ECB support Perl?” and replace “Perl” with “XYZ” in the answer.
How to add new languages to ECB? |  | Add the language XYZ to semantic (perform all necessary steps described in the semantic-manual) and ECB will automatically support language XYZ! There is nothing to do in ECB itself! Same when you write an imenu- or etags-support for language XYZ.
Why does ECB not recognize my source-files for C++? |  | Your C++-files have probably an extension which is not mapped to c++-mode in `auto-mode-alist` and/or your own Emacs-setup has “destroyed” the correct value of the hook-variable `c++-mode-hook`. See Setting up Emacs.
Is it possible to make the history of ECB persistent? |  | You can use the library “desktop.el” which works very well with ECB. Then all files of your recent Emacs-session will be opened automatically after next Emacs-start and will be added automatically to the ECB-history after ECB-start.
Is there an “Intellisense”-mechanism like with other IDEs? |  | For Java the JDEE1 has this feature and for all other languages semantic offer something similar, see http://cedet.sourceforge.net/intellisense.shtml
Can i use ECB in combination with Gnus within one frame? |  | You can, but for ECB-versions < 1.96 it is not recommended because each of them has it's own window-management and probably there will be conflicts, so use different frames for ECB and Gnus! But beginning with ECB 1.96 you can use either escreen.el or winring.el as “window-manager” which allows you in consequence to use ECB and applications like Gnus in one frame! See Window-managers and ECB.
Can i speed up displaying the contents of big-size directories? |  | Yes, see the option `ecb-cache-directory-contents`. Read the section Large directories.
Is it possible to create/use other layouts than the built-in ones? |  | Yes. Creating a new ECB-layout and The layout-engine are the relevant sections. The former one describes how to create interactively new layouts where the latter one is for Elisp-programmers.
Can i use speedbar as directory-browser within ECB? |  | Yes, see Integrating speedbar.
Can i exclude subdirectories from the recursive grep in the directories buffer? |  | Yes, see Grepping directories.
How can i prevent contaminating each directory with a file `semantic-cache`? |  | Set `semanticdb-default-save-directory` to a directory.
Why ECB displays large portions of current source-file with dark background? |  | This comes from semantic; see Setting up Emacs.
Why ECB underlines some parts of current source-file? |  | This comes from semantic; see Setting up Emacs.
Can i add my own commands to the popup-menus of tree-buffers? |  | Yes, see Using the mouse.
Can ECB display the compile-window “on demand”? |  | Yes, see Common use-cases.
Which buffers are treated as compilation-buffers by ECB? |  | See the docstring of the function `ecb-compilation-buffer-p`.
How can i change the modeline of an ECB-tree-buffer? |  | You can change it with the options `ecb-mode-line-prefixes`, `ecb-mode-line-data` and `ecb-mode-line-display-window-number`.
Can the tree-buffers being selected faster than with the standard-keybindings of ECB? |  | Yes, see option `ecb-mode-line-display-window-number`.
Can ECB display the window-number in the modeline of the special windows? |  | Yes, see option `ecb-mode-line-display-window-number`.
How can i change the keybindings of ECB? |  | You can do this with option `ecb-key-map` (see ecb-general).
What can i do if hiding/showing from the methods-buffer does not work? |  | Either the current `major-modes` is not supported by hideshow or you have to add an entry to `hs-special-modes-alist` (see Hide-show).
Can i maximize one of the ECB-windows for better overlook? |  | Yes, see Maximizing the ECB windows.
Can i hide the ECB-windows for getting more editing-space? |  | Yes, see Hiding the ECB windows.
Can i define the actions ECB performs after visiting a tag? |  | Yes, see Visiting tags.
Buffers are not displayed correctly in the compile-window? |  | See Problems with the compile window.
Can ECB work together with window-managers like escreen.el? |  | Yes, see Window-managers and ECB.
Can i remove these “ugly” vertical lines from a tree-buffer? |  | Yes, see option `ecb-tree-buffer-style`.
ECB does not display images in the tree-buffers - what can i do? |  | Customize `ecb-tree-buffer-style` and restart ECB. But note: GNU Emacs <= 21.3.X for Windows does not support image-display so ECB uses always ascii-guide-lines even when here the image-style is set in `ecb-tree-buffer-style`.
Do `special-display-function` et. al. work with ECB. |  | Yes, see Using special-display with ECB.
Can i activate the popup-menu of a tree-buffer from keyboard? |  | Yes, see Using popup-menus.
Can i display the popup-menu of a tree-buffer with tmm? |  | Yes, see Using popup-menus.
Does ECB disable all advices after deactivation? |  | “Nes”2, see remarks in the documentation of the option `ecb-split-edit-window-after-start`.
Can ECB preserve the full state of ECB between deactivation and next activation? |  | Yes, see the option `ecb-split-edit-window-after-start`.
Can i change the behavior how ECB chooses another window for selecting it or scrolling it. |  | Yes, see The other window.
Can i increase the allowed depth of nested submenus. |  | Yes, see the docstring of the option `ecb-directories-menu-user-extension`.
Can i apply some filters to the Tree-buffers. |  | Yes, see Filtering the tree-buffers
With XEmacs i get sometimes an error “Wrong number of arguments: widen (1)”. What can i do? |  | Disable the func-menu support in your XEmacs-setup. See Conflicts.
Can i use desktop.el in combination with ECB? |  | Yes, see Conflicts.
Opening directories takes a long time - what can i do? |  | Read Large directories.
ECB seems to be blocked sometimes - what is the reason? |  | ECB performs some stealthy tasks when idle - this can cause sometimes a blocked Emacs but this tasks will be immetiatelly interrupted by any user-event so there should be normally no problems. But especially for mounted net-drives some of the stealthy tasks can take time up to some seconds for each file - and during one file-operation it can not be interrupted. See also `ecb-stealthy-tasks-delay`.
Can i exclude certain directories from being checked for emptyness? |  | Yes, see option `ecb-prescan-directories-exclude-regexps`.
Can i exclude certain directories from checking the VC-state of the contained sources? |  | Yes, see option `ecb-vc-directory-exclude-regexps`.
Can i exclude certain directories from checking the read-only-state of the contained sources? |  | Yes, see option `ecb-read-only-check-exclude-regexps`.
ECB ignores the remote-paths i have added to `ecb-source-path`. |  | Maybe you have to check the option `ecb-ping-options`. Ensure that this option contains a value suitable for your ping-program (see `ecb-ping-program`). See also Remote directories.
ECB seems to be blocked a long time. |  | Maybe you use cygwin-XEmacs. Then either the empty-dir-check (see option `ecb-prescan-directories-for-emptyness`) or the VC-support (see `ecb-vc-enable-support`) can block ECB. For the latter one see Known VC-problems.
ECB seems to be blocked during the VC-state update in the tree-windows. |  | Maybe the root repository for the current directory is a remote-repository. This can result in a long lasting check-time per file. See also Version-control support for hints what you can do.
I have encountered some problems with the display of the VC-state in the tree-buffers. |  | See also Version-control support for hints what you can do.
The state of the files under version control seems to be not accurate. What is the reason and what can i do? |  | The option `ecb-vc-supported-backends` offers now also a accurate recompute-state function. This is by offering `ecb-vc-recompute-state` as an alias to the function `vc-recompute-state` as state-check function for this option. See also Version-control support
With Emacs 23 ECB shows a odd split-behavior when calling help or displaying completion-output or compilation- or grep-output. What is the reason. |  | Check the values of the options `split-width-threshold` and `split-height-threshold`. ECBs split-behavior depends fully on the Emacs-logic and that one depends mainly on these two options. So adjust them to match (at least nearly) the sizes of the edit-area of ECB.
When using a layout with the special ecb-window for the semantic analyzer then Emacs seems to be blocked when typing pauses. What is the reason and what can i do? |  | This comes from the idle-mechanism ECB/semantic uses to offer some intellisense like displaying possible completions and local variables depending on current context (ie. location of point). So if point stays on a location within your code where hundreds (or even thousands) of completions are possible then parsing and displaying them can last annoying time. But in general a keypress interupts. If not then you have to possibilities offered by the options `ecb-analyse-buffer-sync` and `ecb-analyse-buffer-sync-delay`: You can increase the delay of the latter one so parsing current context starts later after Emacs goes idle (ie. after you pause typing). Or you can disable the automatic synchronizing the analyser-window with the former one - see the docstring. Then you have to synchronize (ie. start parsing context) on demand via the command `ecb-analyse-buffer-sync`3.
How can i change the bucketizing method of the history-window? |  | Either via popup context-menu (right mouse-button) or with the option `ecb-history-make-buckets`.
How can i disable this grey headerline in the tree-buffers? |  | See the option `ecb-tree-make-parent-node-sticky`.
When clicking onto a parent-node in the methods-window then ECB doesn't jump to the definition of this parent-type. |  | ECB uses completely the smartness of the semanticdb and the semantic-analyzer. So if you have customized semantic accordingly to the needs of your project (ie. mainly setting up all so semantic can find files in your directory-structure) then ECB will find the parent-definition and also jump to it. See ECB Methods-window and the subsection “Jumping to the definition of external tags” and see the option `ecb-find-external-tag-functions`.

#### Footnotes

[1] http://jdee.sunsite.dk/

[2] Nes is a combination of No and Yes :-)

[3] Yes, both the option and the command have the same name