Previous: Stealthy background tasks, Up: Usage of ECB


6.14 Interactive ECB commands

ECB offers a lot of interactive commands. Some of these commands prompt the user in the minibuffer if called with a prefix argument.

Example: If ecb-clear-history is called with a prefix argument then you will be prompted in the minibuffer with:

   Clear from history: [all, not-existing-buffers, existing-buffers]

You can choose one of the options enclosed in brackets with TAB-completion; hitting RET direct after the prompt chooses auto. the first offered option (in the example above “all”).

Please note: The following interactive commands of ECB are listed without the prefix “ecb-” (e.g. the command ecb-activate is listed with name “activate”). This has been done for a better readable command index. See Command Index.

— Command: activate

Activates ECB and creates the special buffers for the choosen layout. For the layout see ecb-layout-name. This function always raises the ECB-frame if called from another frame. This is the same as calling ecb-minor-mode with a positive argument.

— Command: add-all-buffers-to-history

Add all current file-buffers to the history-buffer of ECB. Dependend on the values of ecb-history-make-buckets and ecb-history-sort-method afterwards the history is bucketized or not and sorted either by name or by extension (if bucketized then the sorting is only within each bucket). If ecb-history-sort-method is nil the most recently used buffers are on the top of the history and the seldom used buffers at the bottom (again: when bucketized then this holds only within each bucket).

— Command: analyse-buffer-sync

Synchronize the analyse buffer with the current buffer and point. This means in fact display the current analysis for current point.

— Command: change-layout &optional preselect-type

Select a layout-name from all current available layouts (TAB-completion is offered) and change the layout to the selected layout-name. If optional argument PRESELECT-TYPE is not nil then you can preselect a layout-type \(TAB-completion is offered too) and then you will be asked only for layouts of that preselected type. Note: This function works by changing the option ecb-layout-name but only for current Emacs-session.

— Command: clear-history

Clears the history-buffer.

— Command: customize

Open a customize-buffer for all customize-groups of ECB.

— Command: customize-most-important

Open a customize-buffer for the most important options of ECB.

— Command: create-new-layout

Start process for interactively creating a new ECB-layout (see Creating a new ECB-layout).

— Command: cycle-maximized-ecb-buffers

Cycles through all ecb-buffers of current layout by maximizing exactly one of the ecb-windows after every cycle-step.

— Command: cycle-through-compilation-buffers &optional choose-buffer

Cycle through all compilation buffers currently open and display them within the compilation window ecb-compile-window. If the currently opened buffer within the compilation window is not a compilation buffer, we jump to the first compilation buffer. If not we try to loop through all compilation buffers. If we hit the end we go back to the beginning.

If CHOOSE-BUFFER is not nil then the user will be prompted for the compilation-buffer to switch to.

— Command: deactivate

Deactivates the ECB and kills all ECB buffers and windows.

— Command: delete-new-layout

Select a layout-name for a layout created by ecb-create-new-layout and delete this layout. This means the layout-definition is removed from the file ecb-create-layout-file and the layout-function and associated aliases are unbound.

— Command: display-news-for-upgrade &optional FULL-NEWS

Display the most important NEWS after an ECB-upgrade. If you call this function but no ECB-upgrade has been performed before starting ECB then nothing is display unless FULL-NEWS is not nil.

If FULL-NEWS is not nil then the NEWS-file is displayed in another window.

— Command: display-upgraded-options

Display a information-buffer which options have been upgraded or reset. Offers two buttons where the user can decide if the upgraded options should also being saved by ECB for future settings or if the buffer should be killed.

If saving is possible this command display where the options would be saved. It is that file Emacs uses to save customize-settings. This file is “computed” from the settings in custom-file and user-init-file (see the documentation of these variables).

ECB automatically makes a backup-file of that file which will be modified by storing the upgraded rsp. renamed ECB-options. This backup file gets a unique name by adding a suffix “.before_ecb_<version>” to the name of the modified file. If such a file already exists ECB adds a unique number to the end of the filename to make the filename unique. This is a safety mechanism if something fails during storing the upgraded options, so you never lose the contents of your customization-file!

— Command: expand-methods-nodes &optional force-all

Set the expand level of the nodes in the ECB-methods-buffer.

This command asks in the minibuffer for an indentation level LEVEL. With this LEVEL you can precisely specify which level of nodes should be expanded. LEVEL means the indentation-level of the nodes.

A LEVEL value X means that all nodes with an indentation-level <= X are expanded and all other are collapsed. A negative LEVEL value means all visible nodes are collapsed.

Nodes which are not indented have indentation-level 0!

Which node-types are expanded (rsp. collapsed) by this command depends on the options ecb-methods-nodes-expand-spec and ecb-methods-nodes-collapse-spec! With optional argument FORCE-ALL all tags will be expanded/collapsed regardless of the values of these options.

Examples:

Note 1: This command switches off auto. expanding of the method-buffer if ecb-expand-methods-switch-off-auto-expand is not nil. But it can be switched on again quickly with ecb-toggle-auto-expand-tag-tree or [C-c . a].

Note 2: All this is only valid for file-types parsed by semantic. For other file types which are parsed by imenu or etags (see ecb-process-non-semantic-files) FORCE-ALL is always true!

— Command: dump-semantic-toplevel

Dump the current semantic-tags in special buffer and display them.

— Command: eshell-current-buffer-sync

Synchronize the eshell with the directory of current source-buffer. This is only done if the eshell is currently visible in the compile-window of ECB and if either this function is called interactively or ecb-eshell-buffer-sync is not nil.

— Command: eshell-recenter

Recenter the eshell window so that the prompt is at the buffer-end.

— Command: expand-directory-nodes

Set the expand level of the nodes in the ECB-directories-buffer. For argument LEVEL see ecb-expand-methods-nodes.

Be aware that for deep structured paths and a lot of source-paths this command can last a long time - depending on machine- and disk-performance.

— Command: goto-window-analyse

Make the ECB-analyse window the current window.

— Command: goto-window-compilation

Goto the ecb compilation window ecb-compile-window.

— Command: goto-window-directories

Make the ECB-directories window the current window. If ecb-use-speedbar-instead-native-tree-buffer is dir then goto to the speedbar-window.

— Command: goto-window-ecb-by-smart-selection

selects a special ecb-browsing-window by smart selection. The command offers a list of all special ecb-windows by buffer-name. Selecting the buffer-name will select the displaying window. Which special ecb-windows are offered depends on the currently selected window: If not a special ecb-window is the currently selected-window then all edit-windows are offered in canonical order (means from top-left to button-right). If an ecb-window is the currently selected-window then all other(!) special ecb-windows are offered, beginning with the next special ecb-window to the current ecb-window (the following special ecb-windows also in canonical order). If there is only one senseful destination-ecb-window then this window is immediately selected, without confirmation (e.g.: There are two special ecb-windows and point stays in one of them. Or there is only one ecb-window and point stays either in one of the edit-windows or in the compile-window).

If optional argument USE-IMMEDIATE-COMPLETION is nil then all possible destination-windows are displayed in the message-area and only hitting TAB offers completion. If USE-IMMEDIATE-COMPLETION is not nil then all possible destinations are immediately shown in a completion-buffer.

— Command: goto-window-edit-by-smart-selection

Selects an edit-window by smart selection. The command offers a list of all edit-windows by buffer-name. Selecting the buffer-name will select the displaying window. Which edit-windows are offered depends on the currently selected window: If not an edit-window is the currently selected-window then all edit-windows are offered in canonical order (means from top-left to button-right). If an edit-window is the currently selected-window then all other(!) edit-windows are offered, beginning with the next edit-window to the current edit-window (the following edit-windows also in canonical order). If there is only one senseful destination-edit-window then this window is immediately selected, without confirmation (e.g.: There are two edit-windows and point stays in one of them. Or there is only one edit-window and point stays either in one of the special ecb-windows or in the compile-window).

If optional argument USE-IMMEDIATE-COMPLETION is nil then all possible destination-windows are displayed in the message-area and only hitting TAB offers completion. If USE-IMMEDIATE-COMPLETION is not nil then all possible destinations are immediately shown in a completion-buffer.

— Command: goto-window-edit1

Make the (first) edit-window window the current window.

— Command: goto-window-edit2

Make the second edit-window (if available) window the current window.

— Command: goto-window-edit-last

Make the last selected edit-window window the current window. This is the same as if ecb-mouse-click-destination is set to last-point.

— Command: goto-window-history

Make the ECB-history window the current window.

— Command: goto-window-methods

Make the ECB-methods window the current window. If ecb-use-speedbar-instead-native-tree-buffer is method then goto to the speedbar-window.

— Command: goto-window-sources

Make the ECB-sources window the current window. If ecb-use-speedbar-instead-native-tree-buffer is source then goto to the speedbar-window.

— Command: history-filter

Apply a filter to the history-buffer to reduce the number of entries. So you get a better overlooking. There are three choices:

— Command: jde-display-class-at-point

Display in the ECB-methods-buffer the contents (methods, attributes etc...) of the class which contains the definition of the “thing” under point (this can be a variable-name, class-name, method-name, attribute-name). This function needs the same requirements to work as the method-completion feature of JDEE (see jde-complete)!. The source-file is searched first in jde-sourcepath, then in jde-global-classpath, then in $CLASSPATH, then in current-directory.

Works only for classes where the source-code (i.e. the *.java-file) is available.

— Command: maximize-window-analyse

Maximize the ECB-analyse-window. I.e. delete all other ECB-windows, so only one ECB-window and the edit-window(s) are visible (and maybe a compile-window). Works also if the ECB-analyse-window is not visible in current layout.

— Command: maximize-window-directories

Maximize the ECB-directories-window, i.e. delete all other ECB-windows, so only one ECB-window and the edit-window(s) are visible (and maybe a compile-window). Works also if the ECB-directories-window is not visible in current layout.

— Command: maximize-window-sources

Maximize the ECB-sources-window, i.e. delete all other ECB-windows, so only one ECB-window and the edit-window(s) are visible (and maybe a compile-window). Works also if the ECB-sources-window is not visible in current layout.

— Command: maximize-window-methods

Maximize the ECB-methods-window, i.e. delete all other ECB-windows, so only one ECB-window and the edit-window(s) are visible (and maybe a compile-window). Works also if the ECB-methods-window is not visible in current layout.

— Command: maximize-window-history

Maximize the ECB-history-window, i.e. delete all other ECB-windows, so only one ECB-window and the edit-window(s) are visible (and maybe a compile-window). Works also if the ECB-history-window is not visible in current layout.

— Command: maximize-window-speedbar

Maximize the ECB-speedbar-window, i.e. delete all other ECB-windows, so only one ECB-window and the edit-window(s) are visible (and maybe a compile-window). Does nothing if the speedbar-window is not visible within the ECB-frame.

— Command: methods-filter

Apply a filter to the Methods-buffer to reduce the number of entries. So you get a better overlooking. There are six choices:

The protection-, current-type- and the tag-class-filter are only available for semantic-supported sources.

Be aware that the tag-list specified by the option ecb-show-tags is the basis of all filters, i.e. tags which are excluded by that option will never be shown regardless of the filter type here!

All tags which match the applied filter(s) will be displayed in the Methods-buffer.

If called with a prefix-argument or when optional arg INVERSE is not nil then an inverse filter is applied to the Methods-buffer, i.e. all tags which do NOT match the choosen filter will be displayed in the Methods-buffer!

Per default the choosen filter will be applied on top of already existing filters. This means that filters applied before are combined with the new filter. This behavior can changed via the option ecb-methods-filter-replace-existing. But regardless of the setting in ecb-methods-filter-replace-existing applying one of the not-inverse filters protection, tag-class or current-type always replaces exactly already existing filters of that type. On the other hand applying more than one inverse tag-class- or protection-filter can make sense.

Such a filter is only applied to the current source-buffer, i.e. each source-buffer can have its own tag-filters.

The current active filter will be displayed in the modeline of the Methods-buffer [regexp, prot (= protection), tag-class, function (= filter-function)]. If an inverse filter has been applied then this is signalized by a preceding caret ^. If currently more than 1 filter is applied then always the top-most filter is displayed in the modeline but the fact of more than 1 filter is visualized by the number of the filters - included in parens. You can see all currently applied filters by moving the mouse over the filter-string in modeline of the Methods-buffer: They will displayed as help-echo.

See the option ecb-default-tag-filter if you search for automatically applied default-tag-filters.

— Command: methods-filter-current-type

Display in the Methods-buffer only the current type and its members. For further details see ecb-methods-filter.

— Command: methods-filter-delete-last

Remove the most recent filter from the Methods-buffer. For further details see ecb-methods-filter.

— Command: methods-filter-function &optional inverse

Filter the methods-buffer by a function. If INVERSE is not nil (called with a prefix arg) then an inverse filter is applied. For further details see ecb-methods-filter.

— Command: methods-filter-nofilter

Remove any filter from the Methods-buffer. For further details see ecb-methods-filter.

— Command: methods-filter-protection &optional inverse

Filter the methods-buffer by protection. If INVERSE is not nil (called with a prefix arg) then an inverse filter is applied. For further details see ecb-methods-filter.

— Command: methods-filter-regexp &optional inverse

Filter the methods-buffer by a regexp. If INVERSE is not nil (called with a prefix arg) then an inverse filter is applied. For further details see ecb-methods-filter.

— Command: methods-filter-tagclass &optional inverse

Filter the methods-buffer by tag-class. If INVERSE is not nil (called with a prefix arg) then an inverse filter is applied. For further details see ecb-methods-filter.

— Command: minor-mode &optional arg

Toggle ECB minor mode. With prefix argument ARG, turn on if positive, otherwise off. Return non-nil if the minor mode is enabled.

— Command: nav-goto-previous

Go backward in the navigation history-list, see Back/forward navigation.

— Command: nav-goto-next

Go forward in the navigation history-list, see Back/forward navigation.

— Command: rebuild-methods-buffer

Updates the methods buffer with the current buffer after deleting the complete previous parser-information, means no semantic-cache is used! Point must stay in an edit-window otherwise nothing is done. This method is merely needed for semantic parsed buffers if semantic parses not the whole buffer because it reaches a not parse-able code or for buffers not supported by semantic but by imenu or etags.

Examples when a call to this function can be necessary:

For non-semantic-sources supported by etags the option ecb-auto-save-before-etags-methods-rebuild is checked before rescanning the source-buffer and rebuilding the methods-buffer.

If point is in one of the ecb-windows or in the compile-window then this command rebuids the methods-buffer with the contents of the source-buffer the last selected edit-window.

— Command: redraw-layout &optional ARG

Redraw the ECB screen.

Do not call this command from elisp-program but only interactively!

Called without a prefix-argument the state of the ECB-frame-layout will preserved. This means:

If called with ONE prefix-argument ([C-u]) then the layout will be drawn with all ECB-windows and also with a visible compile-window (when ecb-compile-window-height is not nil). The splitting-state of the edit-area will be preserved.

If called with TWO prefix-arguments (i.e. hitting [C-u] twice: ([C-u] [C-u]) then an emergency-redraw will be performed. This means the same as if called with one prefix-argument (s.a.) but the splitting-state of the edit-area will NOT be preserved but all edit-windows besides the current one will be deleted. Use this only if there are some anomalies after standard redraws!

If the variable ecb-redraw-layout-quickly is not nil then the redraw is done by the ecb-redraw-layout-quickly function, otherwise by ecb-redraw-layout-full.

Please not: It's strongly recommended to use the quick redraw only if you have really slow machines where a full redraw takes several seconds because the quick redraw is not really safe and has some annoying drawbacks! On normal machines the full redraw should be done in << 1s so there should be no need for the quick version!

— Command: restore-default-window-sizes

Resets the sizes of the ECB windows to their default values.

— Command: restore-window-sizes

Sets the sizes of the ECB windows to their stored values. See option ecb-layout-window-sizes and command ecb-store-window-sizes.

— Command: select-ecb-frame

Selects the ecb-frame if ECB is activated - otherwise reports an error.

— Command: show-help &optional format

Shows the online help of ECB either in Info or in HTML format depending on the value of ecb-show-help-format. If called with prefix argument, i.e. if FORMAT is not nil then the user is prompted to choose the format of the help (Info or HTML). If an error about not finding the needed help-file occurs please take a look at the options ecb-help-info-start-file and ecb-help-html-start-file!

Note: If you got ECB as a standard XEmacs-package maybe the HTML-online-documentation is not included.

— Command: show-layout-help

Select a name of a layout and shows the documentation of the associated layout-function. At least for the built-in layouts the documentation contains a picture of the outline of the chosen layout.

— Command: show-tip-of-the-day

Show tip of the day if ecb-tip-of-the-day is not nil or if called interactively.

— Command: sources-filter

Apply a filter to the sources-buffer to reduce the number of entries. So you get a better overlooking. There are three choices:

Such a filter is only applied to the current selected directory, i.e. each directory has its own filtered sources-buffer.

— Command: store-window-sizes &optional FIX

Stores the sizes of the ECB windows for the current layout. The size of the ECB windows will be set to their stored values when ecb-redraw-layout or ecb-restore-window-sizes is called. To reset the window sizes to their default values call ecb-restore-default-window-sizes. Please read also the documentation of ecb-layout-window-sizes!

The windows sizes are stored per default as fractions of current frame-width and -height of the ecb-frame, so the stored values will “work” for other frame sizes too. If a permanent compile-window is visible then ECB will tell you that window-sizes should be stored with hidden compile-window and ask you if you want proceed; if you proceed then the window-heights will be stored as fractions of current (frame-height minus current visible compile-window-height) so you should ensure that the current compile-window has its standard-height as specified in ecb-compile-window-height!. If FIX is not nil (means called with a prefix argument) then always the fixed values of current width and height are stored!

— Command: submit-problem-report

Submit a problem report for the ECB to the ECB mailing-list. This command generates in the edit-window a problem-report which contains already the current values of all ECB options, the current backtrace-buffer if there is any and the current message-buffer. You will be asked for a problem-report subject and then you must insert a description of the problem. Please describe the problem as detailed as possible!

— Command: toggle-auto-expand-tag-tree &optional arg

Toggle auto expanding of the ECB-methods-buffer. With prefix argument ARG, make switch on if positive, otherwise switch off. If the effect is that auto-expanding is switched off then the current value of ecb-auto-expand-tag-tree is saved so it can be used for the next switch on by this command.

— Command: toggle-compile-window &optional arg

Toggle the visibility of the compile-window of ECB. With prefix argument ARG, make visible if positive, otherwise invisible. The height of the compile-window is always the current value of ecb-compile-window-height! If called and ecb-compile-window-height is nil then ECB asks for the height of the compile-window, sets this height as new value of ecb-compile-window-height and displays the compile-window (so if you have called this command by mistake and you do not want a compile-window you have to quit with <C-g>).

— Command: toggle-compile-window-height &optional arg

Toggle whether the ecb-compile-window is enlarged or not. If ARG > 0 then shrink or enlarge the the compile-window according to the value of ecb-enlarged-compilation-window-max-height. But never shrink below the value of ecb-compile-window-height. If ARG <= 0 then shrink ecb-compile-window to ecb-compile-window-height and if ARG is nil then toggle the enlarge-state.

— Command: toggle-ecb-windows &optional arg

Toggle visibility of the ECB-windows. With prefix argument ARG, make visible if positive, otherwise invisible. This has nothing to do with (de)activating ECB but only affects the visibility of the ECB windows. ECB minor mode remains active!

— Command: toggle-layout &optional last-one

Toggles between the layouts defined in ecb-toggle-layout-sequence (See also option ecb-show-sources-in-directories-buffer). Note: This function works by changing the options ecb-layout-name but only for current Emacs-session.

If optional argument LAST-ONE is not nil (e.g. called with a prefix-arg) then always the last selected layout was choosen regardless of the setting in ecb-toggle-layout-sequence. The last selected layout is always that layout which was current direct before the most recent layout-switch. So now a user can switch to another layout via `ecb-change-layout' and always come back to his previous layout via [C-u] ecb-toggle-layout.

— Command: toggle-scroll-other-window-scrolls-compile &optional ARG

Toggle the state of ecb-scroll-other-window-scrolls-compile-window. With prefix argument ARG, set it to t, otherwise to nil. For all details about the scroll-behavior of scroll-other-window see the advice documentation of other-window-for-scrolling.

— Command: update-directories-buffer

Updates the ECB directories buffer.

— Command: upgrade-options

Check for all ECB-options if their current value is compatible to the defined type. If not upgrade it to the new type or reset it to the default-value of current ECB. Try also to upgrade renamed options. Displays all upgraded or reset options with their old (before the upgrade/reset) and new values.

— Command: window-sync

ynchronizes all special ECB-buffers with current buffer. Depending on the contents of current buffer this command performs different synchronizing tasks but only if ECB is active and point stays in an edit-window.

In addition to this the hooks in ecb-basic-buffer-sync-hook run.

If optional argument ONLY-BASIC-WINDOWS is not nil then only the basic tree-buffer directories, sources, methods and history are synchronized. Otherwise all registered special ecb-buffers are synchronized too.

See ECB-window synchronizing.

Most of these functions are also available via the menu “ECB” and also via the ECB key-map with prefix C-c . (see ecb-minor-mode for a complete list of the keybindings).