|
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
See the screenshots page.
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 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:
- IDL v6.1
- IDL v6.0
- IDL v5.6
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.
|