\input texinfo @c -*-texinfo-*-
@c %**start of header
-@setfilename idlwave
+@setfilename ../info/idlwave
@settitle IDLWAVE User Manual
-@dircategory Editors
+@dircategory Emacs
@direntry
* IDLWAVE: (idlwave). Major mode and shell for IDL and WAVE/CL files.
@end direntry
@set DATE December 2000
@set AUTHOR Carsten Dominik
@set AUTHOR-EMAIL dominik@@astro.uva.nl
-@set MAINTAINER Carsten Dominik
-@set MAINTAINER-EMAIL dominik@@astro.uva.nl
+@set MAINTAINER John-David Smith
+@set MAINTAINER-EMAIL jdsmith@@astro.cornell.edu
@set IDLWAVE-HOMEPAGE http://www.strw.leidenuniv.nl/~dominik/Tools/idlwave
@c %**end of header
@finalout
This is edition @value{EDITION} of the IDLWAVE User Manual for
IDLWAVE @value{VERSION}
-Copyright (c) 1999, 2000 Free Software Foundation, Inc.
+Copyright (c) 1999, 2000, 2001 Free Software Foundation, Inc.
-Permission is granted to make and distribute verbatim
-copies of this manual provided the copyright notice and
-this permission notice are preserved on all copies.
-
-@ignore
-Permission is granted to process this file through TeX
-and print the results, provided the printed document
-carries a copying permission notice identical to this
-one except for the removal of this paragraph (this
-paragraph not being relevant to the printed manual).
-
-@end ignore
-Permission is granted to copy and distribute modified
-versions of this manual under the conditions for
-verbatim copying, provided that the entire resulting
-derived work is distributed under the terms of a permission
-notice identical to this one.
-
-Permission is granted to copy and distribute
-translations of this manual into another language,
-under the above conditions for modified versions,
-except that this permission notice may be stated in a
-translation approved by the Free Software Foundation.
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.1 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover texts being ``A GNU
+Manual'', and with the Back-Cover Texts as in (a) below. A copy of the
+license is included in the section entitled ``GNU Free Documentation
+License'' in the Emacs manual.
+
+(a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify
+this GNU Manual, like GNU software. Copies published by the Free
+Software Foundation raise funds for GNU development.''
+
+This document is part of a collection distributed under the GNU Free
+Documentation License. If you want to distribute this document
+separately from the collection, you can do so by adding a copy of the
+license to the document, as described in section 6 of the license.
@end ifinfo
@titlepage
@author by Carsten Dominik
@page
-Copyright @copyright{} 1999, 2000 Free Software Foundation, Inc.
-
-@sp 2
This is edition @value{EDITION} of the @cite{IDLWAVE User Manual} for
IDLWAVE version @value{VERSION}, @value{DATE}.
-
@sp 2
-
+Copyright @copyright{} 1999, 2000, 2001 Free Software Foundation, Inc.
+@sp 2
@cindex Copyright, of IDLWAVE
-Permission is granted to make and distribute verbatim
-copies of this manual provided the copyright notice and
-this permission notice are preserved on all copies.
-
-Permission is granted to copy and distribute modified
-versions of this manual under the conditions for
-verbatim copying, provided that the entire resulting
-derive work is distributed under the terms of a permission
-notice identical to this one.
-
-Permission is granted to copy and distribute
-translations of this manual into another language,
-under the above conditions for modified versions,
-except that this permission notice may be stated in a
-translation approved by the Free Software Foundation.
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.1 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover texts being ``A GNU
+Manual'', and with the Back-Cover Texts as in (a) below. A copy of the
+license is included in the section entitled ``GNU Free Documentation
+License'' in the Emacs manual.
+
+(a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify
+this GNU Manual, like GNU software. Copies published by the Free
+Software Foundation raise funds for GNU development.''
+
+This document is part of a collection distributed under the GNU Free
+Documentation License. If you want to distribute this document
+separately from the collection, you can do so by adding a copy of the
+license to the document, as described in section 6 of the license.
@end titlepage
@contents
Font-lock support on three levels.
@item
Display of calling sequence and keywords of more than 1000 IDL
-routines routines and any routines in your local IDL library.
+routines and any routines in your local IDL library.
@item
Name space conflict search.
@item
@multitable @columnfractions .15 .85
@item @key{TAB}
@tab Indent the current line relative to context.
-@item @kbd{M-C-\}
+@item @kbd{C-M-\}
@tab Re-indent all lines in the current region.
@item @kbd{M-@key{RET}}
@tab Start a continuation line. Or split the current line at point.
The indentation probably looks funny, since it's different from the
settings you use, so use the @key{TAB} key in each line to automatically
line it up (or more quickly @emph{select} the entire buffer with
-@kbd{C-x h} followed by @kbd{M-C-\}). Notice how different syntactical
+@kbd{C-x h} followed by @kbd{C-M-\}). Notice how different syntactical
elements are highlighted in different colors, if you have set up support
for font-lock.
@end lisp
Restart Emacs, take the program we developed in the first part of this
-tutorial and re-indent it with @kbd{C-c h} and @kbd{M-C-\}. You
+tutorial and re-indent it with @kbd{C-c h} and @kbd{C-M-\}. You
probably want to keep these lines in @file{.emacs}, with values adjusted
to your likings. If you want to get more information about any of these
variables, type, e.g., @kbd{C-h v idlwave-main-block-indent @key{RET}}.
@cindex Foreign code, adapting
@cindex Indentation, of foreign code
-@kindex M-C-\
+@kindex C-M-\
To re-indent a larger portion of code (e.g. when working with foreign code
-written with different conventions), use @kbd{M-C-\}
+written with different conventions), use @kbd{C-M-\}
(@code{indent-region}) after marking the relevant code. Useful marking
-commands are @kbd{C-x h} (the entire file) or @kbd{M-C-h} (the
+commands are @kbd{C-x h} (the entire file) or @kbd{C-M-h} (the
current subprogram). @xref{Actions}, for information how to impose
additional formatting conventions on foreign code.
@kindex M-?
In any IDL program, press @kbd{M-?} (@code{idlwave-context-help}) or
-click with @kbd{S-mouse-3} to access context sensitive online help. The
+click with @kbd{S-Mouse-3} to access context sensitive online help. The
following locations are recognized as context:
@cindex Context, for online help
@itemize @bullet
@item
Online help for routines and keywords can be accessed through the
-Routine Info display. Click with @kbd{mouse-3} on an item to see the
+Routine Info display. Click with @kbd{Mouse-3} on an item to see the
corresponding help (@pxref{Routine Info}).
@item
When using completion and Emacs pops up a window with possible
-completions, clicking with @kbd{mouse-3} on a completion item invokes
+completions, clicking with @kbd{Mouse-3} on a completion item invokes
help on that item (@pxref{Completion}).
@end itemize
@noindent
@page
-@cindex Help application, keybindings
-@cindex Keybindings, in help application
+@cindex Help application, key bindings
+@cindex Key bindings, in help application
The help window is normally displayed in a separate frame. The
following commands can be used to navigate inside the help system.
@tab Move back and forward through the help topic history.
@item @kbd{c}
@tab Clear the history.
-@item @kbd{mouse-2}
+@item @kbd{Mouse-2}
@tab Follow a link. Active links are displayed in a different font.
Items under @i{See Also} are active, and classes have links to their
methods and back.
@end defopt
@defopt idlwave-max-popup-menu-items (@code{20})
-Maximum number of items per pane in popup menus.
+Maximum number of items per pane in pop-up menus.
@end defopt
@defopt idlwave-extra-help-function
If the list of completions is too long to fit in the
@file{*Completions*} window, the window can be scrolled by pressing
@kbd{M-@key{TAB}} repeatedly. Online help (if installed) for each
-possible completion is available by clicking with @kbd{mouse-3} on the
+possible completion is available by clicking with @kbd{Mouse-3} on the
item. Items for which system online help (from the IDL manual) is
available will be displayed in a different font. For other items, the
corresponding source code or DocLib header is available as help text.
@cindex Templates
IDLWAVE can insert IDL code templates into the buffer. For a few
-templates, this is done with direct keybindings:
+templates, this is done with direct key bindings:
@multitable @columnfractions .15 .85
@item @kbd{C-c C-c}
Action can also be applied to a larger piece of code, e.g. in order to
convert foreign code to your own style. To do this, mark the relevant
part of the code and execute @kbd{M-x expand-region-abbrevs}. Useful
-marking commands are @kbd{C-x h} (the entire file) or @kbd{M-C-h} (the
+marking commands are @kbd{C-x h} (the entire file) or @kbd{C-M-h} (the
current subprogram). @xref{Code Indentation}, for information how to
adjust the indentation of the code.
@end itemize
@tab Beginning of block (stay inside the block)
@item @kbd{C-c @}}
@tab End of block (stay inside the block)
-@item @kbd{M-C-n}
+@item @kbd{C-M-n}
@tab Forward block (on same level)
-@item @kbd{M-C-p}
+@item @kbd{C-M-p}
@tab Backward block (on same level)
-@item @kbd{M-C-d}
+@item @kbd{C-M-d}
@tab Down block (enters a block)
-@item @kbd{M-C-u}
+@item @kbd{C-M-u}
@tab Backward up block (leaves a block)
@item @kbd{C-c C-n}
@tab Next Statement
@cindex Comint, Emacs package
@cindex Windows
@cindex MacOS
-@cindex Unix
The IDLWAVE shell is an Emacs major mode which allows to run the IDL
program as an inferior process of Emacs. It can be used to work with
packages which handles the communication with the IDL program.
Unfortunately IDL for Windows and MacOS does not allow the interaction
with Emacs@footnote{Please inform the maintainer if you come up with a way
-to make the IDLWAVE shell work on these systems.} - so the IDLWAVE shell
-only works under Unix.
+to make the IDLWAVE shell work on these systems.}, so the IDLWAVE shell
+only works under GNU and Unix.
@menu
* Starting the Shell:: How to launch IDL as a subprocess
@kindex C-c C-d
Programs can be compiled, run, and debugged directly from the source
-buffer in Emacs. The IDLWAVE shell installs keybindings both in the
+buffer in Emacs. The IDLWAVE shell installs key bindings both in the
shell buffer and in all IDL code buffers of the current Emacs session.
On Emacs versions which support this, it also installs a debugging
toolbar. The display of the toolbar can be toggled with @kbd{C-c C-d
C-t} (@code{idlwave-shell-toggle-toolbar}).
-The debugging keybindings are by default on the prefix key @kbd{C-c
+The debugging key bindings are by default on the prefix key @kbd{C-c
C-d}, so for example setting a breakpoint is done with @kbd{C-c C-d
C-b}, compiling a source file with @kbd{C-c C-d C-c}. If you find this
too much work you can choose a combination of modifier keys which is not
point.
It is very convenient to click with the mouse on expressions to retrieve
-their value. Expression printing is also bound to @kbd{S-mouse-2} and
-expression help to @kbd{C-S-mouse-2}. I.e. you need to hold down
+their value. Expression printing is also bound to @kbd{S-Mouse-2} and
+expression help to @kbd{C-S-Mouse-2}. I.e. you need to hold down
@key{SHIFT} and @key{CONTROL} while clicking with the mouse.
@cindex Calling stack, motion
@end lisp
@item
The key sequence @kbd{M-@key{TAB}} no longer inserts a TAB character.
-Like in in many other Emacs modes, @kbd{M-@key{TAB}} now does
+Like in many other Emacs modes, @kbd{M-@key{TAB}} now does
completion. Inserting a TAB has therefore been moved to
@kbd{C-@key{TAB}}. On a character based terminal you can also use
@kbd{C-c @key{SPC}}.
for several years.
@item
-@uref{mailto:dominik@@astro.uva.nl, @b{Carsten Dominik}}, current author
-and maintainer. I have been in charge of the package since version
-3.0. I am also responsible for the manual.
+@uref{mailto:dominik@@astro.uva.nl, @b{Carsten Dominik}}, who have
+been in charge of the package since version 3.0, and also wrote this
+manual.
-@item
-@uref{mailto:jdsmith@@astrosun.tn.cornell.edu, @b{J.D. Smith}} has
-shaped Object method completion and most new features in version 4.0
-with his ideas, bug reports, and patient explanations of IDL internals.
+@item
+@uref{mailto: jdsmith@@astro.cornell.edu, @b{John-David Smith}},
+current maintainer, who is also responsible for this manual's
+maintenance. John-David has also shaped Object method completion and
+most new features in version 4.0 with his ideas, bug reports, and
+patient explanations of IDL internals.
@end itemize
@noindent
@cindex IDL library routine info
@cindex Windows
@cindex MacOS
-@cindex Unix
@cindex IDL variable @code{!DIR}
@cindex @code{!DIR}, IDL variable
Windows and MacOS, you also need to specify the search path for IDL
library files in the variable @code{idlwave-library-path}, and the
location of the IDL directory (the value of the @code{!DIR} system
-variable) in the variable @code{idlwave-system-directory}. Under UNIX,
+variable) in the variable @code{idlwave-system-directory}. Under Unix and GNU,
these values will be automatically inferred from an IDLWAVE
shell.
@end defopt
@defopt idlwave-library-path
-IDL library path for Windows and MacOS. Not needed under Unix.
+IDL library path for Windows and MacOS. Not needed under GNU and Unix.
@end defopt
@defopt idlwave-system-directory
-The IDL system directory for Windows and MacOS. Not needed under UNIX.
+The IDL system directory for Windows and MacOS. Not needed under GNU and Unix.
@end defopt
@defopt idlwave-special-lib-alist
(font-lock-mode 1) ; Turn on font-lock mode
(idlwave-auto-fill-mode 0) ; Turn off auto filling
;;
- ;; Pad with with 1 space (if -n is used then make the
+ ;; Pad with 1 space (if -n is used then make the
;; padding a minimum of n spaces.) The defaults use -1
;; instead of 1.
(idlwave-action-and-binding "=" '(idlwave-expand-equal 1 1))