idlwave: User Catalog
A.3.2 User Catalog
------------------
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:
• The scan is internal to Emacs, so you don’t need a working Perl
installation, as you do for library catalogs.
• Can be used to scan directories for which the user has no write
privileges.
• Easy widget-based path selection.
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 the variable
‘idlwave-library-path’, and the location of the IDL directory (the value
of the ‘!DIR’ system variable) in the variable
‘idlwave-system-directory’, like this(1):
(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 job(2).
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
(Library Catalogs).
-- User Option: idlwave-special-lib-alist
Alist of regular expressions matching special library directories
for labeling in routine-info display.
---------- Footnotes ----------
(1) The initial ‘+’ leads to recursive expansion of the path, just
like in IDL
(2) Unix systems only, I think.