[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


IDL Community:

Carsten Dominik <dominik@astro.uva.nl> has asked me to post this announcement of
a new version of the IDLWAVE comprehensive IDL mode for Emacs, due to overseas
newsfeed trouble.  As promised, it's packed full of exciting new features.  If
you've been waiting for a good opportunity to take the leap from the IDLDE to
emacs+idlwave, now is the time!  You won't be disappointed.


Carsten's Announcement:

Subject: IDLWAVE 4.0 - editing mode for GNU Emacs and XEmacs

I am releasing version 4.0 of the IDLWAVE mode for GNU Emacs and

JD Smith <jdsmith@astro.cornell.edu> should be considered Co-author of
this version.  Even though he did not write the Emacs Lisp code, most
of the new ideas in IDLWAVE 4.0 are either directly from him, or were
inspired by extensive discussions we had about IDL and IDLWAVE.
Without his deep knowledge of IDL I would not have been able to put
this release together.  Thanks JD!

What is new in IDLWAVE 4.0?

1. Online Help
   IDLWAVE now has its own online-help system for IDL.  It accesses an
   ASCII version of the official IDL documentation [1] with lightning
   speed.  Just press `M-?' (or shift+right-click) to pull up the help
   frame on the routine or keyword nearest the cursor.  IDLWAVE
   immediately displays the correct section of the manual, skipping to
   the relevant keyword description if appropriate.  No more typing a
   name into the "Index" pane, double clicking, following a link, and
   scrolling down.

   The ASCII help is hyperlinked to some extent: "See Also" links and
   links between methods and their classes are available.  It also
   provides history so you can travel back and forth among recently
   viewed help topics.

   Help is also accessible from the Routine information window (see
   below) and even from the *Completions* buffer.  To aid selection
   among the completed routines or keywords, you can right-click on an
   individual entry to pop-up the corresponding help.  Those
   *Completions* items which are documented in the manuals are
   highlighted.  This is especially useful for situations in which you
   can't remember which keyword is which, or you know a routine starts
   with a "c" but can't recall which it is.  Since help can be
   accessed so simply and in so many ways, it becomes a seamless
   extension of both the coding process and interactive IDL use.

   For routines which are not documented in the IDL manuals (for
   example your own routines!), the source code is used as help text.

   To say it again: The IDLWAVE online help system is *fast*.  If you
   are in the same situation as I and have to access idlhelp over a
   network, you know how frustrating this can be.  You are in for a

   For copyright reasons [2], I cannot distribute the help files with
   the IDLWAVE distribution, but you can easily download the files
   separately from my webpage.

2. Routine information
   The routine info feature has been totally re-written.  You can scan
   any local and personal IDL libraries, so that IDLWAVE knows about all
   routines accessible to IDL, even including those compiled in the
   Shell, if running.  When you ask for information about a routine, all
   files which define this routine are listed, for example for the
   function IBETA():

   Usage:    Result = IBETA(a, b, x)
   Keywords: No keywords accepted.
   Sources:  - SystemLib   [C--] /soft1/idl53/lib/ibeta.pro
             - SystemLib   [C--] /soft1/idl53/lib/tm_test.pro
             - SystemLib   [C--] /soft1/idl53/lib/r_correlate.pro
             - SystemLib   [C--] /soft1/idl53/lib/fv_test.pro

   This function is defined 4 times in the system library!  While in
   this particular case, several of these are equivalent copies, often
   such name space conflicts or "shadows" in IDL can introduce errors
   or, even worse, pernicious but undetected changes.  But now these
   errors can easily be detected and avoided.  All defining sources
   for a routine are presented, ordered by the likelihood of use.

   The flags [CSB] indicate the origin(s) of the information (library
   [C]atalog, [S]hell, [B]uffer).  A click with mouse-2 on the source
   file name displays this file in a buffer.  Right clicking on the
   Usage line or keywords brings up the online help for these items.

   The category to which a set of routines belongs (SystemLib in the
   above example) is modifiable, so that, e.g., all NASA routines could
   be labelled with "NasaLib".

3. Shadow List
   IDLWAVE can search the entire name space of IDL routines and return a 
   master list of all conflicts.  It sorts the different source files in
   order of likelihood of use.  Also available are subsets of this master 
   listing: all shadows of routines defined in the current buffer, or 
   all shadows of compiled routines.

4. Class completion
   After the routine definition statements "pro" and "function", IDLWAVE
   will complete the most likely class name.  In an OBJ_NEW call,
   completion transparently completes either class names or keywords of 
   the appropriate INIT method in the right places.

5. Shell improvements
   The IDLWAVE Shell now permits the expansion of abbreviations while
   editing the command line, so writing code in the shell buffer is now
   almost exactly like editing a source code file.  It also provides
   access to the same routine info, help lookup, completion, and other
   mechanisms available in an IDLWAVE buffer.

6. Misc
   There are a large number of small improvements.  A number of small
   bugs have been cleared out.

7. Features you may have forgotten or never tried
   Debugging IDL programs with the IDLWAVE Shell is very simple.
   Breakpoint setting is done directly from the source buffer, with a
   single key stroke, and the breakpoint is indicated with highlighting
   or a glyph.  The calling stack can be traversed and variables and
   expressions examined on all levels, providing similar functionality
   to Craig Markwardt's excellent debugging routines (see
   http://cow.physics.wisc.edu/~craigm/idl/misc.html#DXDEBUG), but much
   more easily, since variable values can be examined simply by clicking
   on them.

IDLWAVE is available at


I will in the near future also install this version in the Emacs and
XEmacs source trees.

Please send comments, suggestions, and bug reports to

    Carsten Dominik <dominik@astro.uva.nl>

[1] I have permission from RSI to distribute their documentation in
    ASCII for this purpose.  Thanks to Mark Goosman from RSI for his
    cooperation on this issue.

[2] Even though I have permission to distribute these files, the ASCII 
    manuals obviously stay under the copyright of Research Systems
    Inc.  IDLWAVE is distributed under the GNU GENERAL PUBLIC LICENSE,
    therefore the manuals cannot be part of it.