idlwave: Library Catalogs
A.3.1 Library Catalogs
----------------------
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:
idlwave_catalog MyLib
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
‘idlwave-update-routine-info’: ‘C-u C-c C-i’.
-- User Option: idlwave-use-library-catalogs (‘t’)
Whether to search for and load library catalogs. Disable if load
performance is a problem and/or the catalogs are not needed.