ecb-non-semantic - ECB - the Emacs Code Browser
Description: ECB - the Emacs Code Browser

Next: ecb-winman, Previous: ecb-speedbar, Up: Customizable options

#### 7.3.17 Group ecb-non-semantic

This group contains settings for parsing and displaying non-semantic files:

— User Option: auto-save-before-etags-methods-rebuild

> Automatic saving of current buffer before rebuilding its methods.

> This option is only relevant for sources which are supported and parsed by etags (see `ecb-process-non-semantic-files`). Because etags is an external tool a source-buffer can only be reparsed if the buffer is saved to disk. So the command `ecb-rebuild-methods-buffer` checks for sources which are not supported by semantic or imenu if either this option is t or if the major-mode of the source-buffer is contained in this list: In both cases ECB saves the current source-buffer before it re-runs etags for reparsing the source. If nil or if the major-mode is not contained then no automatic saving will be done!

> For all source supported by semantic or by imenu this option takes no effect.

— User Option: non-semantic-exclude-modes

> Exclude modes from parsing with imenu or etags. Per default, ECB tries to parse all file-types not supported by semantic with imenu or etags or some other method (for details see the option `ecb-non-semantic-parsing-function`). If a file-type can not be parsed by semantic, imenu or etags than this simply results in an empty method-buffer for this file. But nevertheless you will get a message “Sorry, no support for a file of that extension” which comes from the speedbar-library and can not switched off. Therefore if a `major-mode` is known as not parse-able by semantic, imenu or etags it can be added to this option and then it will be excluded from being tried to parsed.

— User Option: non-semantic-methods-initial-expand

> Initially expand all tags for not by semantic supported sources. This option can be customized on a major-mode basis, i.e. if a `major-mode` is contained in this option then all tags for this modes will be initially expanded - otherwise not.

— User Option: non-semantic-parsing-function

> Define mode-dependent parsing functions for non-semantic files. This is an alist where the car is a major-mode symbol and the cdr is a function-symbol of a function which should be used for parsing a non-semantic buffer, i.h. a buffer for which no semantic grammar exists. Such a function gets one argument - the filename of current buffer - and has to generate and return a tag/tag list which is understandable by `speedbar-insert-generic-list`. speedbar has already included two functions `speedbar-fetch-dynamic-imenu` and `speedbar-fetch-dynamic-etags` which can be used for parsing buffers with imenu rsp. etags.

> This option takes only effect if `ecb-process-non-semantic-files` is not nil: Then ECB checks for non-semantic buffers if current `major-mode` is contained in this option and if yes, then the specified parsing function is called; if not then the cars of the elements of `speedbar-dynamic-tags-function-list` are called in that sequence they are listed in this variable. See option `speedbar-dynamic-tags-function-list` for further details.

> In most cases imenu-parsing is preferable over etags-parsing because imenu operates on Emacs-buffers and needs no external tool and therefore parsing works also if current contents of a buffer are not saved to disk. But maybe sometimes etags may return better parsing results

> IMPORTANT: if imenu-parsing should be used then the option `speedbar-use-imenu-flag` must be set to not nil!

— User Option: process-non-semantic-files

> Display content of non-semantic-files in the ECB-methods-buffer. See also `ecb-non-semantic-parsing-function`.

— User Option: rebuild-non-semantic-methods-before-hook

> Hook running at beginning of the function `ecb-rebuild-methods-buffer-for-non-semantic`. This function is always called by the command `ecb-rebuild-methods-buffer` for not semantic supported source-types.

> Every function of this hook gets one argument: The complete filename of the current source-buffer in the edit-window. The Method-buffer is only rebuild by `ecb-rebuild-methods-buffer-for-non-semantic` if either the hook contains no function (the default) or if no function of this hook returns nil! See `run-hook-with-args-until-failure` for description how these function are processed.