A.2 Routine Information Sources
To maintain the most comprehensive information about all IDL
routines on a system, IDLWAVE collects data from many sources:
- It has a builtin list with information about the routines IDL
ships with. IDLWAVE 6.1 is distributed with a list of
4346 routines and object methods, reflecting IDL version
6.3. As of IDL v6.2, the routine info is distributed
directly with IDL in the form of an XML catalog which IDLWAVE scans.
Formerly, this list was created by scanning the IDL manuals to produce
the file idlw-rinfo.el.
- IDLWAVE scans all its buffers in the current Emacs session
for routine definitions. This is done automatically when routine
information or completion is first requested by the user. Each new
buffer and each buffer saved after making changes is also scanned. The
command C-c C-i (
idlwave-update-routine-info
) can be used
at any time to rescan all buffers.
- If you have an IDLWAVE-Shell running in the Emacs session, IDLWAVE will
query the shell for compiled routines and their arguments. This
happens automatically when routine information or completion is first
requested by the user. Each time an Emacs buffer is compiled with
C-c C-d C-c, the routine info for that file is queried. Though
rarely necessary, the command C-c C-i
(
idlwave-update-routine-info
) can be used to explicitly update
the shell routine data.
- Many popular libraries are distributed with routine information already
scanned into library catalogs (see Library Catalogs). These
per-directory catalog files can also be built by the user with the
supplied idlwave_catalog tool. They are automatically discovered
by IDLWAVE.
- IDLWAVE can scan selected directories of source files and store the
result in a single user catalog file which will be
automatically loaded just like idlw-rinfo.el. See User Catalog, for information on how to scan files in this way.
Loading all the routine and catalog information can be a time consuming
process, especially over slow networks. Depending on the system and
network configuration it could take up to 30 seconds (though locally on
fast systems is usually only a few seconds). In order to minimize the
wait time upon your first completion or routine info command in a
session, IDLWAVE uses Emacs idle time to do the initialization in six
steps, yielding to user input in between. If this gets into your way,
set the variable idlwave-init-rinfo-when-idle-after
to 0 (zero).
The more routines documented in library and user catalogs, the slower
the loading will be, so reducing this number can help alleviate any long
load times.
- User Option: idlwave-init-rinfo-when-idle-after (
10
)
Seconds of idle time before routine info is automatically initialized.
- User Option: idlwave-scan-all-buffers-for-routine-info (
t
)
Non-nil
means scan all buffers for IDL programs when updating
info.
- User Option: idlwave-query-shell-for-routine-info (
t
)
Non-nil
means query the shell for info about compiled routines.
- User Option: idlwave-auto-routine-info-updates
Controls under what circumstances routine info is updated automatically.