Next: , 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.