Library catalogs consist of files named .idlwave_catalog stored
in directories containing
.pro routine files. They are
discovered on the IDL search path and loaded automatically when routine
information is read. Each catalog file documents the routines found in
that directory—one catalog per directory. Every catalog has a
library name associated with it (e.g., AstroLib). This name will
be shown briefly when the catalog is found, and in the routine info of
routines it documents.
Many popular libraries of routines are shipped with IDLWAVE catalog files by default, and so will be automatically discovered. Library catalogs are scanned externally to Emacs using a tool provided with IDLWAVE. Each catalog can be re-scanned independently of any other. Catalogs can easily be made available system-wide with a common source repository, providing uniform routine information, and lifting the burden of scanning from the user (who may not even know they're using a scanned catalog). Since all catalogs are independent, they can be re-scanned automatically to gather updates, e.g., in a cron job. Scanning is much faster than with the built-in user catalog method. One minor disadvantage: the entire IDL search path is scanned for catalog files every time IDLWAVE starts up, which might be slow if accessing IDL routines over a slow network.
A Perl tool to create library catalogs is distributed with IDLWAVE:
idlwave_catalog. It can be called quite simply:
This will scan all directories recursively beneath the current and populate them with .idlwave_catalog files, tagging the routines found there with the name library “MyLib”. The full usage information:
Usage: idlwave_catalog [-l] [-v] [-d] [-s] [-f] [-h] libname libname - Unique name of the catalog (4 or more alphanumeric characters). -l - Scan local directory only, otherwise recursively catalog all directories at or beneath this one. -v - Print verbose information. -d - Instead of scanning, delete all .idlwave_catalog files here or below. -s - Be silent. -f - Force overwriting any catalogs found with a different library name. -h - Print this usage.
To re-load the library catalogs on the IDL path, force a system routine
info update using a single prefix to
C-u C-c C-i.