[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3. File Mode

File mode displays a summary of your current directory. You can display files in the attached frame, or summarize the tags found in files. You can even see if a file is checked out of a version control system, or has some associated object file.

Advanced behavior, like copying and renaming files, is also provided.

3.1 Directory Display  What the display means.
3.2 Hidden Files  How to display hidden files.
3.3 File Key Bindings  Performing file operations.

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

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:

<+> 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 section 6.3 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 section 6.2 Tag Hierarchy Methods.

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.2 Hidden Files

On GNU and Unix systems, a hidden file is a file whose name starts with a period. They are hidden from a regular directory listing because the user is not generally interested in them.

In speedbar, a hidden file is a file which isn't very interesting and might prove distracting to the user. Any uninteresting files are removed from the File display. There are two levels of uninterest in speedbar. The first level of uninterest are files which have no expansion method, or way of extracting tags. You can define which files are interesting with speedbar-supported-extension-expressions. The second level is any file that matches the same pattern used for completion in find-file. This is derived from the variable completion-ignored-extensions. This filter will override the supported extensions, so beif you add something to be supported, and it doesn't appear, check for this.

You can toggle the display of uninteresting files from the toggle menu item `Show All Files'. This will display all level one hidden files. These files will be shown with a `?' indicator. Level 2 hidden files will still not be shown.

Object files fall into the category of level 2 hidden files. You can determine their presence by the `#' and `!' file indicators. See section 3.1 Directory Display.

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.3 File Key Bindings

File mode has key bindings permitting different file system operations such as copy or rename. These commands all operate on the current file. In this case, the current file is the file at point, or clicked on when pulling up the menu.

Move the entire speedbar display up one directory.
Display information in the minibuffer about this line. This is the same information shown when navigating with n and p, or moving the mouse over an item.
Byte compile the Emacs Lisp file on this line.
Load the Emacs Lisp file on this line. If a `.elc' file exists, optionally load that.
Copy the current file to some other location.
Rename the current file, possibly moving it to some other location.
Delete the current file.
Delete the current file's object file. Use the symbols `#' and `!' to determine if there is an object file available.

One menu item toggles the display of all available files. By default, only files which Emacs understands, and knows how to convert into a tag list, are shown. By showing all files, additional files such as text files are also displayed, but they are prefixed with the `[?]' symbol. This means that it is a file, but Emacs doesn't know how to expand it.

[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

This document was generated by XEmacs Webmaster on October, 2 2007 using texi2html