[News] [Features] [Screenshots] [Documentation] [Background] [Download] [Install]

IDLWAVE is an add-on mode for GNU Emacs (and XEmacs) which enables feature-rich development and interaction with IDL®, the Interactive Data Language, produced by Research Systems, Inc. It provides an alternative to the IDLDE development environment bundled with IDL.

Latest News

  • Version 4.10 released, including full support for IDL v5.5, and a modified version of online help which includes updated and new routines and keywords not yet documented in the standard help files (look for the sections marked with <NEW>...</NEW>).

For an overview of changes made to IDLWAVE, visit the Changes Page, or see the CHANGES file for complete details.


Features

Among the many powerful features IDLWAVE brings to IDL development:

  • Smart indentation and syntax highlighting.
  • Completion of control structures (like if..then..endif), and easy insertion of code templates.
  • Optional auto-corrected typing for enforcing coding syntax.
  • Fast compile/run-time error finding: errors are highlighted directly in the source files in which they occur.
  • Close interaction between edited buffers and the IDL shell: files or regions of files are easily compiled with a single key sequence.
  • User-configureable abbreviations for common constructs available in both the edited buffer and the IDL shell (like if n_elements() eq 0).
  • Context-aware calling sequence and routine information: recall the ordering of arguments or the spelling of keywords of the routine you're calling without digging out the manuals.
  • Completion of routines, keywords, class names, filenames, class fields (via the self variable), and even structure tags, all using the Tab key.
  • Instant, context-aware access to a text version of RSI's own help manuals, for routines and methods, classes, system variables, and more.
  • Full debugging support with simple breakpoint setting/clearing, variable inspection with simple key or mouse clicks, and even call stack navigation.
  • A complete history of IDL commands saved between sessions, instantly recallable in the shell with the arrow keys, and more advanced history navigation options provided by the comint mode.
  • Auto-detection in routine info, or at the user's behest, of all shadowed files on the IDL path, compiled in the shell, or being edited in a buffer. Instant detection of routines with the same name accessible to IDL.
  • A personal catalog of user and library routines can be easily built, so that completion, help lookup, routine info, etc., will work as well as for built-in routines. You can even categorize them into groups based on location.
  • And much, much more... (see a slightly edited newsgroup posting of mine for a more detailed explanation of these highlighted features).
As always, consult the manual for full documentation of all the features, including an introductory tutorial.

Screenshots

Screen shots showing IDLWAVE in action with Emacs 21:

  • An IDLWAVE buffer. Notice the colored syntax and pop-up iMenu navigation of routines in the buffer.
  • A routine's keyword being completed from the shell. The debugging toolbar, activated when running the shell, is seen. The completed keywords are blue. Right clicking on one queues up the relevant online help, as seen below.
  • Online help. The help text for a keyword from the completion menu in the previous screenshot is instantly queued up in a separate frame.
  • Routine info. The routine info for a command which exists in multiple libraries is shown, sorted according to which is most likely to be used by IDL. Flags indicate the source of routine information.
  • Stepping through code. The breakpoint is indicated with a red dot. The code is being stepped through, with current location indicated by the arrow at left. A value was printed by shift-clicking it.

Older screenshots showing IDLWAVE under XEmacs:


Documentation

Full documentation for IDLWAVE is available in several forms: online, as a PDF or Postscript file, or inside of Emacs (see IDLWAVE->Documentation->Info, or the regular Emacs info tool).

The manual also contains a short tutorial to help you get started using IDLWAVE.


Background

The IDLWAVE package is the successor to the idl.el and idl-shell.el modes originally written by Chris Chase.

Carsten Dominik took the original idl-mode and made substantial modifications, bringing a host of new features, and rewriting significant portions. These modes had to be renamed and adapted in order to work with X/Emacs 20, hence IDLWAVE. Version 3.0 was released in April, 1999. Versions 4.x were developed in collaboration between Carsten and J.D. Smith.


Download

Latest version: 4.10, supporting IDL v5.5.

IDLWAVE requires Emacs 20.3 or later, or XEmacs 20.4 or later, and ships with Emacs starting at version 21.1. There is also an XEmacs package which can be installed using its package management system. The current version of the XEmacs package (version 1.23) is based on IDLWAVE 4.7.

Files needed for installation:


Installation

A detailed description of the installation process can be found in the included INSTALL file. The fast installation method listed first is fine if you don't want to customize the install location:

0. THE FAST ROAD
================

On a typical UNIX system, installation goes as easy as:

Get these following files:

http://idlwave.org/download/idlwave.tar.gz
http://idlwave.org/download/idlwave-help.tar.gz

Put them in /tmp (or anywhere), then do (as root):

  % tar xzvf idlwave.tar.gz
  % cd idlwave-version
  % tar xzvf ../idlwave-help.tar.gz
  % make
  % make install-all

where "version" is something like 4.10.  This by default puts idlwave in
/usr/local/share/emacs/site-lisp/, which is a fine place.  It also puts
the help files in /usr/local/etc, which is also fine.

Then add to .emacs or to a site equivalent of it:

  (autoload 'idlwave-mode "idlwave" "IDLWAVE Mode" t)
  (autoload 'idlwave-shell "idlw-shell" "IDLWAVE Shell" t)
  (setq auto-mode-alist  
   (cons '("\\.pro\\'" . idlwave-mode) auto-mode-alist))
  (setq idlwave-help-directory "/usr/local/etc")
      

Windows and MacOS users should refer to the section of the manual describing extra steps required to install and run IDLWAVE on these systems.


[News] [Features] [Screenshots] [Documentation] [Background] [Download] [Install]
idlwave.org sponsored by:
Dr. CHARM
Send questions and comments to the Maintainer: J.D. Smith
Last modified: Tue Dec 4 11:43:36 EST 2001