idlwave: Routine Information Sources

 
 A.2 Routine Information Sources
 ===============================
 
 To maintain the most comprehensive information about all IDL routines on
 a system, IDLWAVE collects data from many sources:
 
   1. 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’.
 
   2. 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.
 
   3. 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.
 
   4. Many popular libraries are distributed with routine information
      already scanned into _library catalogs_ (SeeLibrary 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.
 
   5. 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’.  SeeUser 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.