3.1 Directory Display

There are three major sections in the display. The first line or two is the root directory speedbar is currently viewing. You can jump to one of the parent directories by clicking on the name of the directory you wish to jump to.

Next, directories are listed. A directory starts with the group indicator button ‘<+>’. Clicking the directory name makes speedbar load that directory as the root directory for its display. Clicking the ‘<+>’ button will list all directories and files beneath.

Next, files are listed. Files start with the group indicator ‘[+]’ or ‘[?]’. You can jump to a file in the attached frame by clicking on the file name. You can expand a file and look at its tags by clicking on the ‘[+]’ symbol near the file name.

A typical session might look like this:

~/lisp/
<+> checkdoc
<+> eieio
<-> speedbar
 [+] Makefile
 [+] rpm.el #
 [+] sb-gud.el #
 [+] sb-info.el #
 [+] sb-rmail.el #
 [+] sb-w3.el
 [-] speedbar.el *!
  {+} Types
  {+} Variables
  {+} def (group)
  {+} speedbar-
 [+] speedbar.texi *
<+> testme
[+] align.el
[+] autoconf.el

In this example, you can see several directories. The directory speedbar has been opened inline. Inside the directory speedbar, the file speedbar.el has its tags exposed. These tags are extensive, and they are summarized into tag groups.

Files get additional boolean flags associated with them. Valid flags are:

*

This file has been checked out of a version control system. See Version Control.

#

This file has an up to date object file associated with it. The variable speedbar-obj-alist defines how speedbar determines this value.

!

This file has an out of date object file associated with it.

A Tag group is prefixed with the symbol ‘{+}’. Clicking this symbol will show all symbols that have been organized into that group. Different types of files have unique tagging methods as defined by their major mode. Tags are generated with either the imenu package, or through the etags interface.

Tag groups are defined in multiple ways which make it easier to find the tag you are looking for. Imenu keywords explicitly create groups, and speedbar will automatically create groups if tag lists are too long.

In our example, Imenu created the groups ‘Types’ and ‘Variables’. All remaining top-level symbols are then regrouped based on the variable speedbar-tag-hierarchy-method. The subgroups ‘def’ and ‘speedbar-’ are groupings where the first few characters of the given symbols are specified in the group name. Some group names may say something like ‘speedbar-t to speedbar-v’, indicating that all symbols which alphabetically fall between those categories are included in that sub-group. See Tag Hierarchy Methods.