2.2 Basic Visuals

Speedbar has visual cues for indicating different types of data. These
cues are used consistently across the different speedbar modes to make
them easier to interpret.

At a high level, in File mode, there are directory buttons, sub
directory buttons, file buttons, tag buttons, and expansion buttons.
This makes it easy to use the mouse to navigate a directory tree, and
quickly view files, or a summary of those files.

The most basic visual effect used to distinguish between these button
types is color and mouse highlighting. Anything the mouse highlights
can be clicked on and is called a button (see Mouse Bindings).
Anything not highlighted by the mouse will not be clickable.

Text in speedbar consists of four different types of data. Knowing how
to read these textual elements will make it easier to navigate by
identifying the types of data available.

2.2.1 Groups

Groups summarize information in a single line, and provide a high level
view of more complex systems, like a directory tree, or manual chapters.

Groups appear at different indentation levels, and are prefixed with a
‘+’ in some sort of ‘box’. The group name will summarize the
information within it, and the expansion box will display that
information inline. In File mode, directories and files are ‘groups’
where the ‘+’ is surrounded by brackets like this:

<+> include
<-> src
[+] foo.c

In this example, we see both open and closed directories, in addition to
a file. The directories have a box consisting of angle brackets, and a
file uses square brackets.

In all modes, a group can be ‘edited’ by pressing RET, meaning a
file will be opened, or a directory explicitly opened in speedbar. A
group can be expanded or contracted using + or
-. See Basic Key Bindings.

Sometimes groups may have a ‘?’ in its indicator box. This means
that it is a group type, but there are no contents, or no known way of
extracting contents of that group.

When a group has been expanded, the indicator button changes from
‘+’ to ‘-’. This indicates that the contents are being shown.
Click the ‘-’ button to contract the group, or hide the contents
currently displayed.

2.2.1.1 Tags

Tags are the leaf nodes of the tree system. Tags are generally prefixed
with a simple character, such as ‘>’. Tags can only be jumped to using
RET or e.

2.2.1.2 Boolean Flags

Sometimes a group or tag is given a boolean flag. These flags appear as
extra text characters at the end of the line. File mode uses boolean
flags, such as a ‘*’ to indicate that a file has been checked out
of a versioning system.

2.2.1.3 Unadorned Text

Unadorned text generally starts in column 0, without any special symbols
prefixing them. In Buffers mode different buffer groups are prefixed
with a description of what the following buffers are (Files, scratch
buffers, and invisible buffers.)

Unadorned text will generally be colorless, and not clickable.

2.2.1.4 Color Cues

Each type of Group, item indicator, and label is given a different
color. The colors chosen are dependent on whether the background color
is light or dark.
Of important note is that the ‘current item’, which may be a buffer or
file name, is highlighted red, and underlined.

Colors can be customized from the group speedbar-faces. Some
modes, such as for Info, will use the Info colors instead of default
speedbar colors as an indication of what is currently being displayed.

The face naming convention mirrors the File display mode. Modes which
do not use files will attempt to use the same colors on analogous
entries.