Stealthy background tasks - ECB - the Emacs Code Browser
Description: ECB - the Emacs Code Browser

Next: Interactive ECB commands, Previous: ECB-window synchronizing, Up: Usage of ECB

### 6.13 Stealthy background-tasks of ECB

ECB performs some tasks stealthily in the background and also interruptable by the user because these tasks can be time-consuming and could otherwise block ECB. Currently the following tasks are performed stealthily and in the background by ECB:

Prescann directories for emptyness
  Prescann directories and display them as empty or not-empty in the directories-buffer. See the documentation of the option `ecb-prescan-directories-for-emptyness` for a description.
File is read only
  Check if sourcefile-items of the directories- or sources-buffer are read-only or not. See documentation of the option `ecb-sources-perform-read-only-check`.
Version-control-state
  Checks the version-control-state of files in directories which are managed by a VC-backend. See the option `ecb-vc-enable-support`.

All of these tasks (e.g. checking if a directory is empty or not) perform a certain action for all directories or sources displayed in the current visible tree-buffers of ECB. Normally there should be no annoying delay for the user because each of these tasks will be only performed when Emacs is idle and will be interrupted immediatelly when a user hits a key or clicks the mouse but especially for remote-directories one single action (e.g. checking if a certain directory is empty or checking the VC-state of a sourcefile in such a remote directory) can be very time-consuming and such a single action is not interruptable (an interrupt can only occur between the single-actions for two directories or sources) For a further discussion how to deal best with remote directories see Remote directories.!

ECB offers for all stealthy tasks three steps of activation:

- `t`: Switch on this feature.
- `unless-remote`: Switch on this feature but not for remote directories. The term “remote” means here directories which are used via tramp, ange-ftp or efs. So mounted directories are counted not as remote directories here even if such a directory is maybe hosted on a remote machine. But normally only directories in a LAN are mounted so there should be no performance-problems with such mounted directories.
- `nil`: Switch off this feature completely.

In combination with the option `ecb-stealthy-tasks-delay` these three choices already allow adapting the stealthy tasks to most needs. But to offer finest granularity for which directories a certain stealthy task should be switched on and for which not ECB offers for every stealthy task an additional option which allows a finer adjustment:

- Prescanning directories for emptyness: `ecb-prescan-directories-exclude-regexps`.
- Checking the read-only-state of a sourcefile: `ecb-read-only-check-exclude-regexps`
- Checking the VC-state of sourcefiles: `ecb-vc-directory-exclude-regexps`

These options take only effect when the related task is not completely switched off. If this is the case they allow excluding certain directories (or the sources of directories) from being processed by a certain stealthy task.