Integrating speedbar - ECB - the Emacs Code Browser
Description: ECB - the Emacs Code Browser

Next: Large directories, Previous: Simulating speedbar, Up: Common use-cases

### 10.5 Integrating speedbar in the ECB-frame

It is very easy to integrate speedbar into ECB. There are two different ways to do this:

1. You can either use speedbar in the directories-, sources- or methods-window of ECB instead of the built-in directory-, sources- or methods-browser of ECB. This can be done via the option `ecb-use-speedbar-instead-native-tree-buffer`.
2. Or you can integrate an extra speedbar-window into a layout independent of the existence of a directory-, sources- or methods-window. For this you can either use the built-in layout “left-dir-plus-speedbar” or you have to create your own layout interactively with the command `ecb-create-new-layout`. This way is not described in more details because there is nothing more to describe - just create your layout.

In general integrating speedbar into the ECB-frame makes sense for people...

- ...who like the speedbar way of handling directories and source-files but also like the ECB-way of displaying the buffer-contents (like methods and variables in a source-file). This people should use the option `ecb-use-speedbar-instead-native-tree-buffer` and set it to `dir`.
- ...who like the speedbar way of browsing things like directories, files, file-contents etc. but who dislike the extra speedbar-frame.

Note: It is not necessary to integrate speedbar if you only want parsing sources not supported by semantic. From version 1.94 on ECB supports native parsing and displaying of such sources (see Non-semantic sources)!

Regardless the group you belong, with the speedbar-integration feature of ECB you can combine both worlds, the speedbar- and the ECB-world:

1. Choose a layout which either contains a directories- or a sources-window but not both of them1.

   Because speedbar has also display-modes for buffers and info-nodes and some other useful things (which can be changed by the speedbar-command `speedbar-change-initial-expansion-list` we recommend layouts like “left15” or “leftright3” for using with speedbar.

2. Set the option `ecb-use-speedbar-instead-native-tree-buffer` to not nil. After this the chosen window of ECB will contain a full featured speedbar (the only difference to standard speedbar is not residing in an extra frame).

Note: If you belong to the first group of people (s.a.) a similar effect and usability is available by setting `ecb-use-speedbar-instead-native-tree-buffer` to nil and setting `ecb-show-sources-in-directories-buffer` to not nil, because this combination displays also directories and sources in one window.

So with the option `ecb-use-speedbar-instead-native-tree-buffer` you have the choice which way of displaying and handling “things” (directories, sources, methods...) you want (the speedbar- or the ECB-way).

During speedbar is running within ECB (i.e. `ecb-use-speedbar-instead-native-tree-buffer` is not nil) the speedbar-command `speedbar` is disabled and the speedbar-command `speedbar-get-focus` switches between the speedbar-window and the edit-window2.

IMPORTANT: ECB can only integrate speedbar-versions >= 0.14beta1! If you use lower versions of speedbar `ecb-use-speedbar-instead-native-tree-buffer` has no effect.

#### Footnotes

[1] Only one of them is needed if you use speedbar because speedbar displays directories and sources in one window. But if you like wasting space then you can also use a layout with both windows...

[2] The standard behavior is switching between the speedbar-frame and the attached frame, but this make obviously no sense during running speedbar with ECB.