[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
*** IDLWAVE 4.0 *** ANNOUNCEMENT!
- Subject: *** IDLWAVE 4.0 *** ANNOUNCEMENT!
- From: John-David Smith <jdsmith(at)astro.cornell.edu>
- Date: Wed, 17 May 2000 11:24:47 -0400
- Newsgroups: comp.lang.idl-pvwave
- Organization: Cornell University
- Sender: verified_for_usenet(at)cornell.edu (jts11 on d5029.dialup.cornell.edu)
- Xref: news.doit.wisc.edu comp.lang.idl-pvwave:19649
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.
JD
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
XEmacs.
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
treat.
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
http://strw.leidenuniv.nl/~dominik/Tools/idlwave/
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>
===========================================================================
Footnotes:
[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.