annotate man/idlwave.texi @ 36161:f6ba7a00b9e1

Upcase "mouse" in @kbd.
author Richard M. Stallman <rms@gnu.org>
date Sat, 17 Feb 2001 17:34:12 +0000
parents 652e7327d016
children a74d5c25210c
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1 \input texinfo @c -*-texinfo-*-
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2 @c %**start of header
34434
652e7327d016 Fixed setfilename and setdircategory. This was to undo incorrect
Carsten Dominik <dominik@science.uva.nl>
parents: 34433
diff changeset
3 @setfilename ../info/idlwave
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
4 @settitle IDLWAVE User Manual
34434
652e7327d016 Fixed setfilename and setdircategory. This was to undo incorrect
Carsten Dominik <dominik@science.uva.nl>
parents: 34433
diff changeset
5 @dircategory Emacs
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
6 @direntry
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
7 * IDLWAVE: (idlwave). Major mode and shell for IDL and WAVE/CL files.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
8 @end direntry
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
9 @synindex ky cp
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
10 @syncodeindex vr cp
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
11 @syncodeindex fn cp
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
12 @set VERSION 4.7
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
13 @set EDITION 4.7
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
14 @set IDLVERSION 5.4
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
15 @set NSYSROUTINES 1287
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
16 @set NSYSKEYWORDS 5724
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
17 @set DATE December 2000
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
18 @set AUTHOR Carsten Dominik
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
19 @set AUTHOR-EMAIL dominik@@astro.uva.nl
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
20 @set MAINTAINER Carsten Dominik
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
21 @set MAINTAINER-EMAIL dominik@@astro.uva.nl
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
22 @set IDLWAVE-HOMEPAGE http://www.strw.leidenuniv.nl/~dominik/Tools/idlwave
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
23 @c %**end of header
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
24 @finalout
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
25
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
26 @ifinfo
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
27 This file documents IDLWAVE, a major mode for editing IDL and
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
28 WAVE/CL files with Emacs. It also implements a shell for running IDL as
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
29 a subprocess.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
30
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
31 This is edition @value{EDITION} of the IDLWAVE User Manual for
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
32 IDLWAVE @value{VERSION}
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
33
27600
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
34 Copyright (c) 1999, 2000 Free Software Foundation, Inc.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
35
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
36 Permission is granted to make and distribute verbatim
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
37 copies of this manual provided the copyright notice and
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
38 this permission notice are preserved on all copies.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
39
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
40 @ignore
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
41 Permission is granted to process this file through TeX
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
42 and print the results, provided the printed document
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
43 carries a copying permission notice identical to this
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
44 one except for the removal of this paragraph (this
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
45 paragraph not being relevant to the printed manual).
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
46
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
47 @end ignore
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
48 Permission is granted to copy and distribute modified
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
49 versions of this manual under the conditions for
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
50 verbatim copying, provided that the entire resulting
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
51 derived work is distributed under the terms of a permission
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
52 notice identical to this one.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
53
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
54 Permission is granted to copy and distribute
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
55 translations of this manual into another language,
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
56 under the above conditions for modified versions,
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
57 except that this permission notice may be stated in a
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
58 translation approved by the Free Software Foundation.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
59 @end ifinfo
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
60
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
61 @titlepage
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
62 @title IDLWAVE User Manual
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
63 @subtitle Major Emacs mode and shell for IDL and WAVE/CL files
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
64 @subtitle Edition @value{EDITION}, @value{DATE}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
65
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
66 @author by Carsten Dominik
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
67 @page
27600
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
68 Copyright @copyright{} 1999, 2000 Free Software Foundation, Inc.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
69
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
70 @sp 2
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
71 This is edition @value{EDITION} of the @cite{IDLWAVE User Manual} for
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
72 IDLWAVE version @value{VERSION}, @value{DATE}.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
73
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
74 @sp 2
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
75
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
76 @cindex Copyright, of IDLWAVE
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
77 Permission is granted to make and distribute verbatim
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
78 copies of this manual provided the copyright notice and
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
79 this permission notice are preserved on all copies.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
80
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
81 Permission is granted to copy and distribute modified
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
82 versions of this manual under the conditions for
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
83 verbatim copying, provided that the entire resulting
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
84 derive work is distributed under the terms of a permission
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
85 notice identical to this one.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
86
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
87 Permission is granted to copy and distribute
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
88 translations of this manual into another language,
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
89 under the above conditions for modified versions,
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
90 except that this permission notice may be stated in a
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
91 translation approved by the Free Software Foundation.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
92
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
93 @end titlepage
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
94 @contents
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
95
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
96 @page
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
97
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
98 @ifnottex
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
99
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
100 @node Top, Introduction, (dir), (dir)
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
101
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
102 IDLWAVE is a package to support editing command files for the
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
103 Interactive Data Language (IDL), and for running IDL as an inferior
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
104 shell.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
105
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
106 @end ifnottex
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
107
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
108 @menu
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
109 * Introduction:: What IDLWAVE is and what not
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
110 * IDLWAVE in a Nutshell:: One page quick-start guide
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
111 * Getting Started:: Tutorial
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
112 * The IDLWAVE Major Mode:: The mode to edit IDL programs
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
113 * The IDLWAVE Shell:: The mode to run IDL as inferior program
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
114 * Installation:: How to Install or Upgrade
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
115 * Acknowledgement:: Who helped
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
116 * Sources of Routine Info:: How does IDLWAVE know about routine XYZ
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
117 * Configuration Examples:: The user is king...
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
118 * Index:: Fast access
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
119
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
120 @detailmenu --- The Detailed Node Listing ---
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
121
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
122 The IDLWAVE Major Mode
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
123
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
124 * Code Formatting:: Making code look nice
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
125 * Routine Info:: Calling Sequence and Keyword List
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
126 * Online Help:: One key press from source to help
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
127 * Completion:: Completing routine names and Keywords
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
128 * Routine Source:: How to visit the source file of routine XYZ
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
129 * Resolving Routines:: Force the Shell to compile a routine
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
130 * Code Templates:: Abbreviations for frequent constructs
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
131 * Actions:: Changing case, Padding, End checking
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
132 * Doc Header:: Inserting a standard header
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
133 * Motion Commands:: Moving through the structure of a program
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
134 * Misc Options:: Things that fit nowhere else
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
135
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
136 Code Formatting
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
137
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
138 * Code Indentation:: Reflecting the logical structure
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
139 * Comment Indentation:: Special indentation for comment lines
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
140 * Continuation Lines:: Splitting statements over lines
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
141 * Syntax Highlighting:: Font-lock support
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
142
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
143 Actions
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
144
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
145 * Block Boundary Check:: Is the END correct
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
146 * Padding Operators:: Enforcing space around `=' etc
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
147 * Case Changes:: Enforcing upper case keywords
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
148
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
149 The IDLWAVE Shell
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
150
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
151 * Starting the Shell:: How to launch IDL as a subprocess
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
152 * Using the Shell:: Interactively working with the Shell
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
153 * Debugging IDL Programs:: Compilation/Debugging
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
154
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
155 Debugging IDL Programs
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
156
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
157 * Compiling Programs:: Compiling buffers under the shell
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
158 * Breakpoints and Stepping:: Deciding where to stop and look
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
159 * Examining Variables:: What is the value now?
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
160
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
161 Installation
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
162
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
163 * Installing IDLWAVE:: How to install the distribution
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
164 * Installing Online Help:: Where to get the additional files needed
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
165 * Upgrading from idl.el:: Necessary configuration changes
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
166
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
167 Sources of Routine Info
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
168
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
169 * Routine Definitions:: Where IDL Routines are defined.
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
170 * Routine Information Sources:: So how does IDLWAVE know about...
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
171 * Library Catalog:: Scanning the Libraries for Routine Info
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
172 * Load-Path Shadows:: Routines defined in several places
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
173 * Documentation Scan:: Scanning the IDL Manuals
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
174
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
175 @end detailmenu
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
176 @end menu
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
177
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
178 @node Introduction, IDLWAVE in a Nutshell, Top, Top
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
179 @chapter Introduction
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
180 @cindex Introduction
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
181 @cindex CORBA (Common Object Request Broker Architecture)
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
182 @cindex Interface Definition Language
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
183 @cindex Interactive Data Language
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
184 @cindex cc-mode.el
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
185 @cindex @file{idl.el}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
186 @cindex @file{idl-shell.el}
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
187 @cindex Feature overview
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
188
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
189 IDLWAVE is a package to support editing command files for the
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
190 Interactive Data Language (IDL), and for running IDL as an inferior
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
191 shell. It also can be used for WAVE/CL command files, but the support
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
192 for these is limited. Note that this package has nothing to do with the
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
193 Interface Definition Language as part of the Common Object Request
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
194 Broker Architecture (CORBA).
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
195
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
196 IDLWAVE is the successor to the @file{idl.el} and @file{idl-shell.el}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
197 files written by Chris Chase. The modes and files had to be renamed
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
198 because of a name space conflict with CORBAs @code{idl-mode}, defined in
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
199 Emacs in the file @file{cc-mode.el}. If you have been using the old
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
200 files, check @ref{Upgrading from idl.el} for information on how to
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
201 switch.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
202
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
203 IDLWAVE consists of two parts: A major mode for editing command files
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
204 (@code{idlwave-mode}) and a mode to allow running the IDL program as an
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
205 inferior shell (@code{idlwave-shell-mode}). Both modes work closely
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
206 together and form a complete development environment.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
207
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
208 Here is a brief summary of what IDLWAVE does.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
209
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
210 @itemize @bullet
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
211 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
212 Code indentation and formatting.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
213 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
214 Font-lock support on three levels.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
215 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
216 Display of calling sequence and keywords of more than 1000 IDL
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
217 routines routines and any routines in your local IDL library.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
218 @item
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
219 Name space conflict search.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
220 @item
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
221 Fast context-sensitive online help.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
222 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
223 Context sensitive completion of routine names and keywords.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
224 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
225 Insertion of code templates.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
226 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
227 Actions to enforce coding standards during typing.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
228 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
229 Block structure check.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
230 @item
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
231 Support for @file{imenu} (Emacs) and @file{func-menu} (XEmacs).
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
232 @item
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
233 Documentation support.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
234 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
235 Running IDL as inferior process.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
236 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
237 Shell with history search, command line editing and completion.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
238 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
239 Compilation, execution and debugging of programs directly from the source
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
240 buffer.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
241 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
242 Examining expressions with a mouse click.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
243 @end itemize
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
244
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
245 @ifnottex
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
246 @cindex Screenshots
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
247 Here are a number of screenshots showing IDLWAVE in action.
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
248
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
249 @itemize @bullet
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
250 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
251 @uref{http://www.strw.leidenuniv.nl/~dominik/Tools/idlwave/font-lock.gif,
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
252 XEmacs 21.1 with formatted and fontified code}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
253 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
254 @uref{http://www.strw.leidenuniv.nl/~dominik/Tools/idlwave/rinfo.gif,
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
255 XEmacs 21.1 displaying routine info}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
256 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
257 @uref{http://www.strw.leidenuniv.nl/~dominik/Tools/idlwave/complete.gif,
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
258 XEmacs 21.1 completing a keyword}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
259 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
260 @uref{http://www.strw.leidenuniv.nl/~dominik/Tools/idlwave/shell.gif,
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
261 XEmacs 21.1 with debugging toolbar; execution stopped at a breakpoint}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
262 @end itemize
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
263 @end ifnottex
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
264
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
265 In this manual, each section contains a list of user options related to
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
266 the subject. Don't be confused by the shear number of options available
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
267 -- in most cases the default settings are just fine. The variables are
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
268 listed here to make sure you know where to look if you want to change
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
269 things. For a full description of what a particular variable does and
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
270 how to configure it, see the documentation string of that variable.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
271 Some configuration examples are also given in the appendix.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
272
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
273 @node IDLWAVE in a Nutshell, Getting Started, Introduction, Top
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
274 @chapter IDLWAVE in a Nutshell
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
275 @cindex Summary of important commands
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
276 @cindex IDLWAVE in a Nutshell
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
277 @cindex Nutshell, IDLWAVE in a
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
278
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
279 @subheading Editing IDL Programs
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
280
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
281 @multitable @columnfractions .15 .85
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
282 @item @key{TAB}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
283 @tab Indent the current line relative to context.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
284 @item @kbd{M-C-\}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
285 @tab Re-indent all lines in the current region.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
286 @item @kbd{M-@key{RET}}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
287 @tab Start a continuation line. Or split the current line at point.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
288 @item @kbd{M-q}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
289 @tab Fill the current comment paragraph.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
290 @item @kbd{C-c ?}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
291 @tab Display calling sequence, keywords of the procedure/function call
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
292 at point.
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
293 @item @kbd{M-?}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
294 @tab Context sensitive online help.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
295 @item @kbd{M-@key{TAB}}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
296 @tab Complete a procedure name, function name or keyword in the buffer.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
297 @item @kbd{C-c C-i}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
298 @tab Update IDLWAVE's knowledge about functions and procedures.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
299 @item @kbd{C-c C-v}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
300 @tab Find the source code of a procedure/function.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
301 @item @kbd{C-c C-h}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
302 @tab Insert a standard documentation header.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
303 @item @kbd{C-c C-m}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
304 @tab Insert a new timestamp and history item in the documentation header.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
305 @end multitable
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
306
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
307 @subheading Running the IDLWAVE Shell, Debugging Programs
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
308
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
309 @multitable @columnfractions .15 .85
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
310 @item @kbd{C-c C-s}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
311 @tab Start IDL as a subprocess and/or switch to the interaction buffer.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
312 @item @kbd{M-p}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
313 @tab Cycle back through IDL command history matching command line input.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
314 @item @kbd{M-n}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
315 @tab Cycle forward.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
316 @item @kbd{M-@key{TAB}}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
317 @tab Complete a procedure name, function name or keyword in the shell buffer.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
318 @item @kbd{C-c C-d C-c}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
319 @tab Save and compile the source file in the current buffer.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
320 @item @kbd{C-c C-d C-x}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
321 @tab Goto next syntax error.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
322 @item @kbd{C-c C-d C-b}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
323 @tab Set a breakpoint at the current source line.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
324 @item @kbd{C-c C-d C-d}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
325 @tab Clear the current breakpoint.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
326 @item @kbd{C-c C-d C-p}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
327 @tab Ask IDL to print the value of the expression near point.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
328 @end multitable
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
329
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
330 @subheading Commonly used Settings in @file{.emacs}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
331 @lisp
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
332 ;; Change the indentation preferences
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
333 (setq idlwave-main-block-indent 2 ; default 0
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
334 idlwave-block-indent 2 ; default 4
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
335 idlwave-end-offset -2) ; default -4
27600
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
336 ;; Pad some operators with spaces
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
337 (setq idlwave-do-actions t
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
338 idlwave-surround-by-blank t)
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
339 ;; Syntax Highlighting
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
340 (add-hook 'idlwave-mode-hook 'turn-on-font-lock)
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
341 ;; Automatically start the shell when needed
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
342 (setq idlwave-shell-automatic-start t)
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
343 ;; Bind debugging commands with CONTROL and SHIFT modifiers
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
344 (setq idlwave-shell-debug-modifiers '(control shift))
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
345 ;; Where are the online help files?
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
346 (setq idlwave-help-directory "~/.idlwave")
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
347 @end lisp
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
348
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
349 @node Getting Started, The IDLWAVE Major Mode, IDLWAVE in a Nutshell, Top
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
350 @chapter Getting Started (Tutorial)
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
351 @cindex Quick-Start
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
352 @cindex Tutorial
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
353 @cindex Getting Started
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
354
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
355 @section Lession I: Development Cycle
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
356
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
357 The purpose of this tutorial is to guide you through a very basic
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
358 development cycle with IDLWAVE. We will type a simple program into a
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
359 buffer and use the shell to compile, debug and run this program. On the
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
360 way we will use the most important commands in IDLWAVE. Note
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
361 however that there is much more funtionality available in IDLWAVE than
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
362 we cover here, and it will pay off greatly if eventually you go further
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
363 and read the whole manual.
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
364
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
365 I assume that you have access to Emacs or XEmacs with the full IDLWAVE
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
366 package including online help (@pxref{Installation}). I also assume
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
367 that you are familiar with Emacs and can read the nomenclature of key
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
368 presses in Emacs (in particular, @kbd{C} stands for @key{CONTROL} and
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
369 @kbd{M} for @key{META} (often the @key{ALT} key carries this
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
370 functionality)).
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
371
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
372 Open a new source file by typing
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
373
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
374 @example
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
375 @kbd{C-x C-f tutorial.pro @key{RET}}
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
376 @end example
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
377
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
378 A buffer for this file will pop up, and it should be in IDLWAVE mode.
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
379 You can see this by looking at the mode line, just below the editing
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
380 window. Also, the menu bar should contain entries @samp{IDLWAVE} and
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
381 @samp{Debug}.
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
382
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
383 Now cut-and-paste the following program, also available as
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
384 @file{tutorial.pro} in the IDLWAVE distribution.
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
385
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
386 @example
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
387 function daynr,d,m,y
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
388 ;; compute a sequence number for a date
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
389 ;; works 1901-2099.
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
390 if y lt 100 then y = y+1900
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
391 if m le 2 then delta = 1 else delta = 0
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
392 m1 = m + delta*12 + 1
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
393 y1 = y * delta
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
394 return, d + floor(m1*30.6)+floor(y1*365.25)+5
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
395 end
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
396
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
397 function weekday,day,month,year
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
398 ;; compute weekday number for date
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
399 nr = daynr(day,month,year)
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
400 return, nr mod 7
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
401 end
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
402
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
403 pro plot_wday,day,month
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
404 ;; Plot the weekday of a date in the first 10 years of this century.
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
405 years = 2000,+indgen(10)
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
406 wdays = intarr(10)
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
407 for i=0,n_elements(wdays)-1 do begin
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
408 wdays[i] = weekday(day,month,years[i])
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
409 end
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
410 plot,years,wdays,YS=2,YT="Wday (0=sunday)"
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
411 end
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
412 @end example
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
413
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
414 The indentation probably looks funny, since it's different from the
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
415 settings you use, so use the @key{TAB} key in each line to automatically
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
416 line it up (or more quickly @emph{select} the entire buffer with
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
417 @kbd{C-x h} followed by @kbd{M-C-\}). Notice how different syntactical
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
418 elements are highlighted in different colors, if you have set up support
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
419 for font-lock.
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
420
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
421 Let's check out two particular editing features of IDLWAVE. Place the
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
422 cursor after the @code{end} statement of the @code{for} loop and press
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
423 @key{SPC}. IDLWAVE blinks back to the beginning of the block and
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
424 changes the generic @code{end} to the specific @code{endfor}
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
425 automatically. Now place the cursor in any line you would like to split
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
426 into two and press @kbd{M-@key{RET}}. The line is split at the cursor
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
427 position, with the continuation @samp{$} and indentation all taken care
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
428 of. Use @kbd{C-/} to undo the last change.
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
429
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
430 The procedure @code{plot_wday} is supposed to plot the weekday of a given
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
431 date for the first 10 years of the 21st century. I have put in a few
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
432 bugs which we are going to fix now.
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
433
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
434 First, let's launch the IDLWAVE shell. You do this with the command
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
435 @kbd{C-c C-s}. The Emacs window will split and display IDL running in a
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
436 shell interaction buffer. Type a few commands like @code{print,!PI} to
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
437 convince yourself that you can work there like in an xterminal, or the
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
438 IDLDE. Use the arrow keys to cycle through your command history. Are
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
439 we having fun now?
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
440
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
441 Now go back to the source window and type @kbd{C-c C-d C-c} to compile
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
442 the program. If you watch the shell buffer, you see that IDLWAVE types
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
443 @samp{.run tutorial.pro} for you. But the compilation fails because
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
444 there is a comma in the line @samp{years=...}. The line with the error
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
445 is highlighted and the cursor positioned at the error, so remove the
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
446 comma (you should only need to hit Delete!). Compile again, using the
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
447 same keystrokes as before. Notice that the file is saved for you. This
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
448 time everything should work fine, and you should see the three routines
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
449 compile.
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
450
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
451 Now we want to use the command to plot the weekdays for January 1st. We
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
452 could type the full command ourselves, but why do that? Go back to the
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
453 shell window, type @samp{plot_} and hit @key{TAB}. After a bit of a
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
454 delay (while IDLWAVE initializes its routine info database), the window
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
455 will split to show all procedures it knows starting with that string,
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
456 and @w{@code{plot_wday}} should be one of them. Saving the buffer was
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
457 enough to tell IDLWAVE about this new routine. Click with the middle
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
458 mouse button on @code{plot_wday} and it will be copied to the shell
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
459 buffer, or if you prefer, add @samp{w} to @samp{plot_} to make it
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
460 unambiguous, hit @key{TAB}, and the full routine name will be completed.
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
461 Now provide the two arguments:
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
462
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
463 @example
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
464 plot_wday,1,1
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
465 @end example
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
466
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
467
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
468 and press @key{RET}. This fails with an error message telling you the
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
469 @code{YT} keyword to plot is ambiguous. What are the allowed keywords
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
470 again? Go back to the source window and put the cursor into the `plot'
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
471 line, and press @kbd{C-c ?}. This pops up the routine info window for
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
472 the plot routine, which contains a list of keywords, and the argument
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
473 list. Oh, we wanted @code{YTITLE}. Fix that up. Recompile with
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
474 @kbd{C-c C-d C-c}. Jump back into the shell with @kbd{C-c C-s}, press
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
475 the @key{UP} arrow to recall the previous command and execute again.
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
476
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
477 This time we get a plot, but it is pretty ugly -- the points are all
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
478 connected with a line. Hmm, isn't there a way for @code{plot} to use
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
479 symbols instead? What was that keyword? Position the cursor on the
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
480 plot line after a comma (where you'd normally type a keyword), and hit
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
481 @kbd{M-@key{Tab}}. A long list of plot's keywords appears. Aha, there
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
482 it is, @code{PSYM}. Middle click to insert it. An @samp{=} sign is
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
483 included for you too. Now what were the values of @code{PSYM} supposed
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
484 to be? With the cursor on or after the keyword, press @kbd{M-?} for
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
485 online help (alternatively, you could have right clicked on the colored
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
486 keyword itself in the completion list). The online help window will pop
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
487 up showing the documentation for the @code{PYSM} keyword. Ok, let's use
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
488 diamonds=4. Fix this, recompile (you know the command by now: @kbd{C-c
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
489 C-d C-c}, go back to the shell (if it's vanished, you know the command
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
490 to recall it by now: @kbd{C-c C-s}) and execute again. Now things look
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
491 pretty good.
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
492
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
493 Lets try a different day - how about April fool's day?
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
494
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
495 @example
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
496 plot_wday,1,4
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
497 @end example
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
498
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
499 Oops, this looks very wrong. All April fool's days cannot be
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
500 Fridays! We've got a bug in the program, perhaps in the @code{daynr}
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
501 function. Lets put a breakpoint on the last line there. Position the
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
502 cursor on the @samp{return, d+...} line and press @kbd{C-c C-d C-b}.
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
503 IDL sets a breakpoint (as you see in the shell window), and the line is
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
504 highlighted in some way. Back to the shell buffer, re-execute the
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
505 previous command. IDL stops at the line with the breakpoint. Now hold
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
506 down the SHIFT key and click with the middle mouse button on a few
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
507 variables there: @samp{d}, @samp{y}, @samp{m}, @samp{y1}, etc. Maybe
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
508 @code{d} isn't the correct type. CONTROL-SHIFT middle-click on it for
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
509 help. Well, it's an integer, so that's not the problem. Aha, @samp{y1}
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
510 is zero, but it should be the year, depending on delta. Shift click
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
511 @samp{delta} to see that it's 0. Below, we see the offending line:
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
512 @samp{y1=y*delta...} the multiplication should have been a minus sign!
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
513 So fix the line to
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
514
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
515 @example
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
516 y1 = y - delta
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
517 @end example
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
518
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
519 Now remove all breakpoints: @kbd{C-c C-d C-a}. Recompile and rerun the
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
520 command. Everything should now work fine. How about those leap years?
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
521 Change the code to plot 100 years and see that every 28 years, the
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
522 sequence of weekdays repeats.
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
523
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
524 @section Lession II: Customization
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
525
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
526 Emacs is probably the most customizable piece of software available, and
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
527 it would be a shame if you did not make use of this and adapt IDLWAVE to
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
528 your own preferences. Customizing Emacs or IDLWAVE means that you have
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
529 to set Lisp variables in the @file{.emacs} file in your home directory.
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
530 This looks scary to many people because of all the parenthesis.
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
531 However, you can just cut and paste the examples given here and work
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
532 from there.
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
533
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
534 Lets first use a boolean variable. These are variables which you turn
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
535 on or off, much like a checkbox. A value of @samp{t} means on, a
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
536 value of @samp{nil} means off. Copy the following line into your
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
537 @file{.emacs} file, exit and restart Emacs.
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
538
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
539 @lisp
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
540 (setq idlwave-reserved-word-upcase t)
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
541 @end lisp
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
542
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
543 When this option is turned on, each reserved word you type into an IDL
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
544 source buffer will be converted to upper case when you press @key{SPC}
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
545 or @key{RET} right after the word. Try it out! @samp{if} changes to
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
546 @samp{IF}, @samp{begin} to @samp{BEGIN}. If you don't like this
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
547 behavior, remove the option again from your @file{.emacs} file.
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
548
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
549 Now I bet you have your own indentation preferences for IDL code. For
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
550 example, I like to indent the main block of an IDL program a bit,
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
551 different from the conventions used by RSI. Also, I'd like to use only
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
552 3 spaces as indentation between @code{BEGIN} and @code{END}. Try the
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
553 following lines in @file{.emacs}
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
554
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
555 @lisp
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
556 (setq idlwave-main-block-indent 2)
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
557 (setq idlwave-block-indent 3)
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
558 (setq idlwave-end-offset -3)
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
559 @end lisp
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
560
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
561 Restart Emacs, take the program we developed in the first part of this
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
562 tutorial and re-indent it with @kbd{C-c h} and @kbd{M-C-\}. You
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
563 probably want to keep these lines in @file{.emacs}, with values adjusted
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
564 to your likings. If you want to get more information about any of these
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
565 variables, type, e.g., @kbd{C-h v idlwave-main-block-indent @key{RET}}.
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
566 To find which variables can be customized, look for items marked
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
567 @samp{User Option:} in the manual.
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
568
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
569 If you cannot wrap your head around this Lisp stuff, there is another,
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
570 more user-friendly way to customize all the IDLWAVE variables. You can
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
571 access it through the IDLWAVE menu in one of the @file{.pro} buffers,
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
572 option @code{Customize->Browse IDLWAVE Group}. Here you'll be presented
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
573 with all the various variables grouped into categories. You can
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
574 navigate the hierarchy (e.g. Idlwave Code Formatting->Idlwave Main Block
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
575 Indent), read about the variables, change them, and `Save for Future
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
576 Sessions'. Few of these variables need customization, but you can
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
577 exercise considerable control over IDLWAVE's functionality with them.
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
578
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
579 Many people I talk to find the key bindings used for the debugging
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
580 commands too long and complicated. Do I always have to type @kbd{C-c
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
581 C-d C-c} to get a single simple command? Due to Emacs rules and
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
582 conventions I cannot make better bindings by default, but you can.
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
583 First, there is a way to assign all debugging commands in a single sweep
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
584 to other combinations. The only problem is that we have to use
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
585 something which Emacs does not need for other important commands. A
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
586 good option is to execute debugging commands by holding down
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
587 @key{CONTROL} and @key{SHIFT} while pressing a single character:
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
588 @kbd{C-S-b} for setting a breakpoint, @kbd{C-S-c} for compiling the
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
589 current source file, @kbd{C-S-a} for deleting all breakpoints. You can
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
590 have this with
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
591
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
592 @lisp
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
593 (setq idlwave-shell-debug-modifiers '(shift control))
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
594 @end lisp
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
595
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
596 If you have a special keyboard with for example a @key{HYPER} key, you
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
597 could use
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
598
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
599 @lisp
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
600 (setq idlwave-shell-debug-modifiers '(hyper))
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
601 @end lisp
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
602
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
603 instead to get compilation on @kbd{H-c}.
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
604
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
605 You can also assign specific commands to function keys. This you must
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
606 do in the @emph{mode-hook}, a special function which is run when a new
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
607 buffer gets set up. Keybindings can only be done when the buffer
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
608 exists. The possibilities for key customization are endless. Here we
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
609 set function keys f5-f8 to common debugging commands.
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
610
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
611 @lisp
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
612 ;; First for the source buffer
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
613 (add-hook 'idlwave-mode-hook
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
614 (lambda ()
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
615 (local-set-key [f5] 'idlwave-shell-break-here)
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
616 (local-set-key [f6] 'idlwave-shell-clear-current-bp)
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
617 (local-set-key [f7] 'idlwave-shell-cont)
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
618 (local-set-key [f8] 'idlwave-shell-clear-all-bp)))
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
619 ;; Then for the shell buffer
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
620 (add-hook 'idlwave-shell-mode-hook
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
621 (lambda ()
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
622 (local-set-key [f5] 'idlwave-shell-break-here)
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
623 (local-set-key [f6] 'idlwave-shell-clear-current-bp)
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
624 (local-set-key [f7] 'idlwave-shell-cont)
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
625 (local-set-key [f8] 'idlwave-shell-clear-all-bp)))
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
626 @end lisp
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
627
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
628 @section Lession III: Library Catalog
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
629
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
630 We have already used the routine info display in the first part of this
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
631 tutorial. This was the key @kbd{C-c ?} which displays information about
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
632 the IDL routine near the cursor position. Wouldn't it be nice
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
633 to have the same available for your own library routines and for the
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
634 huge amount of code in major extension libraries like JHUPL or the
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
635 IDL-Astro library? To do this, you must give IDLWAVE a chance to study
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
636 these routines first. We call this @emph{Building the library catalog}.
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
637
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
638 From the IDLWAVE entry in the menu bar, select @code{Routine Info/Select
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
639 Catalog Directories}. If necessary, start the shell first with @kbd{C-c
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
640 C-s} (@pxref{Starting the Shell}). IDLWAVE will find out about the IDL
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
641 @code{!PATH} variable and offer a list of directories on the path.
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
642 Simply select them all (or whichever you want) and click on the
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
643 @samp{Scan&Save} button. Then go for a cup of coffee while IDLWAVE
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
644 collects information for each and every IDL routine on your search path.
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
645 All this information is written to the file @file{.idlcat} in your home
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
646 directory and will from now one be automatically loaded whenever you use
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
647 IDLWAVE. Try to use routine info (@kbd{C-c ?}) or completion
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
648 (@kbd{M-<TAB>}) while on any routine or partial routine name you know to
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
649 be located in the library. E.g., if you have scanned the IDL-Astro
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
650 library:
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
651
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
652 @example
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
653 a=readf@key{M-<TAB>}
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
654 @end example
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
655
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
656
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
657 expands to `readfits('. Then try
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
658
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
659 @example
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
660 a=readfits(@key{C-c ?}
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
661 @end example
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
662
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
663 and you get:
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
664
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
665 @example
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
666 Usage: Result = READFITS(filename, header, heap)
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
667 ...
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
668 @end example
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
669
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
670 I hope you made it until here. Now you are set to work with IDLWAVE.
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
671 On the way you will want to change other things, and to learn more about
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
672 the possibilities not discussed in this short tutorial. Read the
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
673 manual, look at the documentation strings of interesting variables (with
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
674 @kbd{C-h v idlwave<-variable-name> @key{RET}}) and ask the remaining
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
675 questions on @code{comp.lang.idl-pvwave}.
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
676
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
677 @node The IDLWAVE Major Mode, The IDLWAVE Shell, Getting Started, Top
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
678 @chapter The IDLWAVE Major Mode
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
679 @cindex IDLWAVE major mode
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
680 @cindex Major mode, @code{idlwave-mode}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
681
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
682 The IDLWAVE major mode supports editing IDL and WAVE/CL command files.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
683 In this chapter we describe the main features of the mode and how to
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
684 customize them.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
685
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
686 @menu
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
687 * Code Formatting:: Making code look nice
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
688 * Routine Info:: Calling Sequence and Keyword List
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
689 * Online Help:: One key press from source to help
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
690 * Completion:: Completing routine names and Keywords
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
691 * Routine Source:: How to visit the source file of routine XYZ
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
692 * Resolving Routines:: Force the Shell to compile a routine
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
693 * Code Templates:: Abbreviations for frequent constructs
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
694 * Actions:: Changing case, Padding, End checking
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
695 * Doc Header:: Inserting a standard header
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
696 * Motion Commands:: Moving through the structure of a program
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
697 * Misc Options:: Things that fit nowhere else
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
698 @end menu
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
699
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
700 @node Code Formatting, Routine Info, The IDLWAVE Major Mode, The IDLWAVE Major Mode
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
701 @section Code Formatting
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
702 @cindex Code formatting
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
703 @cindex Formatting, of code
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
704
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
705 @menu
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
706 * Code Indentation:: Reflecting the logical structure
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
707 * Comment Indentation:: Special indentation for comment lines
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
708 * Continuation Lines:: Splitting statements over lines
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
709 * Syntax Highlighting:: Font-lock support
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
710 @end menu
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
711
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
712 @node Code Indentation, Comment Indentation, Code Formatting, Code Formatting
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
713 @subsection Code Indentation
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
714 @cindex Code indentation
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
715 @cindex Indentation
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
716
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
717 Like all Emacs programming modes, IDLWAVE performs code indentation.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
718 The @key{TAB} key indents the current line relative to context.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
719 @key{LFD} insert a newline and indents the new line. The indentation is
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
720 governed by a number of variables.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
721
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
722 @cindex Foreign code, adapting
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
723 @cindex Indentation, of foreign code
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
724 @kindex M-C-\
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
725 To re-indent a larger portion of code (e.g. when working with foreign code
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
726 written with different conventions), use @kbd{M-C-\}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
727 (@code{indent-region}) after marking the relevant code. Useful marking
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
728 commands are @kbd{C-x h} (the entire file) or @kbd{M-C-h} (the
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
729 current subprogram). @xref{Actions}, for information how to impose
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
730 additional formatting conventions on foreign code.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
731
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
732 @defopt idlwave-main-block-indent (@code{0})
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
733 Extra indentation for the main block of code. That is the block between
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
734 the FUNCTION/PRO statement and the END statement for that program
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
735 unit.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
736 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
737
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
738 @defopt idlwave-block-indent (@code{5})
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
739 Extra indentation applied to block lines. If you change this, you
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
740 probably also want to change @code{idlwave-end-offset}.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
741 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
742
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
743 @defopt idlwave-end-offset (@code{-4})
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
744 Extra indentation applied to block END lines. A value equal to negative
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
745 @code{idlwave-block-indent} will make END lines line up with the block
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
746 BEGIN lines.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
747 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
748
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
749 @defopt idlwave-continuation-indent (@code{2})
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
750 Extra indentation applied to continuation lines and inside unbalanced
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
751 parenthesis.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
752 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
753
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
754 @node Comment Indentation, Continuation Lines, Code Indentation, Code Formatting
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
755 @subsection Comment Indentation
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
756 @cindex Comment indentation
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
757 @cindex Hanging paragraphs
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
758 @cindex Paragraphs, filling
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
759 @cindex Paragraphs, hanging
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
760
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
761 In IDL, lines starting with a @samp{;} are called @emph{comment lines}.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
762 Comment lines are indented as follows:
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
763
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
764 @multitable @columnfractions .1 .90
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
765 @item @code{;;;}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
766 @tab The indentation of lines starting with three semicolons remains
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
767 unchanged.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
768 @item @code{;;}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
769 @tab Lines starting with two semicolons are indented like the surrounding code.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
770 @item @code{;}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
771 @tab Lines starting with a single semicolon are indent to a minimum column.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
772 @end multitable
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
773
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
774 @noindent
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
775 The indentation of comments starting in column 0 is never changed.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
776
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
777 @defopt idlwave-no-change-comment
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
778 The indentation of a comment starting with this regexp will not be changed.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
779 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
780
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
781 @defopt idlwave-begin-line-comment
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
782 A comment anchored at the beginning of line.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
783 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
784
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
785 @defopt idlwave-code-comment
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
786 A comment that starts with this regexp is indented as if it is a part of
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
787 IDL code.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
788 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
789
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
790 @node Continuation Lines, Syntax Highlighting, Comment Indentation, Code Formatting
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
791 @subsection Continuation Lines and Filling
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
792 @cindex Continuation lines
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
793 @cindex Line splitting
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
794 @cindex String splitting
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
795 @cindex Splitting, of lines
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
796
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
797 @kindex M-@key{RET}
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
798 In IDL, a newline character terminates a statement unless preceded by a
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
799 @samp{$}. If you would like to start a continuation line, use
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
800 @kbd{M-@key{RET}} which calls the command @code{idlwave-split-line}. It
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
801 inserts a @samp{$} to indicate that the following line is a continuation
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
802 of the current line, terminates the line with a newline and indents the
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
803 new line. The command @kbd{M-@key{RET}} can also be used in the middle
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
804 of a line to split the line at that point. When used inside a long
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
805 string constant, the string is split with the @samp{+} concatenation
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
806 operator.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
807
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
808 @cindex Filling
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
809 @cindex @code{auto-fill-mode}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
810 @cindex Hanging paragraphs
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
811 When filling comment paragraphs, IDLWAVE overloads the normal filling
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
812 functions and uses a function which creates hanging paragraphs as they
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
813 are customary in the IDL routine headers. When @code{auto-fill-mode} is
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
814 turned on (toggle with @kbd{C-c C-a}), comments will be auto-filled. If
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
815 the first line of a paragraph is matched by
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
816 @code{idlwave-hang-indent-regexp}, subsequent lines are indented to
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
817 after the position of this match, as in the following example.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
818
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
819 @example
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
820 ; INPUTS:
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
821 ; x - an array containing
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
822 ; lots of interesting numbers.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
823 ;
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
824 ; y - another variable where
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
825 ; a hanging paragraph is used
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
826 ; to describe it.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
827 @end example
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
828
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
829 @kindex M-q
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
830 You also refill a comment paragraph with @kbd{M-q}.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
831
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
832 @defopt idlwave-fill-comment-line-only (@code{t})
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
833 Non-@code{nil} means auto fill will only operate on comment lines.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
834 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
835
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
836 @defopt idlwave-auto-fill-split-string (@code{t})
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
837 Non-@code{nil} means auto fill will split strings with the IDL @samp{+}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
838 operator.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
839 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
840
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
841 @defopt idlwave-split-line-string (@code{t})
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
842 Non-@code{nil} means @code{idlwave-split-line} will split strings with
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
843 @samp{+}.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
844 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
845
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
846 @defopt idlwave-hanging-indent (@code{t})
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
847 Non-@code{nil} means comment paragraphs are indented under the hanging
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
848 indent given by @code{idlwave-hang-indent-regexp} match in the first
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
849 line of the paragraph.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
850 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
851
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
852 @defopt idlwave-hang-indent-regexp
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
853 Regular expression matching the position of the hanging indent
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
854 in the first line of a comment paragraph.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
855 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
856
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
857 @defopt idlwave-use-last-hang-indent (@code{nil})
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
858 Non-@code{nil} means use last match on line for
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
859 @code{idlwave-indent-regexp}.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
860 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
861
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
862 @node Syntax Highlighting, , Continuation Lines, Code Formatting
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
863 @subsection Syntax Highlighting
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
864 @cindex Syntax highlighting
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
865 @cindex Highlighting of syntax
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
866 @cindex Font lock
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
867
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
868 Highlighting of keywords, comments, strings etc. can be accomplished
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
869 with @code{font-lock}. If you are using @code{global-font-lock-mode}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
870 (on Emacs), or have @code{font-lock} turned on in any other buffer in
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
871 XEmacs, it should also automatically work in IDLWAVE buffers. If not,
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
872 you can enforce it with the following line in your @file{.emacs}
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
873
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
874 @lisp
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
875 (add-hook 'idlwave-mode-hook 'turn-on-font-lock)
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
876 @end lisp
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
877
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
878 IDLWAVE supports 3 levels of syntax highlighting. The variable
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
879 @code{font-lock-maximum-decoration} determines which level is selected.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
880
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
881 @defopt idlwave-default-font-lock-items
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
882 Items which should be fontified on the default fontification level
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
883 2.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
884 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
885
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
886 @node Routine Info, Online Help, Code Formatting, The IDLWAVE Major Mode
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
887 @section Routine Info
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
888 @cindex Routine info
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
889 @cindex Updating routine info
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
890 @cindex Scanning buffers for routine info
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
891 @cindex Buffers, scanning for routine info
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
892 @cindex Shell, querying for routine info
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
893
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
894 @kindex C-c C-i
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
895 IDL defines more than one thousand procedures, functions and object
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
896 methods. This large command set makes it difficult to remember the
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
897 calling sequence and keywords of a command. IDLWAVE contains a list of
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
898 all builtin routines with calling sequences and keywords@footnote{This
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
899 list was created by scanning the IDL manual and might contain (very few)
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
900 errors. Please report any detected errors to the maintainer, so that
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
901 they can be fixed.}. It also scans Emacs buffers and library files for
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
902 routine definitions and queries the IDLWAVE-Shell for the properties of
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
903 modules currently compiled under the shell. This information is updated
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
904 automatically. If you think the information is not up-to-date, use
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
905 @kbd{C-c C-i} (@code{idlwave-update-routine-info}) to enforce a global
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
906 update.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
907
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
908 @kindex C-c ?
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
909 To display the information about a routine, press @kbd{C-c ?} which
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
910 calls the command @code{idlwave-routine-info}. When the current cursor
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
911 position is on the name or in the argument list of a procedure or
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
912 function, information will be displayed about the routine. For example,
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
913 consider the cursor positions in the following line
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
914
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
915 @example
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
916 plot,x,alog(x+5*sin(x) + 2),
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
917 1 2 3 4 5 6 7 8
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
918 @end example
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
919
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
920 @cindex Default routine, for info and help
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
921 On positions 1,2 and 8, information about the @samp{plot} procedure will
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
922 be shown. On positions 3,4, and 7, the @samp{alog} function will be
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
923 described, while positions 5 and 6 will select the @samp{sin} function.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
924 When you ask for routine information about an object method, and the
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
925 method exists in several classes, IDLWAVE queries for the class of the
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
926 object.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
927
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
928 @cindex Calling sequences
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
929 @cindex Keywords of a routine
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
930 @cindex Routine source information
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
931 The description displayed contains the calling sequence, the list of
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
932 keywords and the source location of this routine. It looks like this:
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
933
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
934 @example
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
935 Usage: XMANAGER, NAME, ID
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
936 Keywords: BACKGROUND CATCH CLEANUP EVENT_HANDLER GROUP_LEADER
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
937 JUST_REG MODAL NO_BLOCK
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
938 Source: SystemLib [CSB] /soft1/idl53/lib/xmanager.pro
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
939 @end example
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
940
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
941 @cindex Categories, of routines
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
942 @cindex Load-path shadows
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
943 @cindex Shadows, load-path
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
944 @cindex IDL variable @code{!PATH}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
945 @cindex @code{!PATH}, IDL variable
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
946 @cindex IDL variable @code{!DIR}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
947 @cindex @code{!DIR}, IDL variable
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
948
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
949 If a definition of this routine exists in several files accessible to
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
950 IDLWAVE, several @samp{Source} lines will point to the different files.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
951 This may indicate that your routine is shadowing a library routine,
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
952 which may or may not be what you want (@pxref{Load-Path Shadows}). The
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
953 information about the calling sequence and the keywords is derived from
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
954 the first source listed. Library routines can only be supported if you
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
955 have scanned the local IDL library (@pxref{Library Catalog}). The source
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
956 entry consists of a @emph{source category}, a set of @emph{flags} and
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
957 the path to the @emph{source file}. The following categories
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
958 exist:
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
959
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
960 @multitable @columnfractions .15 .85
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
961 @item @i{System}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
962 @tab A system routine, but we do not know if it is @i{Builtin} or
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
963 @i{SystemLib}. When the system library has bee scanned
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
964 (@pxref{Library Catalog}), this category will automatically split into the
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
965 next two.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
966 @item @i{Builtin}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
967 @tab A builtin routine with no source code available.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
968 @item @i{SystemLib}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
969 @tab A library routine in the official lib directory @file{!DIR/lib}.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
970 @item @i{Obsolete}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
971 @tab A library routine in the official lib directory @file{!DIR/lib/obsolete}.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
972 @item @i{Library}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
973 @tab A file on IDL's search path @code{!PATH}.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
974 @item @i{Other}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
975 @tab Any other file not known to be on the search path.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
976 @item @i{Unresolved}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
977 @tab The shell lists this routine as unresolved.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
978 @end multitable
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
979
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
980 You can define additional categories based on the file name and path
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
981 with the variable @code{idlwave-special-lib-alist}.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
982
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
983 @cindex Flags, in routine info
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
984 @cindex Duplicate routines
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
985 @cindex Multiply defined routines
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
986 @cindex Routine definitions, multiple
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
987 The flags @code{[CSB]} indicate if the file is known to IDLWAVE from the
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
988 library catalog (@w{@code{[C--]}}, @pxref{Library Catalog}), from the Shell
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
989 (@w{@code{[-S-]}}) or from an Emacs buffer (@w{@code{[--B]}}).
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
990 Combinations are possible. If a file contains multiple definitions of
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
991 the same routine, the file name will be prefixed with @samp{(Nx)} where
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
992 @samp{N} is the number of definitions.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
993
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
994 @cindex Online Help from the routine info buffer
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
995 @cindex Active text, in routine info
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
996 @cindex Inserting keywords, from routine info
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
997 @cindex Source file, access from routine info
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
998 Some of the text in the @file{*Help*} buffer will be active (it
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
999 highlights when you move the mouse over it). Clicking on these items
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1000 will have the following effects:
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1001
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1002 @multitable @columnfractions 0.15 0.85
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1003 @item @i{Usage}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1004 @tab If online help is installed, a click with the @emph{right} mouse
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1005 button on the @i{Usage:} line will access the help for the
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1006 routine (@pxref{Online Help}).
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1007 @item @i{Keyword}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1008 @tab Online help about keywords is also available with the
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1009 @emph{right} mouse button. Clicking on a keyword with the @emph{middle}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1010 mouse button will insert this keyword in the buffer from where
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1011 @code{idlwave-routine-info} was called. Holding down @key{SHIFT} while
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1012 clicking also adds the initial @samp{/}.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1013 @item @i{Source}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1014 @tab Clicking with the @emph{middle} mouse button on a @samp{Source} line
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1015 finds the source file of the routine and visits it in another window.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1016 Another click on the same line switches back to the buffer from which
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1017 @kbd{C-c ?} was called. If you use the @emph{right} mouse button, the
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1018 source will not be visited by a buffer, but displayed in the online help
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1019 window.
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
1020 @item @i{Classes}
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
1021 @tab The @i{Classes} line is only included in the routine info window if
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
1022 the current class inherits from other classes. You can click with the
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
1023 @emph{middle} mouse button to display routine info about the current
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
1024 method in other classes on the inheritance chain.
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1025 @end multitable
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1026
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1027 @defopt idlwave-resize-routine-help-window (@code{t})
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1028 Non-@code{nil} means, resize the Routine-info @file{*Help*} window to
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1029 fit the content.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1030 @end defopt
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1031
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1032 @defopt idlwave-special-lib-alist
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1033 Alist of regular expressions matching special library directories.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1034 @end defopt
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1035
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1036 @defopt idlwave-rinfo-max-source-lines (@code{5})
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1037 Maximum number of source files displayed in the Routine Info window.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1038 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1039
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1040 @page
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1041
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1042 @node Online Help, Completion, Routine Info, The IDLWAVE Major Mode
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1043 @section Online Help
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1044
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1045 @cindex Online Help
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1046 @cindex @file{idlw-help.txt}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1047 @cindex @file{idlw-help.el}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1048 @cindex IDL manual, ASCII version
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1049 @cindex Installing online help
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1050 @cindex Online Help, Installation
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1051 @cindex Speed, of online help
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1052 For IDL system routines, RSI provides extensive documentation. IDLWAVE
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1053 can access an ASCII version of this documentation very quickly and
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1054 accurately. This is @emph{much} faster than using the IDL online help
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1055 application, also because usually IDLWAVE gets you to the right place in
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1056 the docs directly, without additional browsing and scrolling. For this
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1057 online help to work, you need an ASCII version of the IDL documentation
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1058 which is not part of the standard IDLWAVE distribution. The required
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1059 files can be downloaded from @uref{@value{IDLWAVE-HOMEPAGE}, the
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1060 maintainers webpage}. As the text is extracted from PDF files, the
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1061 formatting of the help text is good for normal text, but graphics and
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1062 multiline equations will not be well represented. See also
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1063 @ref{Documentation Scan}.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1064
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1065 @cindex Source code, as online help
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1066 @cindex DocLib header, as online help
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1067 For routines which are not documented in the IDL manual (for example
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1068 your own routines), the source code is used as help text. If the
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1069 requested information can be found in a (more or less) standard DocLib
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1070 file header, IDLWAVE shows the header. Otherwise the routine definition
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1071 statement (@code{pro}/@code{function}) is shown.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1072
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1073 @kindex M-?
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1074 In any IDL program, press @kbd{M-?} (@code{idlwave-context-help}) or
36161
f6ba7a00b9e1 Upcase "mouse" in @kbd.
Richard M. Stallman <rms@gnu.org>
parents: 34434
diff changeset
1075 click with @kbd{S-Mouse-3} to access context sensitive online help. The
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1076 following locations are recognized as context:
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1077
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1078 @cindex Context, for online help
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1079 @multitable @columnfractions .25 .75
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1080 @item @i{Routine name}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1081 @tab The name of a routine (function, procedure, method).
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1082 @item @i{Keyword Parameter}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1083 @tab Keyword parameter of a routine.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1084 @item @i{System Variable}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1085 @tab System variable like @code{!DPI}.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1086 @item @i{IDL Statement}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1087 @tab Like @code{PRO}, @code{REPEAT}, or @code{COMPILE_OPT}.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1088 @item @i{Class name}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1089 @tab Class name in @code{OBJ_NEW} call.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1090 @item @i{Executive Command}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1091 @tab Executive command like @code{.RUN}. Mostly useful in the shell.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1092 @item @i{Default}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1093 @tab The routine that would be selected for routine info display.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1094 @end multitable
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1095
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1096 @cindex @code{OBJ_NEW}, special online help
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1097 Note that the @code{OBJ_NEW} function is special in that the help
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1098 displayed depends on the cursor position: If the cursor is on the
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1099 @samp{OBJ_NEW}, this function is described. If it is on the class name
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1100 inside the quotes, the documentation for the class is pulled up. If the
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1101 cursor is @emph{after} the class name, anywhere in the argument list,
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1102 the documentation for the corresponding @code{Init} method and its
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1103 keywords is targeted.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1104
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1105 @noindent Apart from source buffers, there are two more places from
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1106 which online help can be accessed.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1107
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1108 @itemize @bullet
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1109 @item
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1110 Online help for routines and keywords can be accessed through the
36161
f6ba7a00b9e1 Upcase "mouse" in @kbd.
Richard M. Stallman <rms@gnu.org>
parents: 34434
diff changeset
1111 Routine Info display. Click with @kbd{Mouse-3} on an item to see the
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1112 corresponding help (@pxref{Routine Info}).
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1113 @item
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1114 When using completion and Emacs pops up a window with possible
36161
f6ba7a00b9e1 Upcase "mouse" in @kbd.
Richard M. Stallman <rms@gnu.org>
parents: 34434
diff changeset
1115 completions, clicking with @kbd{Mouse-3} on a completion item invokes
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1116 help on that item (@pxref{Completion}).
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1117 @end itemize
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1118 @noindent
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1119 In both cases, a blue face indicates that the item is documented in the
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1120 IDL manual.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1121
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1122 @page
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1123
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1124 @cindex Help application, keybindings
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1125 @cindex Keybindings, in help application
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1126 The help window is normally displayed in a separate frame. The
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1127 following commands can be used to navigate inside the help system.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1128
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1129 @multitable @columnfractions .15 .85
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1130 @item @kbd{@key{SPACE}}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1131 @tab Scroll forward one page.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1132 @item @kbd{@key{RET}}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1133 @tab Scroll forward one line.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1134 @item @kbd{@key{DEL}}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1135 @tab Scroll back one page.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1136 @item @kbd{n, p}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1137 @tab Browse to the next or previous topic (in physical sequence).
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1138 @item @kbd{b, f}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1139 @tab Move back and forward through the help topic history.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1140 @item @kbd{c}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1141 @tab Clear the history.
36161
f6ba7a00b9e1 Upcase "mouse" in @kbd.
Richard M. Stallman <rms@gnu.org>
parents: 34434
diff changeset
1142 @item @kbd{Mouse-2}
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1143 @tab Follow a link. Active links are displayed in a different font.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1144 Items under @i{See Also} are active, and classes have links to their
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1145 methods and back.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1146 @item @kbd{o}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1147 @tab Open a topic. The topic can be selected with completion.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1148 @item @kbd{*}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1149 @tab Load the whole help file into Emacs, for global text searches.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1150 @item @kbd{q}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1151 @tab Kill the help window.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1152 @end multitable
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1153
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1154 @sp 1
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1155 @noindent When the help text is a source file, the following commands
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1156 are also available.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1157 @multitable @columnfractions .15 .85
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1158 @item @kbd{h}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1159 @tab Jump to DocLib Header of the routine whose source is displayed
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1160 as help.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1161 @item @kbd{H}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1162 @tab Jump to the first DocLib Header in the file.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1163 @item @kbd{.} @r{(Dot)}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1164 @tab Jump back and forth between the routine definition (the
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1165 @code{pro}/@code{function} statement) and the description of the help
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1166 item in the DocLib header.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1167 @item @kbd{F}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1168 @tab Fontify the buffer like source code. See the variable @code{idlwave-help-fontify-source-code}.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1169 @end multitable
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1170
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1171 @defopt idlwave-help-directory
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1172 The directory where idlw-help.txt and idlw-help.el are stored.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1173 @end defopt
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1174
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1175 @defopt idlwave-help-use-dedicated-frame (@code{t})
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1176 Non-nil means, use a separate frame for Online Help if possible.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1177 @end defopt
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1178
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1179 @defopt idlwave-help-frame-parameters
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1180 The frame parameters for the special Online Help frame.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1181 @end defopt
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1182
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1183 @defopt idlwave-max-popup-menu-items (@code{20})
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1184 Maximum number of items per pane in popup menus.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1185 @end defopt
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1186
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1187 @defopt idlwave-extra-help-function
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1188 Function to call for help if the normal help fails.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1189 @end defopt
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1190
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1191 @defopt idlwave-help-fontify-source-code (@code{nil})
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1192 Non-nil means, fontify source code displayed as help.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1193 @end defopt
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1194
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1195 @defopt idlwave-help-source-try-header (@code{t})
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1196 Non-nil means, try to find help in routine header when displaying source
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1197 file.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1198 @end defopt
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1199
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1200 @defopt idlwave-help-link-face
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1201 The face for links to IDLWAVE online help.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1202 @end defopt
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1203
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
1204 @defopt idlwave-help-activate-links-agressively (@code{t})
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
1205 Non-@code{nil} means, make all possible links in help window active.
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
1206 @end defopt
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
1207
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1208 @node Completion, Routine Source, Online Help, The IDLWAVE Major Mode
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1209 @section Completion
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1210 @cindex Completion
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1211 @cindex Keyword completion
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1212 @cindex Method completion
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1213 @cindex Object method completion
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1214 @cindex Class name completion
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1215 @cindex Function name completion
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1216 @cindex Procedure name completion
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1217
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1218 @kindex M-@key{TAB}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1219 @kindex C-c C-i
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1220 IDLWAVE offers completion for class names, routine names and keywords.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1221 As in many programming modes, completion is bound to @kbd{M-@key{TAB}}.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1222 Completion uses the same internal information as routine info, so when
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1223 necessary it can be updated with @kbd{C-c C-i}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1224 (@code{idlwave-update-routine-info}).
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1225
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1226 The completion function is context sensitive and figures out what to
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1227 complete at point. Here are example lines and what @kbd{M-@key{TAB}}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1228 would try to complete when the cursor is on the position marked with a
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1229 @samp{*}.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1230
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1231 @example
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1232 plo* @r{Procedure}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1233 x = a* @r{Function}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1234 plot,xra* @r{Keyword of @code{plot} procedure}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1235 plot,x,y,/x* @r{Keyword of @code{plot} procedure}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1236 plot,min(* @r{Keyword of @code{min} function}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1237 obj -> a* @r{Object method (procedure)}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1238 a(2,3) = obj -> a* @r{Object method (function)}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1239 x = obj_new('IDL* @r{Class name}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1240 x = obj_new('MyCl',a* @r{Keyword to @code{Init} method in class @code{MyCl}}
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1241 pro A* @r{Class name}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1242 pro * @r{Fill in @code{Class::} of first method in this file}
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
1243 !v* @r{System variable}
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
1244 !version.t* @r{Structure tag of system variable}
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
1245 self.g* @r{Class structure tag in methods}
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1246 @end example
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1247
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1248 @cindex Scrolling the @file{*Completions*} window
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1249 @cindex Completion, scrolling
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1250 @cindex Completion, Online Help
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1251 @cindex Online Help in @file{*Completions*} buffer
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1252 If the list of completions is too long to fit in the
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1253 @file{*Completions*} window, the window can be scrolled by pressing
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1254 @kbd{M-@key{TAB}} repeatedly. Online help (if installed) for each
36161
f6ba7a00b9e1 Upcase "mouse" in @kbd.
Richard M. Stallman <rms@gnu.org>
parents: 34434
diff changeset
1255 possible completion is available by clicking with @kbd{Mouse-3} on the
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1256 item. Items for which system online help (from the IDL manual) is
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1257 available will be displayed in a different font. For other items, the
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1258 corresponding source code or DocLib header is available as help text.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1259
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1260 @cindex Case of completed words
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1261 @cindex Mixed case completion
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1262 The case of the completed words is determined by what is already in the
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1263 buffer. When the partial word being completed is all lower case, the
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1264 completion will be lower case as well. If at least one character is
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1265 upper case, the string will be completed in upper case or mixed case.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1266 The default is to use upper case for procedures, functions and keywords,
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1267 and mixed case for object class names and methods, similar to the
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1268 conventions in the IDL manuals. These defaults can be changed with the
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1269 variable @code{idlwave-completion-case}.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1270
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1271 @defopt idlwave-completion-case
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1272 Association list setting the case (UPPER/lower/Capitalized/...) of completed
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1273 words.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1274 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1275
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1276 @defopt idlwave-completion-force-default-case (@code{nil})
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1277 Non-@code{nil} means, completion will always honor the settings in
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1278 @code{idlwave-completion-case}. When nil (the default), lower case
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1279 strings will be completed to lower case.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1280 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1281
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1282 @defopt idlwave-complete-empty-string-as-lower-case (@code{nil})
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1283 Non-@code{nil} means, the empty string is considered lower case for
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1284 completion.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1285 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1286
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1287 @defopt idlwave-keyword-completion-adds-equal (@code{t})
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1288 Non-@code{nil} means, completion automatically adds @samp{=} after
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1289 completed keywords.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1290 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1291
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1292 @defopt idlwave-function-completion-adds-paren (@code{t})
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1293 Non-@code{nil} means, completion automatically adds @samp{(} after
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1294 completed function. A value of `2' means, also add the closing
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1295 parenthesis and position cursor between the two.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1296 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1297
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1298 @defopt idlwave-completion-restore-window-configuration (@code{t})
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1299 Non-@code{nil} means, restore window configuration after successful
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1300 completion.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1301 @end defopt
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1302
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1303 @defopt idlwave-highlight-help-links-in-completion (@code{t})
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1304 Non-nil means, highlight completions for which system help is available.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1305 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1306
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1307 @subsubheading Object Method Completion and Class Ambiguity
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1308 @cindex Object methods
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1309 @cindex Class ambiguity
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1310 @cindex @code{self} object, default class
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1311 An object method is not uniquely determined without the object's class.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1312 Since the class part is usually omitted in the source code, IDLWAVE
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1313 considers all available methods in all classes as possible completions
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1314 of an object method name. For keywords, the combined keywords of the
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1315 current method in all available classes will be considered. In the
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1316 @file{*Completions*} buffer, the classes allowed for each completion
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1317 will be shown next to the item (see option
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1318 @code{idlwave-completion-show-classes}). As a special case, the class
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1319 of an object called @samp{self} object is always the class of the
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
1320 current routine. All classes it inherits from are considered as well
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
1321 where appropriate.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1322
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1323 @cindex Forcing class query.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1324 @cindex Class query, forcing
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1325 You can also call @code{idlwave-complete} with a prefix arg: @kbd{C-u
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1326 M-@key{TAB}}. IDLWAVE will then prompt you for the class in order to
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1327 narrow down the number of possible completions. The variable
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1328 @code{idlwave-query-class} can be configured to make this behavior the
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1329 default (not recommended). After you have specified the class
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1330 for a particular statement (e.g. when completing the method), IDLWAVE
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1331 can remember it for the rest of the editing session. Subsequent
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1332 completions in the same statement (e.g. keywords) can then reuse this
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1333 class information. Remembering the class works by placing a text
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1334 property in the object operator @samp{->}. This is not enabled by
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1335 default - the variable @code{idlwave-store-inquired-class} can be used
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1336 to turn it on.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1337
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
1338 @defopt idlwave-support-inheritance (@code{t})
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
1339 Non-@code{nil} means, treat inheritance with completion, online help etc.
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
1340 @end defopt
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
1341
27600
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
1342 @defopt idlwave-completion-show-classes (@code{1})
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1343 Non-@code{nil} means, show classes in @file{*Completions*} buffer when
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1344 completing object methods and keywords.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1345 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1346
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1347 @defopt idlwave-completion-fontify-classes (@code{t})
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1348 Non-@code{nil} means, fontify the classes in completions buffer.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1349 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1350
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1351 @defopt idlwave-query-class (@code{nil})
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1352 Association list governing query for object classes during completion.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1353 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1354
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1355 @defopt idlwave-store-inquired-class (@code{nil})
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1356 Non-@code{nil} means, store class of a method call as text property on
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1357 @samp{->}.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1358 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1359
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1360 @defopt idlwave-class-arrow-face
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1361 Face to highlight object operator arrows @samp{->} which carry a class
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1362 text property.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1363 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1364
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1365 @node Routine Source, Resolving Routines, Completion, The IDLWAVE Major Mode
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1366
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1367 @section Routine Source
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1368 @cindex Routine source file
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1369 @cindex Module source file
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1370 @cindex Source file, of a routine
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1371 @kindex C-c C-v
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1372 Apart from clicking on a @i{Source:} line in the routine info window,
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1373 there is also another way to find the source file of a routine. The
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1374 command @kbd{C-c C-v} (@code{idlwave-find-module}) asks for a module
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1375 name, offering the same default as @code{idlwave-routine-info} would
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1376 have used. In the minibuffer, specify a complete routine name
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1377 (including the class part). IDLWAVE will display the source file in
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1378 another window.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1379
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1380 @cindex Buffers, killing
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1381 @cindex Killing autoloaded buffers
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1382 Since getting the source of a routine into a buffer is so easy with
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1383 IDLWAVE, too many buffers visiting different IDL source files are
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1384 sometimes created. The special command @kbd{C-c C-k}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1385 (@code{idlwave-kill-autoloaded-buffers}) can be used to remove these
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1386 buffers.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1387
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1388 @node Resolving Routines, Code Templates, Routine Source, The IDLWAVE Major Mode
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1389 @section Resolving Routines
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1390 @cindex @code{RESOLVE_ROUTINE}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1391 @cindex Compiling library modules
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1392 @cindex Routines, resolving
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1393
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1394 The key sequence @kbd{C-c =} calls the command @code{idlwave-resolve}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1395 and sends the line @samp{RESOLVE_ROUTINE, '@var{routine_name}'} to IDL
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1396 in order to resolve (compile) it. The default routine to be resolved is
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1397 taken from context, but you get a chance to edit it.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1398
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1399 @code{idlwave-resolve} is one way to get a library module within reach
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1400 of IDLWAVE's routine info collecting functions. A better way is to
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
1401 scan (parts of) the library (@pxref{Library Catalog}). Routine info on
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1402 library modules will then be available without the need to compile the
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1403 modules first, and even without a running shell.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1404
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1405 @xref{Sources of Routine Info}, for in-depth information where IDLWAVE
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1406 collects data about routines, and how to update this information.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1407
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1408
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1409 @node Code Templates, Actions, Resolving Routines, The IDLWAVE Major Mode
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1410 @section Code Templates
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1411 @cindex Code templates
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1412 @cindex Abbreviations
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1413 @cindex Templates
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1414
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1415 IDLWAVE can insert IDL code templates into the buffer. For a few
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1416 templates, this is done with direct keybindings:
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1417
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1418 @multitable @columnfractions .15 .85
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1419 @item @kbd{C-c C-c}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1420 @tab @code{CASE} statement template
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1421 @item @kbd{C-c C-f}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1422 @tab @code{FOR} loop template
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1423 @item @kbd{C-c C-r}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1424 @tab @code{REPEAT} loop template
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1425 @item @kbd{C-c C-w}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1426 @tab @code{WHILE} loop template
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1427 @end multitable
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1428
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1429 Otherwise, special abbreviations are used. Emacs abbreviations are
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1430 expanded by typing text into the buffer and pressing @key{SPC} or
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1431 @key{RET}. The special abbreviations used to insert code templates all
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1432 start with a @samp{\} (the backslash). Here are a few examples of
27600
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
1433 predefined abbreviations. For a full list, use @kbd{M-x
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1434 idlwave-list-abbrevs}.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1435
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1436 @multitable @columnfractions .15 .85
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1437 @item @code{\pr}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1438 @tab @code{PROCEDURE} template
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1439 @item @code{\fu}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1440 @tab @code{FUNCTION} template
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1441 @item @code{\c}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1442 @tab @code{CASE} statement template
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1443 @item @code{\f}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1444 @tab @code{FOR} loop template
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1445 @item @code{\r}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1446 @tab @code{REPEAT} loop template
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1447 @item @code{\w}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1448 @tab @code{WHILE} loop template
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1449 @item @code{\i}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1450 @tab @code{IF} statement template
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1451 @item @code{\elif}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1452 @tab @code{IF-ELSE} statement template
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1453 @item @code{\b}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1454 @tab @code{BEGIN}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1455 @end multitable
27600
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
1456
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
1457 The templates are expanded in upper or lower case, depending upon the
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
1458 variables @code{idlwave-abbrev-change-case} and
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1459 @code{idlwave-reserved-word-upcase}.
27600
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
1460
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
1461 @defopt idlwave-abbrev-start-char (@code{"\"})
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1462 A single character string used to start abbreviations in abbrev
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1463 mode.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1464 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1465
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1466 @defopt idlwave-abbrev-move (@code{t})
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1467 Non-@code{nil} means the abbrev hook can move point, e.g. to end up
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1468 between the parenthesis of a function call.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1469 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1470
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1471 @node Actions, Doc Header, Code Templates, The IDLWAVE Major Mode
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1472 @section Actions
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1473 @cindex Actions
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1474 @cindex Coding standards, enforcing
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1475
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1476 @emph{Actions} are special commands which are executed automatically
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1477 while you write code in order to check the structure of the program or
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1478 to enforce coding standards. Most actions which have been implemented
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1479 in IDLWAVE are turned off by default, assuming that the average user
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1480 wants her code the way she writes it. But if you are a lazy typist and
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1481 want your code to adhere to certain standards, they can be
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1482 helpful.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1483
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1484 Action can be applied in three ways:
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1485
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1486 @itemize @bullet
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1487 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1488 Some actions are applied directly while typing. For example, pressing
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1489 @samp{=} can run a check to make sure that this operator is surrounded
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1490 by spaces and insert these spaces if necessary. Pressing @key{SPC}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1491 after a reserved word can call a command to change the word to upper
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1492 case.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1493 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1494 When a line is re-indented with @key{TAB}, actions can be applied to the
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1495 entire line. To enable this, the variable @code{idlwave-do-actions}
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1496 must be non-@code{nil}.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1497 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1498 @cindex Foreign code, adapting
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1499 @cindex Actions, applied to foreign code
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1500 Action can also be applied to a larger piece of code, e.g. in order to
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1501 convert foreign code to your own style. To do this, mark the relevant
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1502 part of the code and execute @kbd{M-x expand-region-abbrevs}. Useful
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1503 marking commands are @kbd{C-x h} (the entire file) or @kbd{M-C-h} (the
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1504 current subprogram). @xref{Code Indentation}, for information how to
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1505 adjust the indentation of the code.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1506 @end itemize
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1507
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1508 @defopt idlwave-do-actions (@code{nil})
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1509 Non-@code{nil} means performs actions when indenting.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1510 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1511
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1512 @menu
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1513 * Block Boundary Check:: Is the END correct
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1514 * Padding Operators:: Enforcing space around `=' etc
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1515 * Case Changes:: Enforcing upper case keywords
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1516 @end menu
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1517
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1518 @node Block Boundary Check, Padding Operators, Actions, Actions
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1519 @subsection Block Boundary Check
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1520 @cindex Block boundary check
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1521 @cindex @code{END} type checking
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1522 @cindex @code{END}, automatic insertion
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1523 @cindex @code{END}, expanding
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1524 @cindex Block, closing
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1525 @cindex Closing a block
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1526
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1527 Whenever you type an @code{END} statement, IDLWAVE finds the
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1528 corresponding start of the block and the cursor blinks back to that
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1529 location for a second. If you have typed a specific @code{END}, like
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1530 @code{ENDIF} or @code{ENDCASE}, you get a warning if that kind of END
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1531 does not match the type of block it terminates.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1532
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1533 Set the variable @code{idlwave-expand-generic-end} in order to have all
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1534 generic @code{END} statements automatically expanded to a specific type.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1535 You can also type @kbd{C-c ]} to close the current block by inserting
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1536 the appropriate @code{END} statement.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1537
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1538 @defopt idlwave-show-block (@code{t})
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1539 Non-@code{nil} means point blinks to block beginning for
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1540 @code{idlwave-show-begin}.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1541 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1542
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
1543 @defopt idlwave-expand-generic-end (@code{t})
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1544 Non-@code{nil} means expand generic END to ENDIF/ENDELSE/ENDWHILE etc.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1545 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1546
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1547 @defopt idlwave-reindent-end (@code{t})
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1548 Non-nil means re-indent line after END was typed.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1549 @end defopt
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1550
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1551 @node Padding Operators, Case Changes, Block Boundary Check, Actions
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1552 @subsection Padding Operators
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1553 @cindex Padding operators with spaces
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1554 @cindex Operators, padding with spaces
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1555 @cindex Space, around operators
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1556
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1557 Some operators can be automatically surrounded by spaces. This can
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1558 happen when the operator is typed, or also later when the line is
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1559 indented. IDLWAVE contains this setting for the operators @samp{&},
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1560 @samp{<}, @samp{>}, @samp{,}, @samp{=}, and @samp{->}@footnote{Operators
27600
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
1561 longer than one character can only be padded during line indentation.},
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
1562 but the feature is turned off by default. If you want to turn it on,
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
1563 customize the variables @code{idlwave-surround-by-blank} and
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
1564 @code{idlwave-do-actions}. You can also define similar actions for
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
1565 other operators by using the function @code{idlwave-action-and-binding}
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
1566 in the mode hook. For example, to enforce space padding of the @samp{+}
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1567 and @samp{*} operators, try this in @file{.emacs}
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1568
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1569 @lisp
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1570 (add-hook 'idlwave-mode-hook
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1571 (lambda ()
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1572 (setq idlwave-surround-by-blank t) ; Turn this type of actions on
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1573 (idlwave-action-and-binding "*" '(idlwave-surround 1 1))
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1574 (idlwave-action-and-binding "+" '(idlwave-surround 1 1))))
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1575 @end lisp
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1576
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1577 @defopt idlwave-surround-by-blank (@code{nil})
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1578 Non-@code{nil} means, enable @code{idlwave-surround}. If non-nil,
27600
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
1579 @samp{=}, @samp{<}, @samp{>}, @samp{&}, @samp{,}, @samp{->} are
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1580 surrounded with spaces by @code{idlwave-surround}.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1581 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1582
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1583 @defopt idlwave-pad-keyword (@code{t})
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1584 Non-@code{nil} means pad @samp{=} for keywords like assignments.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1585 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1586
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1587 @node Case Changes, , Padding Operators, Actions
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1588 @subsection Case Changes
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1589 @cindex Case changes
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1590 @cindex Upcase, enforcing for reserved words
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1591 @cindex Downcase, enforcing for reserved words
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1592
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1593 Actions can be used to change the case of reserved words or expanded
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1594 abbreviations by customizing the variables
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1595 @code{idlwave-abbrev-change-case} and
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1596 @code{idlwave-reserved-word-upcase}. If you want to change the case of
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1597 additional words automatically, put something like the following into
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1598 your @file{.emacs} file:
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1599
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1600 @lisp
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1601 (add-hook 'idlwave-mode-hook
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1602 (lambda ()
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1603 ;; Capitalize system vars
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1604 (idlwave-action-and-binding idlwave-sysvar '(capitalize-word 1) t)
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1605 ;; Capitalize procedure name
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1606 (idlwave-action-and-binding "\\<\\(pro\\|function\\)\\>[ \t]*\\<"
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1607 '(capitalize-word 1) t)
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1608 ;; Capitalize common block name
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1609 (idlwave-action-and-binding "\\<common\\>[ \t]+\\<"
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1610 '(capitalize-word 1) t)))
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1611 @end lisp
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1612
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1613 For more information, see the documentation string for the function
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1614 @code{idlwave-action-and-binding}.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1615
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1616 @defopt idlwave-abbrev-change-case (@code{nil})
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1617 Non-@code{nil} means all abbrevs will be forced to either upper or lower
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1618 case. Legal values are @code{nil}, @code{t}, and @code{down}.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1619 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1620
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1621 @defopt idlwave-reserved-word-upcase (@code{nil})
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1622 Non-@code{nil} means, reserved words will be made upper case via abbrev
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1623 expansion.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1624 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1625
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1626
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1627 @node Doc Header, Motion Commands, Actions, The IDLWAVE Major Mode
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1628 @section Documentation Header
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1629 @cindex Documentation header
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1630 @cindex DocLib header
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1631 @cindex Modification timestamp
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1632 @cindex Header, for file documentation
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1633 @cindex Timestamp, in doc header.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1634 @cindex Changelog, in doc header.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1635
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1636 @kindex C-c C-h
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1637 @kindex C-c C-m
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1638 The command @kbd{C-c C-h} inserts a standard routine header into the
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1639 buffer, with the usual fields for documentation. One of the keywords is
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1640 @samp{MODIFICATION HISTORY} under which the changes to a routine can be
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1641 recorded. The command @kbd{C-c C-m} jumps to the @samp{MODIFICATION
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1642 HISTORY} of the current routine or file and inserts the user
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1643 name with a timestamp.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1644
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1645 @defopt idlwave-file-header
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1646 The doc-header template or a path to a file containing it.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1647 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1648
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1649 @defopt idlwave-timestamp-hook
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1650 The hook function used to update the timestamp of a function.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1651 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1652
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1653 @defopt idlwave-doc-modifications-keyword
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1654 The modifications keyword to use with the log documentation commands.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1655 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1656
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1657 @defopt idlwave-doclib-start
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1658 Regexp matching the start of a document library header.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1659 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1660
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1661 @defopt idlwave-doclib-end
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1662 Regexp matching the start of a document library header.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1663 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1664
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1665 @node Motion Commands, Misc Options, Doc Header, The IDLWAVE Major Mode
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1666 @section Motion Commands
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1667 @cindex Motion commands
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1668 @cindex Program structure, moving through
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1669 @cindex Code structure, moving through
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1670 @cindex @file{Func-menu}, XEmacs package
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1671 @cindex @file{Imenu}, Emacs package
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1672 @cindex Function definitions, jumping to
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1673 @cindex Procedure definitions, jumping to
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1674
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1675 IDLWAVE supports both @file{Imenu} and @file{Func-menu}, two packages
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1676 which make it easy to jump to the definitions of functions and
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1677 procedures in the current file.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1678
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1679 Several commands allow to move quickly through the structure of an IDL
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1680 program. These are
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1681
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1682 @multitable @columnfractions .15 .85
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1683 @item @kbd{C-M-a}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1684 @tab Beginning of subprogram
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1685 @item @kbd{C-M-e}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1686 @tab End of subprogram
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1687 @item @kbd{C-c @{}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1688 @tab Beginning of block (stay inside the block)
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1689 @item @kbd{C-c @}}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1690 @tab End of block (stay inside the block)
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1691 @item @kbd{M-C-n}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1692 @tab Forward block (on same level)
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1693 @item @kbd{M-C-p}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1694 @tab Backward block (on same level)
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1695 @item @kbd{M-C-d}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1696 @tab Down block (enters a block)
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1697 @item @kbd{M-C-u}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1698 @tab Backward up block (leaves a block)
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1699 @item @kbd{C-c C-n}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1700 @tab Next Statement
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1701 @end multitable
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1702
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1703
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1704 @node Misc Options, , Motion Commands, The IDLWAVE Major Mode
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1705 @section Miscellaneous Options
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1706 @cindex Hooks
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1707
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1708 @defopt idlwave-help-application
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1709 The external application providing reference help for programming.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1710 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1711
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1712 @defopt idlwave-startup-message (@code{t})
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1713 Non-@code{nil} means display a startup message when @code{idlwave-mode}'
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1714 is first called.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1715 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1716
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1717 @defopt idlwave-mode-hook
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1718 Normal hook. Executed when a buffer is put into @code{idlwave-mode}.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1719 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1720
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1721 @defopt idlwave-load-hook
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1722 Normal hook. Executed when @file{idlwave.el} is loaded.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1723 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1724
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1725
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1726
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1727
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1728
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1729
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1730
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1731
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1732
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1733
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1734
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1735
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1736
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1737
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1738
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1739
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1740 @node The IDLWAVE Shell, Installation, The IDLWAVE Major Mode, Top
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1741 @chapter The IDLWAVE Shell
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1742 @cindex IDLWAVE shell
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1743 @cindex Major mode, @code{idlwave-shell-mode}
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1744 @cindex IDL, as Emacs subprocess
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1745 @cindex Subprocess of Emacs, IDL
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1746 @cindex Comint, Emacs package
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1747 @cindex Windows
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1748 @cindex MacOS
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1749 @cindex Unix
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1750
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1751 The IDLWAVE shell is an Emacs major mode which allows to run the IDL
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1752 program as an inferior process of Emacs. It can be used to work with
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1753 IDL interactively, to compile and run IDL programs in Emacs buffers and
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1754 to debug these programs. The IDLWAVE shell uses @file{comint}, an Emacs
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1755 packages which handles the communication with the IDL program.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1756 Unfortunately IDL for Windows and MacOS does not allow the interaction
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1757 with Emacs@footnote{Please inform the maintainer if you come up with a way
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1758 to make the IDLWAVE shell work on these systems.} - so the IDLWAVE shell
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1759 only works under Unix.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1760
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1761 @menu
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1762 * Starting the Shell:: How to launch IDL as a subprocess
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1763 * Using the Shell:: Interactively working with the Shell
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1764 * Debugging IDL Programs:: Compilation/Debugging
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1765 @end menu
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1766
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1767 @node Starting the Shell, Using the Shell, The IDLWAVE Shell, The IDLWAVE Shell
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1768 @section Starting the Shell
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1769 @cindex Starting the shell
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1770 @cindex Shell, starting
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1771 @cindex Dedicated frame, for shell buffer
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1772 @cindex Frame, for shell buffer
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1773 @cindex Subprocess of Emacs, IDL
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1774
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1775 @kindex C-c C-s
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1776 The IDLWAVE shell can be started with the command @kbd{M-x
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1777 idlwave-shell}. In @code{idlwave-mode} the function is bound to
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1778 @kbd{C-c C-s}. It creates a buffer @file{*idl*} which is used to
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1779 interact with the shell. If the shell is already running, @kbd{C-c C-s}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1780 will simple switch to the shell buffer. The command @kbd{C-c C-l}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1781 (@code{idlwave-shell-recenter-shell-window}) displays the
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1782 shell window without selecting it.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1783
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1784 In order to create a separate frame for the IDLWAVE shell buffer, call
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1785 @code{idlwave-shell} with a prefix argument: @kbd{C-u C-c C-s} or
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1786 @kbd{C-u C-c C-l}. If you always want a dedicated frame for the shell
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1787 window, configure the variable
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1788 @code{idlwave-shell-use-dedicated-frame}.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1789
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1790 The shell can also be started automatically when another command tries
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1791 to send a command to it. To enable auto start, set the variable
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1792 @code{idlwave-shell-automatic-start} to @code{t}.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1793
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1794 @defopt idlwave-shell-explicit-file-name
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1795 This is the command to run IDL.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1796 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1797
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1798 @defopt idlwave-shell-command-line-options
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1799 A list of command line options for calling the IDL program.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1800 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1801
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1802 @defopt idlwave-shell-prompt-pattern
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1803 Regexp to match IDL prompt at beginning of a line.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1804 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1805
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1806 @defopt idlwave-shell-process-name
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1807 Name to be associated with the IDL process.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1808 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1809
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1810 @defopt idlwave-shell-automatic-start
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1811 Non-@code{nil} means attempt to invoke idlwave-shell if not already
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1812 running.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1813 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1814
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1815 @defopt idlwave-shell-initial-commands
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1816 Initial commands, separated by newlines, to send to IDL.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1817 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1818
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1819 @defopt idlwave-shell-use-dedicated-frame (@code{nil})
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1820 Non-@code{nil} means, IDLWAVE should use a special frame to display
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1821 shell buffer.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1822 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1823
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1824 @defopt idlwave-shell-frame-parameters
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1825 The frame parameters for a dedicated idlwave-shell frame.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1826 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1827
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1828 @defopt idlwave-shell-temp-pro-prefix
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1829 The prefix for temporary IDL files used when compiling regions.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1830 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1831
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1832 @cindex Hooks
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1833 @defopt idlwave-shell-mode-hook
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1834 Hook for customizing @code{idlwave-shell-mode}.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1835 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1836
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1837 @node Using the Shell, Debugging IDL Programs, Starting the Shell, The IDLWAVE Shell
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1838 @section Using the Shell
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1839 @cindex Comint
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1840 @cindex Shell, basic commands
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1841
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1842 The IDLWAVE shell works in the same fashion as other shell modes in
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1843 Emacs. It provides command history, command line editing and job
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
1844 control. The @key{UP} and @key{DOWN} arrows cycle through the input
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
1845 history just like in an X terminal@footnote{This is different from
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
1846 normal Emacs/Comint behavior, but more like an xterm. If you prefer the
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
1847 default comint functionality, check the variable
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
1848 @code{idlwave-shell-arrows-do-history}.}. Here is a list of
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
1849 commonly used commands.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1850
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1851 @multitable @columnfractions .12 .88
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
1852 @item @key{UP}
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
1853 @tab Cycle backwards in input history
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
1854 @item @key{DOWN}
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
1855 @tab Cycle forwards in input history
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1856 @item @kbd{M-p}
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
1857 @tab Cycle backwards in input history @emph{matching input}
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1858 @item @kbd{M-n}
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
1859 @tab Cycle forwards in input history @emph{matching input}
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1860 @item @kbd{M-r}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1861 @tab Previous input matching a regexp
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1862 @item @kbd{M-s}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1863 @tab Next input that matches a regexp
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1864 @item @kbd{return}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1865 @tab Send input or copy line to current prompt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1866 @item @kbd{C-c C-a}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1867 @tab Beginning of line; skip prompt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1868 @item @kbd{C-c C-u}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1869 @tab Kill input to beginning of line
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1870 @item @kbd{C-c C-w}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1871 @tab Kill word before cursor
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1872 @item @kbd{C-c C-c}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1873 @tab Send ^C
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1874 @item @kbd{C-c C-z}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1875 @tab Send ^Z
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1876 @item @kbd{C-c C-\}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1877 @tab Send ^\
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1878 @item @kbd{C-c C-o}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1879 @tab Delete last batch of process output
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1880 @item @kbd{C-c C-r}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1881 @tab Show last batch of process output
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1882 @item @kbd{C-c C-l}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1883 @tab List input history
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1884 @end multitable
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1885
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1886 In addition to these standard @file{comint} commands,
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1887 @code{idlwave-shell-mode} provides many of the commands which simplify
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1888 writing IDL code, including abbreviations, online help, and completion.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1889 See @ref{Routine Info} and @ref{Online Help} and @ref{Completion} for more
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1890 information on these commands.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1891
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1892 @cindex Completion, in the shell
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1893 @cindex Routine info, in the shell
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1894 @cindex Online Help, in the shell
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1895 @multitable @columnfractions .12 .88
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1896 @item @kbd{@key{TAB}}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1897 @tab Completion of file names, routine names and keywords
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1898 (@code{idlwave-shell-complete})
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1899 @item @kbd{M-@key{TAB}}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1900 @tab Same as @key{TAB}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1901 @item @kbd{C-c ?}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1902 @tab Routine Info display (@code{idlwave-routine-info})
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1903 @item @kbd{M-?}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1904 @tab IDL online help on routine (@code{idlwave-routine-info-from-idlhelp})
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1905 @item @kbd{C-c C-i}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1906 @tab Update routine info from buffers and shell
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1907 (@code{idlwave-update-routine-info})
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1908 @item @kbd{C-c C-v}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1909 @tab Find the source file of a routine (@code{idlwave-find-module})
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1910 @item @kbd{C-c =}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1911 @tab Compile a library routine (@code{idlwave-resolve})
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1912 @end multitable
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1913
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
1914 @defopt idlwave-shell-arrows-do-history (@code{t})
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
1915 Non-@code{nil} means @key{UP} and @key{DOWN} arrows move through command
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
1916 history like xterm.
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
1917 @end defopt
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
1918
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1919 @defopt idlwave-shell-file-name-chars
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1920 The characters allowed in file names, as a string. Used for file name
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1921 completion.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1922 @end defopt
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1923
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
1924 @defopt idlwave-shell-graphics-window-size
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
1925 Size of IDL graphics windows popped up by special IDLWAVE command.
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
1926 @end defopt
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
1927
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1928 @cindex Input mode
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1929 @cindex Character input mode (Shell)
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1930 @cindex Line input mode (Shell)
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1931 @cindex Magic spells, for input mode
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1932 @cindex Spells, magic
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1933 IDLWAVE works in line input mode: You compose a full command line, using
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1934 all the power Emacs gives you to do this. When you press @key{RET}, the
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1935 whole line is sent to IDL. Sometimes it is necessary to send single
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1936 characters (without a newline), for example when an IDL program is
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1937 waiting for single character input with the @code{GET_KBRD} function.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1938 You can send a single character to IDL with the command @kbd{C-c C-x}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1939 (@code{idlwave-shell-send-char}). When you press @kbd{C-c C-y}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1940 (@code{idlwave-shell-char-mode-loop}), IDLWAVE runs a blocking loop
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1941 which accepts characters and immediately sends them to IDL. The loop
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1942 can be exited with @kbd{C-g}. It terminates also automatically when the
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1943 current IDL command is finished. Check the documentation of the two
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1944 variables described below for a way to make IDL programs trigger
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1945 automatic switches of the input mode.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1946
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1947 @defopt idlwave-shell-use-input-mode-magic (@code{nil})
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1948 Non-nil means, IDLWAVE should check for input mode spells in output.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1949 @end defopt
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1950
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1951 @defopt idlwave-shell-input-mode-spells
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1952 The three regular expressions which match the magic spells for input
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1953 modes.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1954 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1955
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1956 @node Debugging IDL Programs, , Using the Shell, The IDLWAVE Shell
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1957 @section Debugging IDL Programs
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1958 @cindex Debugging
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1959 @cindex Keybindings for debugging
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1960 @cindex Toolbar
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1961
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1962 @kindex C-c C-d
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1963 Programs can be compiled, run, and debugged directly from the source
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1964 buffer in Emacs. The IDLWAVE shell installs keybindings both in the
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1965 shell buffer and in all IDL code buffers of the current Emacs session.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1966 On Emacs versions which support this, it also installs a debugging
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1967 toolbar. The display of the toolbar can be toggled with @kbd{C-c C-d
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1968 C-t} (@code{idlwave-shell-toggle-toolbar}).
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1969
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1970 The debugging keybindings are by default on the prefix key @kbd{C-c
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1971 C-d}, so for example setting a breakpoint is done with @kbd{C-c C-d
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
1972 C-b}, compiling a source file with @kbd{C-c C-d C-c}. If you find this
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
1973 too much work you can choose a combination of modifier keys which is not
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
1974 used by other commands. For example, if you write in @file{.emacs}
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
1975
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
1976 @lisp
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
1977 (setq idlwave-shell-debug-modifiers '(control shift))
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
1978 @end lisp
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
1979
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
1980 a breakpoint can be set by pressing @kbd{b} while holding down
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
1981 @kbd{shift} and @kbd{control} keys, i.e. @kbd{C-S-b}. Compiling a
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
1982 source file will be on @kbd{C-S-c}, deleting a breakpoint @kbd{C-S-d}
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
1983 etc. In the remainder of this chapter we will assume that the @kbd{C-c
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
1984 C-d} bindings are active, but each of these bindings will have an
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
1985 equivalent single-keypress shortcut with the modifiers given in the
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
1986 @code{idlwave-shell-debug-modifiers} variable.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1987
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1988 @defopt idlwave-shell-prefix-key (@kbd{C-c C-d})
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1989 The prefix key for the debugging map
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1990 @code{idlwave-shell-mode-prefix-map}.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1991 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1992
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1993 @defopt idlwave-shell-activate-prefix-keybindings (@code{t})
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1994 Non-@code{nil} means, debug commands will be bound to the prefix
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1995 key, like @kbd{C-c C-d C-b}.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1996 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1997
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
1998 @defopt idlwave-shell-debug-modifiers (@code{nil})
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
1999 List of modifier keys to use for binding debugging commands in the shell
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
2000 and in source buffers.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2001 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2002
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2003 @defopt idlwave-shell-use-toolbar (@code{t})
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2004 Non-@code{nil} means, use the debugging toolbar in all IDL related
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2005 buffers.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2006 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2007
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2008
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2009 @menu
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2010 * Compiling Programs:: Compiling buffers under the shell
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2011 * Breakpoints and Stepping:: Deciding where to stop and look
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2012 * Examining Variables:: What is the value now?
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2013 @end menu
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2014
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2015 @node Compiling Programs, Breakpoints and Stepping, Debugging IDL Programs, Debugging IDL Programs
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2016 @subsection Compiling Programs
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2017 @cindex Compiling programs
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2018 @cindex Programs, compiling
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2019 @cindex Default command line, executing
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2020 @cindex Executing a default command line
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2021
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2022 @kindex C-c C-d C-c
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2023 In order to compile the current buffer under the IDLWAVE shell, press
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2024 @kbd{C-c C-d C-c} (@code{idlwave-save-and-run}). This first saves the
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2025 current buffer and then send the command @samp{.run path/to/file} to the
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2026 shell. You can also execute @kbd{C-c C-d C-c} from the shell buffer, in
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2027 which case the most recently compiled buffer will be saved and
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2028 re-compiled.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2029
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2030 When developing or debugging a program, it is often necessary to execute
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2031 the same command line many times. A convenient way to do this is
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2032 @kbd{C-c C-d C-y} (@code{idlwave-shell-execute-default-command-line}).
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2033 This command first resets IDL from a state of interrupted execution by
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2034 closing all files and returning to the main interpreter level. Then a
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2035 default command line is send to the shell. To edit the default command
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2036 line, call @code{idlwave-shell-execute-default-command-line} with a
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2037 prefix argument: @kbd{C-u C-c C-d C-y}.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2038
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2039 @defopt idlwave-shell-mark-stop-line (@code{t})
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2040 Non-@code{nil} means, mark the source code line where IDL is currently
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2041 stopped. The value decides about the preferred method. Legal values
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2042 are @code{nil}, @code{t}, @code{arrow}, and @code{face}.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2043 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2044
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2045 @defopt idlwave-shell-overlay-arrow (@code{">"})
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2046 The overlay arrow to display at source lines where execution
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2047 halts.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2048 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2049
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2050 @defopt idlwave-shell-stop-line-face
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2051 The face which highlights the source line where IDL is
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2052 stopped.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2053 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2054
34433
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34432
diff changeset
2055 @node Breakpoints and Stepping, Examining Variables, Compiling Programs, Debugging IDL Programs
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2056 @subsection Breakpoints and Stepping
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2057 @cindex Breakpoints
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2058 @cindex Stepping
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2059 @cindex Execution, controlled
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2060
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2061 @kindex C-c C-d C-b
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2062 @kindex C-c C-d C-b
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2063 You can set breakpoints and step through a program with IDLWAVE.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2064 Setting a breakpoint in the current line of the source buffer is done
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2065 with @kbd{C-c C-d C-b} (@code{idlwave-shell-break-here}). With a prefix
34433
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34432
diff changeset
2066 arg of 1, the breakpoint gets a @code{/ONCE} keyword, meaning that it
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34432
diff changeset
2067 will be deleted after first use. With a numeric prefix greater than
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34432
diff changeset
2068 one, the breakpoint will only be active the @code{nth} time it is hit.
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34432
diff changeset
2069 To clear the breakpoint in the current line, use @kbd{C-c C-d C-d}
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34432
diff changeset
2070 (@code{idlwave-clear-current-bp}). To clear all breakpoints, use
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34432
diff changeset
2071 @kbd{C-c C-d C-a} (@code{idlwave-clear-all-bp}). Breakpoint lines are
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34432
diff changeset
2072 highlighted in the source code.
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34432
diff changeset
2073
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34432
diff changeset
2074 Once the program has stopped somewhere, you can step through it. Here
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34432
diff changeset
2075 is a summary of the breakpoint and stepping commands:
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2076
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2077 @multitable @columnfractions .23 .77
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2078 @item @kbd{C-c C-d C-b}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2079 @tab Set breakpoint (@code{idlwave-shell-break-here})
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2080 @item @kbd{C-c C-d C-i}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2081 @tab Set breakpoint in function named here (@code{idlwave-shell-break-in})
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2082 @item @kbd{C-c C-d C-d}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2083 @tab Clear current breakpoint (@code{idlwave-shell-clear-current-bp})
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2084 @item @kbd{C-c C-d C-a}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2085 @tab Clear all breakpoints (@code{idlwave-shell-clear-all-bp})
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2086 @item @kbd{C-c C-d C-s}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2087 @tab Step, into function calls (@code{idlwave-shell-step})
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2088 @item @kbd{C-c C-d C-n}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2089 @tab Step, over function calls (@code{idlwave-shell-stepover})
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2090 @item @kbd{C-c C-d C-k}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2091 @tab Skip one statement (@code{idlwave-shell-skip})
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2092 @item @kbd{C-c C-d C-u}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2093 @tab Continue to end of block (@code{idlwave-shell-up})
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2094 @item @kbd{C-c C-d C-m}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2095 @tab Continue to end of function (@code{idlwave-shell-return})
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2096 @item @kbd{C-c C-d C-o}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2097 @tab Continue past end of function (@code{idlwave-shell-out})
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2098 @item @kbd{C-c C-d C-h}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2099 @tab Continue to line at cursor position (@code{idlwave-shell-to-here})
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2100 @item @kbd{C-c C-d C-r}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2101 @tab Continue execution to next breakpoint (@code{idlwave-shell-cont})
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2102 @item @kbd{C-c C-d C-up}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2103 @tab Show higher level in calling stack (@code{idlwave-shell-stack-up})
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2104 @item @kbd{C-c C-d C-down}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2105 @tab Show lower level in calling stack (@code{idlwave-shell-stack-down})
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2106 @end multitable
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2107
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2108 @defopt idlwave-shell-mark-breakpoints (@code{t})
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2109 Non-@code{nil} means, mark breakpoints in the source file buffers. The
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2110 value indicates the preferred method. Legal values are @code{nil},
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2111 @code{t}, @code{face}, and @code{glyph}.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2112 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2113
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2114 @defopt idlwave-shell-breakpoint-face
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2115 The face for breakpoint lines in the source code if
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2116 @code{idlwave-shell-mark-breakpoints} has the value @code{face}.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2117 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2118
34433
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34432
diff changeset
2119 @node Examining Variables, , Breakpoints and Stepping, Debugging IDL Programs
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2120 @subsection Examining Variables
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2121 @cindex @code{PRINT} expressions
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2122 @cindex @code{HELP}, on expressions
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2123 @cindex Expressions, printing
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2124 @cindex Expressions, help
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2125 @cindex Mouse binding to print expressions
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2126
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2127 @kindex C-c C-d C-p
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2128 When execution is stopped you can examine the values of variables. The
27600
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
2129 command @kbd{C-c C-d C-p} prints the expression at point, while @kbd{C-c
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
2130 C-d ?} shows help on this expression. The expression at point is an
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
2131 array expression or a function call, or the contents of a pair of
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
2132 parenthesis. The selected expression becomes highlighted in the source
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
2133 code for a short time. Calling the above commands with a prefix
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
2134 argument will prompt for an expression instead of using the one at
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
2135 point.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2136
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2137 It is very convenient to click with the mouse on expressions to retrieve
36161
f6ba7a00b9e1 Upcase "mouse" in @kbd.
Richard M. Stallman <rms@gnu.org>
parents: 34434
diff changeset
2138 their value. Expression printing is also bound to @kbd{S-Mouse-2} and
f6ba7a00b9e1 Upcase "mouse" in @kbd.
Richard M. Stallman <rms@gnu.org>
parents: 34434
diff changeset
2139 expression help to @kbd{C-S-Mouse-2}. I.e. you need to hold down
34433
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34432
diff changeset
2140 @key{SHIFT} and @key{CONTROL} while clicking with the mouse.
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34432
diff changeset
2141
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34432
diff changeset
2142 @cindex Calling stack, motion
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2143 @cindex Printing expressions, on calling stack
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2144 @cindex Restrictions for expression printing
27600
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
2145 Printing of expressions also works on higher levels of the calling
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
2146 stack. This means that you can examine the values of variables and
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
2147 expressions inside the routine which called the current routine etc.
34433
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34432
diff changeset
2148 Use the commands @kbd{C-c C-d C-@key{UP}}
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34432
diff changeset
2149 (@code{idlwave-shell-stack-up}) and @kbd{C-c C-d C-@key{DOWN}}
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34432
diff changeset
2150 (@code{idlwave-shell-stack-down}) or the corresponding toolbar buttons
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34432
diff changeset
2151 to move through the calling stack. The mode line of the shell window
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34432
diff changeset
2152 will indicate the routine and the calling stack level which define the
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34432
diff changeset
2153 context for printing expressions. The following restrictions apply for
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34432
diff changeset
2154 all levels except the current:
27600
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
2155
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
2156 @itemize @bullet
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
2157 @item
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
2158 Array expressions must use the @samp{[ ]} index delimiters. Identifiers
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
2159 with a @samp{( )} will be interpreted as function calls.
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
2160 @item
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
2161 @cindex ROUTINE_NAMES, IDL procedure
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
2162 Printing values of expressions on higher levels of the calling stack
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
2163 uses the @emph{unsupported} IDL routine @code{ROUTINE_NAMES}, which may
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
2164 or may not be available in future versions of IDL.
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
2165 @end itemize
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
2166
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2167 @defopt idlwave-shell-expression-face
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2168 The face for @code{idlwave-shell-expression-overlay}.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2169 Allows you to choose the font, color and other properties for
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2170 the expression printed by IDL.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2171 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2172
27600
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
2173 @defopt idlwave-shell-print-expression-function (@code{nil})
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
2174 A function to handle special display of evaluated expressions.
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
2175 @end defopt
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2176
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2177 @node Installation, Acknowledgement, The IDLWAVE Shell, Top
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2178 @chapter Installation
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2179 @cindex Installation
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2180
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2181 @menu
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2182 * Installing IDLWAVE:: How to install the distribution
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2183 * Installing Online Help:: Where to get the additional files needed
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2184 * Upgrading from idl.el:: Necessary configuration changes
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2185 @end menu
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2186
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2187 @node Installing IDLWAVE, Installing Online Help, Installation, Installation
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2188 @section Installing IDLWAVE
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2189
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2190 @cindex FTP site
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2191 @cindex URL, homepage for IDLWAVE
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2192 @cindex Homepage for IDLWAVE
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2193 @cindex IDLWAVE, homepage
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2194 @cindex XEmacs package IDLWAVE
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2195 @cindex Emacs, distributed with IDLWAVE
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2196 @cindex Copyright, of IDL manual
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2197 IDLWAVE is part of Emacs 21.1 and later. It is also an XEmacs package
27600
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
2198 and can be installed from
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2199 @uref{ftp://ftp.xemacs.org/pub/xemacs/packages/,the XEmacs ftp site}
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2200 with the normal package management system on XEmacs 21. These
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2201 pre-installed versions should work out-of-the-box. However, the files
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2202 needed for online help are not distributed with XEmacs/Emacs and have to
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2203 be installed separately@footnote{Due to copyright reasons, the ASCII
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2204 version of the IDL manual cannot be distributed under the GPL.}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2205 (@pxref{Installing Online Help}).
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2206
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2207 You can also download IDLWAVE and install it yourself from
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2208 @uref{@value{IDLWAVE-HOMEPAGE}, the maintainers webpage}. Follow the
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2209 instructions in the INSTALL file.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2210
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2211 @node Installing Online Help, Upgrading from idl.el , Installing IDLWAVE, Installation
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2212 @section Installing Online Help
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2213 @cindex Installing online help
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2214 @cindex Online Help, Installation
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2215
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2216 If you want to use the online help display, two additional files (an
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2217 ASCII version of the IDL documentation and a topics/code file) must be
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2218 installed. These files can also be downloaded from
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2219 @uref{@value{IDLWAVE-HOMEPAGE}, the maintainers webpage}. You need to
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2220 place the files somewhere on your system and tell IDLWAVE where they are
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2221 with
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2222
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2223 @lisp
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2224 (setq idlwave-help-directory "/path/to/help/files/")
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2225 @end lisp
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2226
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2227 @node Upgrading from idl.el, , Installing Online Help, Installation
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2228 @section Upgrading from the old @b{@file{idl.el}} file
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2229 @cindex Upgrading from old @b{@file{idl.el}}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2230 @cindex Renaming old variables
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2231 @cindex Old variables, renaming
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2232 @kindex M-@key{TAB}
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2233
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2234 If you have been using the old @file{idl.el} and @file{idl-shell.el}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2235 files and would like to use IDLWAVE, you need to update your
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2236 customization in @file{.emacs}.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2237
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2238 @enumerate
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2239 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2240 Change all variable and function prefixes from @samp{idl-} to @samp{idlwave-}.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2241 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2242 Remove the now invalid @code{autoload} and @code{auto-mode-alist} forms
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2243 pointing to the @file{idl.el} and @file{idl-shell.el} files. Install
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2244 the new autoload forms.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2245 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2246 If you have been using the hook function recommended in earlier versions
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2247 to get a separate frame for the IDL shell, remove that command from your
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2248 @code{idlwave-shell-mode-hook}. Instead, set the variable
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2249 @code{idlwave-shell-use-dedicated-frame} with
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2250 @lisp
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2251 (setq idlwave-shell-use-dedicated-frame t)
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2252 @end lisp
27600
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
2253 @item
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2254 The key sequence @kbd{M-@key{TAB}} no longer inserts a TAB character.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2255 Like in in many other Emacs modes, @kbd{M-@key{TAB}} now does
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2256 completion. Inserting a TAB has therefore been moved to
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2257 @kbd{C-@key{TAB}}. On a character based terminal you can also use
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2258 @kbd{C-c @key{SPC}}.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2259 @end enumerate
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2260
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2261 @node Acknowledgement, Sources of Routine Info, Installation, Top
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2262 @chapter Acknowledgement
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2263 @cindex Acknowledgement
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2264 @cindex Maintainer, of IDLWAVE
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2265 @cindex Authors, of IDLWAVE
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2266 @cindex Contributors, to IDLWAVE
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2267 @cindex Email address, of Maintainer
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2268 @cindex Thanks
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2269
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2270 @noindent
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2271 The main contributors to the IDLWAVE package have been:
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2272
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2273 @itemize @minus
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2274 @item
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
2275 @uref{mailto:chase@@att.com, @b{Chris Chase}}, the original author.
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
2276 Chris wrote @file{idl.el} and @file{idl-shell.el} and maintained them
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
2277 for several years.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2278
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2279 @item
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
2280 @uref{mailto:dominik@@astro.uva.nl, @b{Carsten Dominik}}, current author
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
2281 and maintainer. I have been in charge of the package since version
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
2282 3.0. I am also responsible for the manual.
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2283
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2284 @item
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2285 @uref{mailto:jdsmith@@astrosun.tn.cornell.edu, @b{J.D. Smith}} has
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2286 shaped Object method completion and most new features in version 4.0
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2287 with his ideas, bug reports, and patient explanations of IDL internals.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2288 @end itemize
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2289
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2290 @noindent
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2291 The following people have also contributed to the development of IDLWAVE
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2292 with patches, ideas, bug reports and suggestions.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2293
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2294 @itemize @minus
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2295 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2296 Ulrik Dickow <dickow@@nbi.dk>
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2297 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2298 Eric E. Dors <edors@@lanl.gov>
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2299 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2300 Stein Vidar H. Haugan <s.v.h.haugan@@astro.uio.no>
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2301 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2302 David Huenemoerder <dph@@space.mit.edu>
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2303 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2304 Kevin Ivory <Kevin.Ivory@@linmpi.mpg.de>
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2305 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2306 Xuyong Liu <liu@@stsci.edu>
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2307 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2308 Simon Marshall <Simon.Marshall@@esrin.esa.it>
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2309 @item
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
2310 Craig Markwardt <craigm@@cow.physics.wisc.edu>
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
2311 @item
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2312 Laurent Mugnier <mugnier@@onera.fr>
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2313 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2314 Lubos Pochman <lubos@@rsinc.com>
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2315 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2316 Patrick M. Ryan <pat@@jaameri.gsfc.nasa.gov>
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2317 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2318 Marty Ryba <ryba@@ll.mit.edu>
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2319 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2320 Phil Williams <williams@@irc.chmcc.org>
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2321 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2322 Phil Sterne <sterne@@dublin.llnl.gov>
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2323 @end itemize
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2324
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2325 @noindent
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2326 Thanks to everyone!
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2327
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2328 @node Sources of Routine Info, Configuration Examples, Acknowledgement, Top
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2329 @appendix Sources of Routine Info
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2330
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2331 @cindex Sources of routine information
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2332 In @ref{Routine Info} and @ref{Completion} it was shown how IDLWAVE
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2333 displays the calling sequence and keywords of routines, and how it
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2334 completes routine names and keywords. For these features to work,
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2335 IDLWAVE must know about the accessible routines.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2336
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2337 @menu
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2338 * Routine Definitions:: Where IDL Routines are defined.
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2339 * Routine Information Sources:: So how does IDLWAVE know about...
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
2340 * Library Catalog:: Scanning the Libraries for Routine Info
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2341 * Load-Path Shadows:: Routines defined in several places
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2342 * Documentation Scan:: Scanning the IDL Manuals
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2343 @end menu
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2344
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2345 @node Routine Definitions, Routine Information Sources, Sources of Routine Info, Sources of Routine Info
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2346 @section Routine Definitions
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2347 @cindex Routine definitions
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2348 @cindex IDL variable @code{!PATH}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2349 @cindex @code{!PATH}, IDL variable
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2350 @cindex @code{CALL_EXTERNAL}, IDL routine
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2351 @cindex @code{LINKIMAGE}, IDL routine
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2352 @cindex External routines
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2353
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2354 Routines which can be used in an IDL program can be defined in several
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2355 places:
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2356
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2357 @enumerate
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2358 @item
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2359 @emph{Builtin routines} are defined inside IDL itself. The source
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2360 code of such routines is not accessible to the user.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2361 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2362 Routines @emph{part of the current program} are defined in a file which
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2363 is explicitly compiled by the user. This file may or may not be located
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2364 on the IDL search path.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2365 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2366 @emph{Library routines} are defined in special files which are located
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2367 somewhere on IDL's search path. When a library routine is called for
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2368 the first time, IDL will find the source file and compile it
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2369 dynamically.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2370 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2371 External routines written in other languages (like Fortran or C) can be
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2372 called with @code{CALL_EXTERNAL}, linked into IDL via @code{LINKIMAGE},
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2373 or included as dynamically loaded modules (DLMs). Currently IDLWAVE
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2374 cannot provide routine info and completion for external
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2375 routines.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2376 @end enumerate
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2377
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
2378 @node Routine Information Sources, Library Catalog, Routine Definitions, Sources of Routine Info
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2379 @section Routine Information Sources
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2380 @cindex Routine info sources
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2381 @cindex Builtin list of routines
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2382 @cindex Updating routine info
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2383 @cindex Scanning buffers for routine info
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2384 @cindex Buffers, scanning for routine info
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2385 @cindex Shell, querying for routine info
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2386
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2387 In oder to know about as many routines as possible, IDLWAVE will do the
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2388 following to collect information:
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2389
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2390 @enumerate
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2391
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2392 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2393 It has a @emph{builtin list} with the properties of the builtin IDL
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2394 routines. IDLWAVE @value{VERSION} is distributed with a list of
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2395 @value{NSYSROUTINES} routines and @value{NSYSKEYWORDS} keywords,
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2396 reflecting IDL version @value{IDLVERSION}. This list has been created
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2397 by scanning the IDL manuals and is stored in the file
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2398 @file{idlw-rinfo.el}. @xref{Documentation Scan}, for
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2399 information how to regenerate this file for new versions of IDL.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2400
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2401 @item
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2402 It @emph{scans} all @emph{buffers} of the current Emacs session for
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2403 routine definitions. This is done automatically when routine
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2404 information or completion is first requested by the user. Each new
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2405 buffer and each buffer which is saved after making changes is also
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2406 scanned. The command @kbd{C-c C-i} (@code{idlwave-update-routine-info})
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2407 can be used at any time to rescan all buffers.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2408
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2409 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2410 If you have an IDLWAVE-Shell running as inferior process of the current
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2411 Emacs session, IDLWAVE will @emph{query the shell} for compiled routines
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2412 and their arguments. This happens automatically when routine
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2413 information or completion is first requested by the user, and each time
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2414 an Emacs buffer is compiled with @kbd{C-c C-d C-c}. The command
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2415 @kbd{C-c C-i} (@code{idlwave-update-routine-info}) can be used to ask
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2416 the shell again at any time.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2417
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2418 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2419 IDLWAVE can scan all or selected library files and store the result in a
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2420 file which will be automatically loaded just like
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
2421 @file{idlw-rinfo.el}. @xref{Library Catalog}, for information how to
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2422 scan library files.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2423 @end enumerate
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2424
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2425 @defopt idlwave-scan-all-buffers-for-routine-info (@code{t})
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2426 Non-@code{nil} means, scan all buffers for IDL programs when updating
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2427 info.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2428 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2429
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2430 @defopt idlwave-query-shell-for-routine-info (@code{t})
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2431 Non-@code{nil} means query the shell for info about compiled routines.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2432 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2433
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2434 @defopt idlwave-auto-routine-info-updates
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2435 Controls under what circumstances routine info is updated automatically.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2436 @end defopt
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2437
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
2438 @node Library Catalog, Load-Path Shadows, Routine Information Sources, Sources of Routine Info
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
2439 @section Library Catalog
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2440 @cindex Library scan
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
2441 @cindex Library catalog
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2442 @cindex IDL library routine info
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2443 @cindex Windows
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2444 @cindex MacOS
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2445 @cindex Unix
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2446 @cindex IDL variable @code{!DIR}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2447 @cindex @code{!DIR}, IDL variable
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2448
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2449
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2450 IDLWAVE can extract routine information from library modules and store
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2451 that information in a file. To do this, the variable
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2452 @code{idlwave-libinfo-file} needs to contain the path to a file in an
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2453 existing directory (the default is @code{"~/.idlcat.el"}). Since the
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2454 file will contain lisp code, its name should end in @file{.el}. Under
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2455 Windows and MacOS, you also need to specify the search path for IDL
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2456 library files in the variable @code{idlwave-library-path}, and the
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2457 location of the IDL directory (the value of the @code{!DIR} system
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2458 variable) in the variable @code{idlwave-system-directory}. Under UNIX,
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2459 these values will be automatically inferred from an IDLWAVE
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2460 shell.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2461
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2462 The command @kbd{M-x idlwave-create-libinfo-file} can then be used to
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2463 scan library files. It brings up a widget in which you can select some
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2464 or all directories on the search path. If you only want to have routine
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2465 and completion info of some libraries, it is sufficient to scan those
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2466 directories. However, if you want IDLWAVE to detect possible name
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2467 conflicts with routines defined in other libraries, the whole pass
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2468 should be scanned.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2469
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2470 After selecting directories, click on the @w{@samp{[Scan & Save]}}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2471 button in the widget to scan all files in the selected directories and
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2472 write the resulting routine information into the file
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2473 @code{idlwave-libinfo-file}. In order to update the library information
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2474 from the same directories, call the command
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2475 @code{idlwave-update-routine-info} with a double prefix argument:
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2476 @w{@kbd{C-u C-u C-c C-i}}. This will rescan files in the previously
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2477 selected directories, write an updated version of the libinfo file and
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2478 rebuild IDLWAVEs internal lists.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2479
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2480 A note of caution: Depending on your local installation, the IDL
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2481 library can be very large. Parsing it for routine information will take
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2482 time and loading this information into Emacs can require a
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2483 significant amount of memory. However, having this information
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2484 available will be a great help.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2485
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2486 @defopt idlwave-libinfo-file
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2487 File for routine information of the IDL library.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2488 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2489
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2490 @defopt idlwave-library-path
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2491 IDL library path for Windows and MacOS. Not needed under Unix.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2492 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2493
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2494 @defopt idlwave-system-directory
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2495 The IDL system directory for Windows and MacOS. Not needed under UNIX.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2496 @end defopt
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2497
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2498 @defopt idlwave-special-lib-alist
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2499 Alist of regular expressions matching special library directories.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2500 @end defopt
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2501
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
2502 @node Load-Path Shadows, Documentation Scan, Library Catalog, Sources of Routine Info
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2503 @section Load-Path Shadows
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2504 @cindex Load-path shadows
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2505 @cindex Shadows, load-path
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2506 @cindex Duplicate routines
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2507 @cindex Multiply defined routines
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2508 @cindex Routine definitions, multiple
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2509 @cindex Application, testing for shadowing
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2510 @cindex Buffer, testing for shadowing
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2511
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2512 IDLWAVE can compile a list of routines which are defined in several
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2513 different files. Since one definition will hide (shadow) the others
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2514 depending on which file is compiled first, such multiple definitions are
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2515 called "load-path shadows". IDLWAVE has several routines to scan for
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
2516 load path shadows. The output is placed into the special buffer
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2517 @file{*Shadows*}. The format of the output is identical to the source
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
2518 section of the routine info buffer (@pxref{Routine Info}). The
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
2519 different definitions of a routine are listed in the sequence of
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
2520 @emph{likelyhood of use}. So the first entry will be most likely the
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
2521 one you'll get if an unsuspecting command uses that routine. Before
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
2522 listing shadows, you should make sure that routine info is up-to-date by
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
2523 pressing @kbd{C-c C-i}. Here are the different routines:
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2524
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2525 @table @asis
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2526 @item @kbd{M-x idlwave-list-buffer-load-path-shadows}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2527 This commands checks the names of all routines defined in the current
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2528 buffer for shadowing conflicts with other routines accessible to
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2529 IDLWAVE. The command also has a key binding: @kbd{C-c C-b}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2530 @item @kbd{M-x idlwave-list-shell-load-path-shadows}.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2531 Checks all routines compiled under the shell for shadowing. This is
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2532 very useful when you have written a complete application. Just compile
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2533 the application, use @code{RESOLVE_ALL} to compile any routines used by
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2534 your code, update the routine info inside IDLWAVE with @kbd{C-c C-i} and
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2535 then check for shadowing.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2536 @item @kbd{M-x idlwave-list-all-load-path-shadows}
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
2537 This command checks all routines accessible to IDLWAVE for conflicts.
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2538 @end table
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2539
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2540 For these commands to work properly you should have scanned the entire
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2541 load path, not just selected directories. Also, IDLWAVE should be able to
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2542 distinguish between the system library files (normally installed in
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2543 @file{/usr/local/rsi/idl/lib}) and any site specific or user specific
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2544 files. Therefore, such local files should not be installed
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2545 inside the @file{lib} directory of the IDL directory. This is of course
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2546 also advisable for many other reasons.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2547
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2548 @cindex Windows
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2549 @cindex MacOS
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2550 @cindex IDL variable @code{!DIR}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2551 @cindex @code{!DIR}, IDL variable
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2552 Users of Windows and MacOS also must set the variable
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2553 @code{idlwave-system-directory} to the value of the @code{!DIR} system
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2554 variable in IDL. IDLWAVE appends @file{lib} to the value of this
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2555 variable and assumes that all files found on that path are system
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2556 routines.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2557
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2558 Another way to find out if a specific routine has multiple definitions
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2559 on the load path is routine info display (@pxref{Routine Info}).
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2560
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2561 @node Documentation Scan, , Load-Path Shadows, Sources of Routine Info
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2562 @section Documentation Scan
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2563 @cindex @file{get_rinfo}
27186
eb645a473bf8 New version is consistent with the changed names.
Carsten Dominik <dominik@science.uva.nl>
parents: 26960
diff changeset
2564 @cindex @file{idlw-rinfo.el}
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2565 @cindex @file{idlw-help.txt}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2566 @cindex @file{idlw-help.el}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2567 @cindex Scanning the documentation
27186
eb645a473bf8 New version is consistent with the changed names.
Carsten Dominik <dominik@science.uva.nl>
parents: 26960
diff changeset
2568 @cindex Perl program, to create @file{idlw-rinfo.el}
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2569
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2570 IDLWAVE derives it knowledge about system routines from the IDL
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2571 manuals. The file @file{idlw-rinfo.el} contains the routine information
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2572 for the IDL system routines. The Online Help feature of IDLWAVE
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2573 requires ASCII versions of some IDL manuals to be available in a
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2574 specific format (@file{idlw-help.txt}), along with an Emacs-Lisp file
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2575 @file{idlw-help.el} with supporting code and pointers to the ASCII file.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2576
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2577 All 3 files can be derived from the IDL documentation. If you are
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2578 lucky, the maintainer of IDLWAVE will always have access to the newest
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2579 version of IDL and provide updates. The IDLWAVE distribution also
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2580 contains the Perl program @file{get_rinfo} which constructs these files
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2581 by scanning selected files from the IDL documentation. Instructions on
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2582 how to use @file{get_rinfo} are in the program itself.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2583
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2584 @node Configuration Examples, Index, Sources of Routine Info, Top
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2585 @appendix Configuration Examples
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2586 @cindex Configuration examples
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2587 @cindex Example configuration
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2588 @cindex @file{.emacs}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2589 @cindex Default settings, of options
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2590 @cindex Interview, with the maintainer
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2591
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2592 @noindent
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2593 @b{Question:} So now you have all these complicated configuration
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2594 options in your package, but which ones do @emph{you} as the maintainer
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2595 actually set in your own configuration?
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2596
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2597 @noindent
27600
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
2598 @b{Answer:} Hardly any. As the maintainer, I set the default of most
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
2599 options to what I think is best. However, the default settings do not
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
2600 turn on features which
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2601
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2602 @itemize @minus
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2603 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2604 are not self-evident (i.e. too magic) when used by an unsuspecting user
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2605 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2606 are too intrusive
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2607 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2608 will not work properly on all Emacs installations out there
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2609 @item
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2610 break with widely used standards.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2611 @end itemize
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2612
27600
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
2613 @noindent To see what I mean, here is the @emph{entire} configuration I
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
2614 have in my @file{.emacs}:
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2615
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2616 @lisp
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
2617 (setq idlwave-shell-debug-modifiers '(control shift)
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2618 idlwave-store-inquired-class t
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2619 idlwave-shell-automatic-start t
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2620 idlwave-main-block-indent 2
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2621 idlwave-help-dir "~/lib/emacs/idlwave"
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2622 idlwave-special-lib-alist '(("/idl-astro/" . "AstroLib")
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2623 ("/jhuapl/" . "JHUAPL-Lib")
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2624 ("/dominik/lib/idl/" . "MyLib")))
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2625 @end lisp
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2626
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2627 However, if you are an Emacs power-user and want IDLWAVE to work
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2628 completely differently, the options allow you to change almost every
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2629 aspect of it. Here is an example of a much more extensive configuration
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2630 of IDLWAVE. To say it again - this is not what I recommend, but the
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2631 user is King!
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2632
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2633 @example
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2634 ;;; Settings for IDLWAVE mode
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2635
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2636 (setq idlwave-block-indent 3) ; Indentation settings
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2637 (setq idlwave-main-block-indent 3)
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2638 (setq idlwave-end-offset -3)
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2639 (setq idlwave-continuation-indent 1)
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2640 (setq idlwave-begin-line-comment "^;[^;]") ; Leave ";" but not ";;"
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2641 ; anchored at start of line.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2642 (setq idlwave-surround-by-blank t) ; Turn on padding ops =,<,>
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2643 (setq idlwave-pad-keyword nil) ; Remove spaces for keyword '='
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2644 (setq idlwave-expand-generic-end t) ; convert END to ENDIF etc...
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2645 (setq idlwave-reserved-word-upcase t) ; Make reserved words upper case
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2646 ; (with abbrevs only)
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2647 (setq idlwave-abbrev-change-case nil) ; Don't force case of expansions
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2648 (setq idlwave-hang-indent-regexp ": ") ; Change from "- " for auto-fill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2649 (setq idlwave-show-block nil) ; Turn off blinking to begin
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2650 (setq idlwave-abbrev-move t) ; Allow abbrevs to move point
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2651
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2652 ;; Some setting can only be done from a mode hook. Here is an example:
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2653
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2654 (add-hook 'idlwave-mode-hook
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2655 (lambda ()
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2656 (setq abbrev-mode 1) ; Turn on abbrevs (-1 for off)
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2657 (setq case-fold-search nil) ; Make searches case sensitive
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2658 ;; Run other functions here
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2659 (font-lock-mode 1) ; Turn on font-lock mode
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2660 (idlwave-auto-fill-mode 0) ; Turn off auto filling
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2661 ;;
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2662 ;; Pad with with 1 space (if -n is used then make the
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2663 ;; padding a minimum of n spaces.) The defaults use -1
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2664 ;; instead of 1.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2665 (idlwave-action-and-binding "=" '(idlwave-expand-equal 1 1))
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2666 (idlwave-action-and-binding "<" '(idlwave-surround 1 1))
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2667 (idlwave-action-and-binding ">" '(idlwave-surround 1 1 '(?-)))
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2668 (idlwave-action-and-binding "&" '(idlwave-surround 1 1))
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2669 ;;
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2670 ;; Only pad after comma and with exactly 1 space
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2671 (idlwave-action-and-binding "," '(idlwave-surround nil 1))
27600
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
2672 (idlwave-action-and-binding "&" '(idlwave-surround 1 1))
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2673 ;;
27600
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
2674 ;; Pad only after `->', remove any space before the arrow
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
2675 (idlwave-action-and-binding "->" '(idlwave-surround 0 -1 nil 2))
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
2676 ;;;
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2677 ;; Set some personal bindings
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2678 ;; (In this case, makes `,' have the normal self-insert behavior.)
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2679 (local-set-key "," 'self-insert-command)
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2680 ;; Create a newline, indenting the original and new line.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2681 ;; A similar function that does _not_ reindent the original
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2682 ;; line is on "\C-j" (The default for emacs programming modes).
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2683 (local-set-key "\n" 'idlwave-newline)
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2684 ;; (local-set-key "\C-j" 'idlwave-newline) ; My preference.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2685 ))
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2686
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2687 ;;; Settings for IDLWAVE SHELL mode
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2688
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2689 (setq idlwave-shell-overlay-arrow "=>") ; default is ">"
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2690 (setq idlwave-shell-use-dedicated-frame t) ; Make a dedicated frame
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2691 (setq idlwave-shell-prompt-pattern "^WAVE> ") ; default is "^IDL> "
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2692 (setq idlwave-shell-explicit-file-name "wave")
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2693 (setq idlwave-shell-process-name "wave")
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2694 (setq idlwave-shell-use-toolbar nil) ; No toolbar
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2695 @end example
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2696
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2697 @node Index, , Configuration Examples, Top
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2698 @unnumbered Index
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2699 @printindex cp
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2700
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2701 @bye
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2702