The user catalog is the old routine catalog system. It is produced within Emacs, and stored in a single file in the user's home directory (.emacs.d/idlwave/idlusercat.el by default). Although library catalogs are more flexible, there may be reasons to prefer a user catalog instead, including:
However, no routine info is available in the user catalog by default; the user must actively complete a scan. In addition, this type of catalog is all or nothing: if a single routine changes, the entire catalog must be rescanned to update it. Creating the user catalog is also much slower than scanning library catalogs.
You can scan any of the directories on the currently known path. Under
Windows, you need to specify the IDL search path in
idlwave-library-path, and the location of the IDL
directory (the value of the
!DIR system variable) in the variable
idlwave-system-directory, like this1:
(setq idlwave-library-path '("+c:/RSI/IDL56/lib/" "+c:/user/me/idllibs")) (setq idlwave-system-directory "c:/RSI/IDL56/")
Under GNU/Linux and UNIX, these values will be automatically gathered from the IDLWAVE shell, if run.
The command M-x idlwave-create-user-catalog-file (or the menu item ‘IDLWAVE->Routine Info->Select Catalog Directories’) can then be used to create a user catalog. It brings up a widget in which you can select some or all directories on the search path. Directories which already contain a library catalog are marked with ‘[LIB]’, and need not be scanned (although there is no harm if you do so, other than the additional memory used for the duplication).
After selecting directories, click on the ‘[Scan & Save]’
button in the widget to scan all files in the selected directories and
write out the resulting routine information. In order to update the
library information using the directory selection, call the command
idlwave-update-routine-info with a double prefix argument:
C-u C-u C-c C-i. This will rescan files in the previously
selected directories, write an updated version of the user catalog file
and rebuild IDLWAVE's internal lists. If you give three prefix
arguments C-u C-u C-u C-c C-i, updating will be done with a
background job2. You can continue
to work, and the library catalog will be re-read when it is ready. If
you find you need to update the user catalog often, you should consider
building a library catalog for your routines instead (see Library Catalogs).
Alist of regular expressions matching special library directories for labeling in routine-info display.