We have already used the routine info display in the first part of this tutorial. This was the invoked using C-c ?, and displays information about the IDL routine near the cursor position. Wouldn't it be nice to have the same kind of information available for your own routines and for the huge amount of code in major libraries like JHUAPL or the IDL-Astro library? In many cases, you may already have this information. Files named .idlwave_catalog in library directories contain scanned information on the routines in that directory; many popular libraries ship with these “library catalogs” pre-scanned. Users can scan their own routines in one of two ways: either using the supplied tool to scan directories and build their own .idlwave_catalog files, or using the built-in method to create a single “user catalog”, which we'll show here. See Catalogs, for more information on choosing which method to use.
To build a user catalog, select
Routine Info/Select Catalog
Directories from the IDLWAVE entry in the menu bar. If necessary,
start the shell first with C-c C-s (see Starting the Shell).
IDLWAVE will find out about the IDL
!PATH variable and offer a
list of directories on the path. Simply select them all (or whichever
you want; directories with existing library catalogs will not be
selected by default) and click on the ‘Scan&Save’ button. Then
go for a cup of coffee while IDLWAVE collects information for each and
every IDL routine on your search path. All this information is
written to the file ~/.emacs.d/idlwave/idlusercat.el
and will from now on automatically load whenever you use
IDLWAVE. You may find it necessary to rebuild the catalog on occasion
as your local libraries change, or build a library catalog for those
directories instead. Invoke routine info (C-c ?) or completion
(M-<TAB>) on any routine or partial routine name you know to
be located in the library. E.g., if you have scanned the IDL-Astro
expands to `readfits('. Then try
and you get:
Usage: Result = READFITS(filename, header, heap) ...
I hope you made it until here. Now you are set to work with IDLWAVE.
On the way you will want to change other things, and to learn more
about the possibilities not discussed in this short tutorial. Read
the manual, look at the documentation strings of interesting variables
(with C-h v idlwave<-variable-name> <RET>) and ask the
remaining questions on the newsgroup