Skip to content

Introduction

IDLWAVE is a package which supports editing source files written in the Interactive Data Language (IDL), and running IDL as an inferior shell[1]. It is a feature-rich replacement for the IDLDE development environment included with IDL, and uses the full power of Emacs to make editing and running IDL programs easier, quicker, and more structured.

IDLWAVE consists of two main parts: a major mode for editing IDL source files (idlwave-mode) and a mode for running the IDL program as an inferior shell (idlwave-shell-mode). Although one mode can be used without the other, both work together closely to form a complete development environment. Here is a brief summary of what IDLWAVE does:

  • Smart code indentation and automatic-formatting.
  • Three level syntax highlighting support.
  • Context-sensitive display of calling sequences and keywords for more than 1000 native IDL routines, extensible to any additional number of local routines, and already available with many pre-scanned libraries.
  • Fast, context-sensitive online HTML help, or source-header help for undocumented routines.
  • Context sensitive completion of routine names, keywords, system variables, class names and much more.
  • Easy insertion of code templates and abbreviations of common constructs.
  • Automatic corrections to enforce a variety of customizable coding standards.
  • Integrity checks and auto-termination of logical blocks.
  • Routine name space conflict search with likelihood-of-use ranking.
  • Support for imenu.
  • Documentation support.
  • Running IDL as an inferior Shell with history search, command line editing and all the completion and routine info capabilities present in IDL source buffers.
  • Full handling of debugging with breakpoints, with interactive setting of break conditions, and easy stepping through code.
  • Compilation, execution and interactive single-keystroke debugging of programs directly from the source buffer.
  • Quick, source-guided navigation of the calling stack, with variable inspection, etc.
  • Examining variables and expressions with a mouse click.
  • And much, much more...

IDLWAVE is the distant successor to the idl.el and idl-shell.el files written by Chris Chase. The modes and files had to be renamed because of a name space conflict with CORBA’s idl-mode, defined in Emacs in the file cc-mode.el.

In this manual, each section ends with a list of related user options. Don’t be confused by the sheer number of options available: in most cases the default settings are just fine. The variables are listed here to make sure you know where to look if you want to change anything. For a full description of what a particular variable does and how to configure it, see the documentation string of that variable (available with C-h v). Some configuration examples are also given in the appendix.


  1. IDLWAVE can also be used for editing source files for the related WAVE/CL language, but with only limited support. ↩︎