ecb-analyse - ECB - the Emacs Code Browser
Description: ECB - the Emacs Code Browser

Next: ecb-symboldef, Previous: ecb-history, Up: Customizable options

#### 7.3.7 Group ecb-analyse

— User Option: analyse-bucket-element-face

> Basic face for displaying elements of buckets in the ECB-analyse-buffer. This defines the basic face for the elements of category-buckets like Context, Prefix, Completions etc. in the ECB-analyse-buffer.

> Changes take first effect after finishing and reactivating ECB!

— User Option: analyse-bucket-node-face

> Basic face for displaying a bucket-node in the ECB-analyse-buffer. This defines the basic face for the bucket-nodes like Context, Prefix, Completions etc. in the ECB-analyse-buffer.

> Changes take first effect after finishing and reactivating ECB!

— User Option: analyse-buffer-after-create-hook

> Local hook running after the creation of the analyse-buffer. Every function of this hook is called once without arguments direct after creating the analyse-buffer of ECB and it's local key-map. So for example a function could be added which performs calls of `local-set-key` to define new key-bindings only for the analyse-buffer of ECB.

— User Option: analyse-buffer-name

> Name of the ECB analyse buffer. Because it is not a normal buffer for editing you should enclose the name with stars, e.g. “*ECB Analyse*”.

> If it is necessary for you you can get emacs-lisp access to the buffer-object of the ECB-analyse-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!

— User Option: analyse-buffer-sync

> Synchronize the analyse buffer automatically with current edit buffer.

> If '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.

> Normally it's not necessary to exclude some major-modes because with not-semantic supported major-modes simply nothing happens. But maybe it can be helpful for certain situations...

> If the special value 'basic is set then ECB uses the setting of the option `ecb-basic-buffer-sync`.

> IMPORTANT NOTE: Every time the synchronization is done the hook `ecb-analyse-buffer-sync-hook` is evaluated.

— User Option: analyse-buffer-sync-delay

> Time Emacs must be idle before the analyse-buffer is synchronized. Synchronizing is done with the current source displayed in the edit window. If nil then there is no delay, means synchronization takes place immediately.

> CAUTION: With analysing a value not too small is strongly recommended because it can be very annoying if more or less after each typing the current context is analysed. If set to nil then *each* keyboard hit refreshes the analyse-buffer which will make ECB quite unusable!

> If the special value 'basic is set then ECB uses the setting of the option `ecb-basic-buffer-sync-delay`

— User Option: analyse-buffer-sync-hook

> ook run at the end of `ecb-analyse-buffer-sync`. See documentation of `ecb-analyse-buffer-sync` for conditions when synchronization takes place and so in turn these hooks are evaluated.

> Preconditions for such a hook:

> - Current buffer is the buffer of the currently selected edit-window.
> - The analyse-buffer is displayed in a visible window of the ecb-frame (so no check for visibilty of the analyse-buffer in the ecb-frame is necessary in a hook function)

> Postcondition for such a hook: Point must stay in the same edit-window as before evaluating the hook.

> Important note: If the option `ecb-analyse-buffer-sync` is not nil the function `ecb-analyse-buffer-sync` is running either every time Emacs is idle or even after every command (see `ecb-analyse-buffer-sync-delay`). So if the anaylse-buffer is displayed in a window of the ecb-frame (see preconditions above) 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!

— User Option: analyse-collapsed-buckets

> Buckets collapsed when displaying the current semantic analysis. The semantic analyse-modul offers several categories of analysis which are called buckets here. These are for example:

> Context: The current context, which is the current function/method, variable, class etc. (what exactly depends on the programming language) point is in. This means not the current function/method/variable/class-name point stand on but the current surrounding context. Example: If point stays somewhere within a defun-definition in emacs-lisp or within a java-method then this defun rsp. method is the context. In object oriented languages this can be the full hierachy, i.e. not only the current method, but the current method, the class of this method, the superclass of this class and so on!

> Arguments: The arguments of the context if the context is a function/method.

> Local Variables: All accessible and bound local variables visible at current point.

> Prefix: The currently parsed prefix, which is mostly the current identifier point stands on.

> Assignee: See the semantic user-manual

> Function: Current function-name point stands on.

> Argument #: When point is located within a function-call then this is the number of the argument point stands on.

> Completions: All possible completions for current prefix (see above). This is probably the most helpful bucket.

> If one of these categories/buckets are not needed per default then add the bucket-name (s.a.) to this option and ECB will per default collapse this bucket. So most needed buckets are better visible in the analyse-buffer.

— User Option: analyse-face

> Face used for highlighting current entry in the analyse buffer. If the face `ecb-default-highlight-face` is used then the display of all ECB-tree-buffers can be changed by modifying only the face `ecb-default-highlight-face`.

> Changes take first effect after finishing and reactivating ECB!

— User Option: analyse-fontified-buckets

> Buckets whose elements should be fontified as in the methods-buffer. If the name of a category/bucket is contained in this option then all elements of this bucket will be displayed as in the methods-buffer - at least if an element is a semantic-tag. This means if `ecb-font-lock-tags` is not nil these elements will be fontified and also displayed with an appropriate icon if possible. The default value does this only for the Context-bucket because for most of the other buckets this makes not really much sense.

> For available buckets see `ecb-analyse-collapsed-buckets`.

> For the faces used to display a bucket-node itself or bucket-elements not fontified see the options `ecb-analyse-bucket-node-face` rsp. `ecb-analyse-bucket-element-face`.

— User Option: analyse-gen-tag-info-fn

> Which info should be displayed for a tag of the analyse-buffer. If nil then the default information about a tag will be displayed. If a function then this function gets as argument the tag for which tag-information should be displayed. This function has to return a string which will be then display as tag-info. This string has to be fully formatted (e.g. must already include line-breaks if the tag-info should be displayed in several lines).

> See `ecb-analyse-show-tag-info-fn` how the tag-info is displayed.

— User Option: analyse-general-face

> Basic face for the ECB analyse buffer. This defines the basic face the whole history buffer should displayed with. If the face `ecb-default-general-face` is used then the display of all ECB-tree-buffers can be changed by modifying only the face `ecb-default-general-face`.

> Changes take first effect after finishing and reactivating ECB!

— User Option: analyse-show-node-info

> When to display which node-info in the history-buffer. Define which node info should displayed after moving the mouse over a node (or after a shift click onto the node) in the history-buffer.

> You can define “when” a node-info should be displayed: See `ecb-directories-show-node-info` for the possible choices.

> You can define what info should be displayed:

> - name: The full name of the node
> - full-info: All infos available to a node.

> Do NOT set this option directly via setq but use always customize!

— User Option: analyse-show-tag-info-fn

> How to display the tag-info for a tag of the analyse-buffer. The value of this option is a function which will be called with the info-string generated for the current tag of the analyse-buffer. This function must do all things necessary for displaying this info. When this function is called the window stored in `ecb-last-edit-window-with-point` is the selected window!

> ECB offers two builtin ways: Display the info in the echo-area (via the function `message`) or in a temp-buffer in the edit-area (via the function `ecb-analyse-show-tag-info-in-temp-buffer`). Default is echo-area-display.

> See also `ecb-analyse-gen-tag-info-fn`.