== IDLWAVE ==
[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 ITT Visual Information Solutions. It provides a compelling, full-featured alternative to the IDLDE development environment bundled with IDL.

Latest News

  • 2008-01-25: IDL v7.0 substantially changed the help file system and components, hence IDLWAVE's Assistant-based help lookup no longer functions with it. You can downgrade your help files to v6.4; see this ITTVIS tech tip.
  • 2007-06-05: Emacs 22 is released, including Version 6.1 of IDLWAVE. Installing Emacs 22 is now the easiest and most compatible way of running IDLWAVE.
  • 2006-05-25: A convenient Reference Card for IDLWAVE's most important commands has been provided by Maxim Neumann.
  • 2006-02-17: Version 6.0 released, with full support for IDL's new HTML help system and browser, among many other features.
  • 2005-05-09: Version 5.6 is available, including a new active breakpoint line and increased stability (announcement). Also see the new screenshots page.
  • 2004-10-15: Version 5.4 is here, with support for IDLv6.1, including a new HTML help package (announcement).
  • 2004-06-27: Version 5.3, with some bug fixes and a few new features. See the announcement for more.
  • 2003-11-11: Version 5.2, supporting IDLv6.0, is here, with new updated HTML help, support for IDLv6.0 operators, and many bug fixes and enhancements.
  • 2003-07-31: Version 5.1 is out. This fixes a small number of bugs and adds a few new features, including convenience links to routine listing and contents in the HTML help.
  • 2003-05-13: Version 5.0 now available! A major release with many exciting new features, including a new HTML help system (see screenshot), a new, more flexible cataloging system and Electric Debug Mode. Read all about it in the announcement. Also see the new troubleshooting FAQ. This is the first version fully supported on MacOSX, including running the IDL Shell.
  • Older News

For an overview of changes made to IDLWAVE, read the latest announcement, peruse the full announcement selection, or see the CHANGES file for the details. In addition to documenting new features, the announcements provide an interesting synopsis of IDLWAVE's long history.


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 fully-linked HTML version of RSI's own help manuals, for routines and methods, classes, system variables and tags, and more, along with source-driven help for user/library routines, and structure and class tags.
  • Full debugging support with easy breakpoint setting, clearing, conditions and repeat counts. Breakpoints can be disabled.
  • Electric Debug Mode: fast, single-key debug, breakpoint and examine commands in a special interactive mode.
  • Powerful, customizable variable/expression examination in the buffer and shell with simple key or mouse clicks, including a customizable "pop-up" examine mouse command.
  • Call stack navigation with expression examination at any level of the stack.
  • A complete history of IDL commands saved between sessions, instantly recallable in the shell with the arrow keys, with advanced history navigation options provided.
  • 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 routine name conflicts.
  • A library catalog sytem of routine information, pre-shipped with many popular libraries, and easily used to scan local source directories so that completion, help lookup, routine info, etc., will work as well as for built-in routines. Relocatable, independent, and automatically discovered on the IDL path. A personal user catalog with a widget-interface can also be built easily.
  • And much, much more... (see a slightly edited newsgroup posting of mine for a more detailed explanation of some of these highlighted features).
As always, consult the manual for full documentation of all the features, including an introductory tutorial.

Screenshots


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 Reference Card gives you a single page overview of the major commands and their keyboard shortcuts.

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

A Troubleshooting FAQ is also available, with solutions to common problems.

You can also take a look at the IDLWAVE excerpt from my .emacs file, if you're brave.

A small function for OSX which allows Safari to be used as the browse-url-browser-function.


Background

The IDLWAVE package is the successor to the idl.el and idl-shell.el modes originally written by Chris Chase. These original, unsupported files are available if you're interested.

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, who took over maintaining IDLWAVE at version 4.10, released December, 2001, and released version 5.x in May, 2003, and 6.x in Feb., 2006.

A collection of newsgroup announcements pertaining to the Emacs IDL mode is available, and demonstrates its long and varied history (notice the dates).


Download

Latest version: 6.0, supporting IDL v6.2.

Emacs Users:

Emacs 22 (released June, 2007) contains a fully up to date version of IDLWAVE v6.1. Simply install Emacs 22, and nothing else is required.

XEmacs Users:

Note the you must also install the fsf-compat & mail-lib XEmacs packages to allow IDLWAVE to work properly with XEmacs. Many XEmacs packages come with them by default; otherwise, get them where you got your XEmacs.

Requirements

IDLWAVE requires Emacs 21.1 or later, or XEmacs 20.4 or later, and ships with Emacs starting at version 21.1 (though usually with a much older version). There is also an XEmacs package (currently at version 5.1) which can be installed using its package management system.

The Downloads:

  • IDLWAVE:

    The main IDLWAVE environment:

    idlwave.tar.gz (308KB): the main IDLWAVE environment for Emacs or XEmacs.

    Note: For Users of OSX and IDL6.2, see this RSI article for instructions on fixing a bug which prevents the IDL Assistant from running with IDLWAVE.

    The IDL XML catalog file shipped with IDL6.2 has a few small errors (e.g., missing routines, like SYSTIME). If you want to get an updated catalog for IDL6.2, see this RSI article. These issues have been corrected in later versions of IDL.

  • Help Downgrades (Optional):

    STOP: Starting with IDLWAVE 6.0 and IDL 6.2, you don't need to download anything additional to make use of HTML help. This section is only relevant if you use an older IDL version.

    Also, if you already have a version of IDLWAVE installed with help appropriate for your existing IDL version, there is no need to install anything else, even if you update IDLWAVE. No further help packages will be created for versions past IDL 6.1.

    If you are sure you need them (only if you have an IDL older than v6.2) download one of the following sets of HTML help files, to support context-sensitive online help (not necessary for Windows users). Copyright-protected, and distributed with permission from RSI:

    To downgrade, you must install the HTML help package appropriate to your version of IDL (or simply leave your old HTML help files in place), and a single downgrade routine info file:

    Just place these in the idlwave-version/ directory before installing.

  • Extras:

    Library maintainers might like to download only the idlwave_catalog perl script which produces library catalogs. Scan your catalogs now for the benefit of all!

    A few older and alpha versions are also available.

    The obsolete idltags program, which uses ctags/etags to generate tag files, might be useful for vi users.


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 file:

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

Standard Source Package (for either GNU Emacs or XEmacs):
---------------------------------------------------------------------------
Put them in /tmp (or anywhere), then do (as root):

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

where "version" is something like 5.0.  This by default puts idlwave
in /usr/local/share/emacs/site-lisp/, which is a fine place.  

HTML Help packages
---------------------------------------------------------------------------

As of IDL 6.2 and IDLWAVE 6.0, all HTML help is provided by default
with your installation of IDL, and nothing further needs to be
installed.  For systems older than IDL 6.2, HTML help can be installed
separately: see the INSTALL file.

Setting up the package
---------------------------------------------------------------------------

Add the following to .emacs or to a site equivalent:

  ;; This is only necessary if the default install directory is not on
  ;; your Emacs "load-path":
  (setq load-path (cons "/usr/local/share/emacs/site-lisp" load-path))

  (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))

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


IDLWAVE-aware Code Libraries

Many popular libraries of IDL routines ship with pre-scanned library catalogs to support context sensitive routine information inside of IDLWAVE:

Scanning your own or other libraries is also trivial.


[News] [Features] [Screenshots] [Documentation] [Background] [Download] [Install]
idlwave.org domain
sponsored by ITTVIS
Send questions and comments to the Maintainer:
Last modified: Wed Mar 19 12:51:03 MST 2008