annotate man/idlwave.texi @ 29155:ca66590580f5

Add finder keywords.
author Dave Love <fx@gnu.org>
date Wed, 24 May 2000 15:23:56 +0000
parents 322d1a88513b
children 983e65f12610
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
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3 @setfilename ../info/idlwave
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
4 @settitle IDLWAVE User Manual
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
5 @dircategory Editors
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
27600
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
12 @set VERSION 3.15
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
13 @set EDITION 1.10
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
14 @set IDLVERSION 5.3
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
15 @set NSYSROUTINES 1226
27600
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
16 @set NSYSKEYWORDS 5229
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
17 @set DATE February 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
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
22 @c %**end of header
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
23 @finalout
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
24
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
25 @ifinfo
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
26 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
27 WAVE/CL files with Emacs. It also implements a shell for running IDL as
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
28 a subprocess.@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
29
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
30 This is edition @value{EDITION} of the IDLWAVE User Manual for
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
31 IDLWAVE @value{VERSION}@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
32
27600
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
33 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
34
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
35 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
36 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
37 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
38
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
39 @ignore
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
40 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
41 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
42 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
43 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
44 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
45
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
46 @end ignore
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
47 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
48 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
49 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
50 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
51 notice identical to this one.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
52
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
53 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
54 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
55 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
56 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
57 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
58 @end ifinfo
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
59
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
60 @titlepage
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
61 @title IDLWAVE User Manual
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
62 @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
63 @subtitle Edition @value{EDITION}, @value{DATE}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
64
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
65 @author by Carsten Dominik
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
66 @page
27600
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
67 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
68
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
69 @sp 2
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
70 This is edition @value{EDITION} of the @cite{IDLWAVE User Manual} for
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
71 IDLWAVE version @value{VERSION}, @value{DATE}.@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
72
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
73 @sp 2
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
74
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
75 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
76 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
77 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
78
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
79 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
80 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
81 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
82 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
83 notice identical to this one.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
84
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
85 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
86 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
87 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
88 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
89 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
90
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
91 @end titlepage
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
92 @page
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
93
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
94 @ifinfo
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
95 @node Top, Introduction, (dir), (dir)
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
96
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
97 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
98 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
99 shell. @refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
100
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
101 @end ifinfo
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
102
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
103 @menu
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
104 * 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
105 * IDLWAVE in a Nutshell:: One page quick-start guide
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
106 * 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
107 * 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
108 * Installation:: How to Install or Upgrade
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
109 * Acknowledgement:: Who helped
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
110 * 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
111 * Configuration Examples:: The user is king...
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
112 * Index:: Fast access
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
113
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
114 @detailmenu
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
115
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
116 --- The Detailed Node Listing ---
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
117
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
118 The IDLWAVE Major Mode
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
119
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
120 * Code Formatting:: Making code look nice
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
121 * Routine Info:: Calling Sequences and Keywords
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
122 * Completion:: Completing routine names and Keywords
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
123 * Code Templates:: Abbreviations for frequent constructs
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
124 * Actions:: Changing case, Padding, End checking
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
125 * Doc Header:: Inserting a standard header
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
126 * 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
127 * 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
128
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
129 Code Formatting
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
130
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
131 * Code Indentation:: Reflecting the logical structure
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
132 * 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
133 * Continuation Lines:: Splitting statements over lines
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
134 * Syntax Highlighting:: Font-lock support
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 Actions
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 * 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
139 * Padding Operators:: Enforcing space around `=' etc
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
140 * Case Changes:: Enforcing upper case keywords
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
141
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
142 The IDLWAVE Shell
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
143
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
144 * 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
145 * 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
146 * Debugging IDL Programs:: Compilation/Debugging
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
147
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
148 Debugging IDL Programs
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
149
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
150 * 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
151 * 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
152 * 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
153
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
154 Installation
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
155
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
156 * Installing IDLWAVE:: How to install the distribution
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
157 * 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
158
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
159 Sources of Routine Info
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 * Routine Definitions:: Where IDL Routines are defined.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
162 * Routine Information Sources:: So how does IDLWAVE know about...
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
163 * Library Scan:: Scanning the Libraries for Routine Info
27186
eb645a473bf8 New version is consistent with the changed names.
Carsten Dominik <dominik@science.uva.nl>
parents: 26960
diff changeset
164 * Updating idlw-rinfo.el:: Scanning the Reference Manual
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
165 @end detailmenu
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
166 @end menu
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
167
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
168 @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
169 @chapter Introduction
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
170 @cindex Introduction
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
171 @cindex CORBA (Common Object Request Broker Architecture)
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
172 @cindex cc-mode.el
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
173 @cindex Feature overview
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
174
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
175 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
176 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
177 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
178 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
179 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
180 Broker Architecture (CORBA).
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
181
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
182 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
183 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
184 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
185 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
186 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
187 switch.
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 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
190 (@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
191 inferior shell (@code{idlwave-shell-mode}). Both modes work closely
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
192 together and form a complete development environment.@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
193
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
194 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
195
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
196 @itemize @bullet
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
197 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
198 Code indentation and formatting.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
199 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
200 Font-lock support on three levels.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
201 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
202 Display of calling sequence and keywords of more than 1000 IDL
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
203 routines.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
204 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
205 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
206 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
207 Insertion of code templates.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
208 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
209 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
210 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
211 Block structure check.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
212 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
213 Documentation support.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
214 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
215 Running IDL as inferior process.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
216 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
217 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
218 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
219 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
220 buffer.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
221 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
222 Examining expressions with a mouse click.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
223 @end itemize
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
224
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
225 @ifnottex
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
226 @cindex Screenshots
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
227 Here are a number of screenshots showing IDLWAVE in action.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
228 @itemize @bullet
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
229 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
230 @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
231 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
232 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
233 @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
234 XEmacs 21.1 displaying routine info}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
235 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
236 @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
237 XEmacs 21.1 completing a keyword}
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 @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
240 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
241 @end itemize
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
242 @end ifnottex
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
243
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
244 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
245 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
246 -- 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
247 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
248 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
249 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
250 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
251
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
252 @node IDLWAVE in a Nutshell, The IDLWAVE Major Mode, Introduction, Top
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
253 @chapter IDLWAVE in a Nutshell
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
254 @cindex Quick-Start
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
255 @cindex Getting Started
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
256 @cindex IDLWAVE in a Nutshell
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
257 @cindex Nutshell, IDLWAVE in a
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
258
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
259 @subheading Editing IDL Programs
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
260
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
261 @multitable @columnfractions .15 .85
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
262 @item @key{TAB}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
263 @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
264 @item @kbd{M-C-\}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
265 @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
266 @item @kbd{M-@key{RET}}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
267 @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
268 @item @kbd{M-q}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
269 @tab Fill the current comment paragraph.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
270 @item @kbd{C-c ?}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
271 @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
272 at point.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
273 @item @kbd{M-@key{TAB}}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
274 @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
275 @item @kbd{C-c C-i}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
276 @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
277 @item @kbd{C-c C-v}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
278 @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
279 @item @kbd{C-c C-h}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
280 @tab Insert a standard documentation header.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
281 @item @kbd{C-c C-m}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
282 @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
283 @end multitable
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
284
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
285 @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
286
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
287 @multitable @columnfractions .15 .85
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
288 @item @kbd{C-c C-s}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
289 @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
290 @item @kbd{C-u C-c C-s}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
291 @tab Start the shell in a separate frame.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
292 @item @kbd{M-p}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
293 @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
294 @item @kbd{M-n}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
295 @tab Cycle forward.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
296 @item @kbd{M-@key{TAB}}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
297 @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
298 @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
299 @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
300 @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
301 @tab Goto next syntax error.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
302 @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
303 @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
304 @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
305 @tab Clear the current breakpoint.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
306 @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
307 @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
308 @end multitable
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
309
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
310 @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
311 @lisp
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
312 ;; Change the indentation preferences
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
313 (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
314 idlwave-block-indent 2 ; default 4
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
315 idlwave-end-offset -2) ; default -4
27600
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
316 ;; Pad some operators with spaces
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
317 (setq idlwave-do-actions t
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
318 idlwave-surround-by-blank t)
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
319 ;; Automatically expand END to ENDIF, ENDELSE, ...
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
320 (setq idlwave-expand-generic-end t)
27600
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
321 ;; Syntax Highlighting
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
322 (add-hook 'idlwave-mode-hook 'turn-on-font-lock)
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
323
27600
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
324 ;; Automatically start the shell when needed, in dedicated frame
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
325 (setq idlwave-shell-automatic-start t
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
326 idlwave-shell-use-dedicated-frame t)
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
327
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
328 ;; Specify a file where library info can be stored.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
329 (setq idlwave-libinfo-file "~/idlinfo.el")
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
330 @end lisp
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
331
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
332 @node The IDLWAVE Major Mode, The IDLWAVE Shell, IDLWAVE in a Nutshell, Top
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
333 @chapter The IDLWAVE Major Mode
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
334 @cindex IDLWAVE major mode
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
335 @cindex Major mode, @code{idlwave-mode}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
336
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
337 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
338 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
339 customize them.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
340
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
341 @menu
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
342 * Code Formatting:: Making code look nice
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
343 * Routine Info:: Calling Sequences and Keywords
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
344 * Completion:: Completing routine names and Keywords
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
345 * Code Templates:: Abbreviations for frequent constructs
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
346 * Actions:: Changing case, Padding, End checking
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
347 * Doc Header:: Inserting a standard header
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
348 * 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
349 * 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
350 @end menu
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
351
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
352 @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
353 @section Code Formatting
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
354 @cindex Code formatting
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
355 @cindex Formatting, of code
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
356
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
357 @menu
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
358 * Code Indentation:: Reflecting the logical structure
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
359 * 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
360 * Continuation Lines:: Splitting statements over lines
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
361 * Syntax Highlighting:: Font-lock support
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
362 @end menu
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
363
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
364 @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
365 @subsection Code Indentation
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
366 @cindex Code indentation
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
367 @cindex Indentation
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
368
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
369 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
370 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
371 @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
372 governed by a number of variables.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
373
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
374 @cindex Foreign code, adapting
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
375 @cindex Indentation, of foreign code
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
376 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
377 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
378 (@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
379 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
380 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
381 additional formatting conventions on foreign code.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
382
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
383 @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
384 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
385 the FUNCTION/PRO statement and the END statement for that program
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
386 unit.@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
387 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
388
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
389 @defopt idlwave-block-indent (@code{4})
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
390 Extra indentation applied to block lines. If you change this, you
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
391 probably also want to change @code{idlwave-end-offset}.@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
392 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
393
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
394 @defopt idlwave-end-offset (@code{-4})
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
395 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
396 @code{idlwave-block-indent} will make END lines line up with the block
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
397 BEGIN lines.@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
398 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
399
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
400 @defopt idlwave-continuation-indent (@code{2})
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
401 Extra indentation applied to continuation lines and insided unbalanced
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
402 parenthesis.@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
403 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
404
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
405 @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
406 @subsection Comment Indentation
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
407 @cindex Comment indentation
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
408 @cindex Hanging paragraphs
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
409 @cindex Paragraphs, filling
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
410 @cindex Paragraphs, hanging
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
411
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
412 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
413 Comment lines are indented as follows:
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
414
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
415 @multitable @columnfractions .1 .90
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
416 @item @code{;;;}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
417 @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
418 unchanged.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
419 @item @code{;;}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
420 @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
421 @item @code{;}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
422 @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
423 @end multitable
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
424
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
425 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
426
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
427 @defopt idlwave-no-change-comment
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
428 The indentation of a comment that starts with this regular
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
429 expression will not be changed.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
430 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
431
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
432 @defopt idlwave-begin-line-comment
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
433 A comment anchored at the beginning of line. A comment matched by this
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
434 regular expression will not have its indentation changed.@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
435 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
436
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
437 @defopt idlwave-code-comment
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
438 A comment that starts with this regular expression on a line by itself
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
439 is indented as if it is a part of IDL code.@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
440 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
441
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
442 @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
443 @subsection Continuation Lines and Filling
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
444 @cindex Continuation lines
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
445 @cindex Line splitting
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
446 @cindex Splitting, of lines
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
447 @cindex Filling
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
448 @cindex @code{auto-fill-mode}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
449 @cindex Hanging paragraphs
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
450
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
451 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
452 @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
453 @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
454 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
455 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
456 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
457 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
458 string constant, the string is split with the @samp{+} concatenation
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
459 operator. You could even use @code{auto-fill-mode} to automatically
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
460 break code lines into several lines while you type. For this, set the
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
461 variable @code{idlwave-fill-comment-line-only} to @code{nil} and turn on
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
462 @code{auto-fill-mode}. @code{auto-fill-mode} can be toggled with
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
463 @kbd{C-c C-a}.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
464
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
465 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
466 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
467 are customary in the IDL routine headers. When @code{auto-fill-mode} is
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
468 turned on, comments will be auto-filled. If the first line of a
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
469 paragraph is matched by @code{idlwave-hang-indent-regexp}, subsequent
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
470 lines are indented to after the position of this match, as in the
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
471 following example.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
472
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
473 @example
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
474 ; INPUTS
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
475 ; x - an array containing
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
476 ; lots of interesting numbers.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
477 ;
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
478 ; y - another variable where
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
479 ; a hanging paragraph is used
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
480 ; to describe it.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
481 @end example
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
482
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
483 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
484
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
485 @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
486 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
487 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
488
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
489 @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
490 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
491 operator.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
492 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
493
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
494 @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
495 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
496 @samp{+}.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
497 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
498
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
499 @defopt idlwave-hanging-indent
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
500 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
501 indent given by @code{idlwave-hang-indent-regexp} match in the first
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
502 line of the paragraph.@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
503 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
504
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
505 @defopt idlwave-hang-indent-regexp
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
506 Regular expression matching the position of the hanging indent
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
507 in the first line of a comment paragraph.@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
508 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
509
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
510 @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
511 Non-@code{nil} means use last match on line for
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
512 @code{idlwave-indent-regexp}.@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
513 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
514
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
515 @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
516 @subsection Syntax Highlighting
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
517 @cindex Syntax highlighting
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
518 @cindex Font lock
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
519
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
520 Highlighting of keywords, comments, strings etc. can be accomplished
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
521 with @code{font-lock}. To enable @code{font-lock} for IDL files, place
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
522 the following line into your @file{.emacs} (see
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
523 @ref{Configuration Examples})@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
524
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
525 @lisp
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
526 (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
527 @end lisp
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
528
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
529 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
530 @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
531
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
532 @defopt idlwave-default-font-lock-items
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
533 Items which should be fontified on the default fontification level
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
534 2.@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
535 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
536
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
537 @node Routine Info, Completion, Code Formatting, The IDLWAVE Major Mode
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
538 @section Routine Info
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
539 @cindex Routine info
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
540
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
541 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
542 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
543 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
544 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
545 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
546 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
547 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
548 routine definitions and queries the IDLWAVE-Shell for the properties of
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
549 modules currently compiled under the shell. When you have edited a
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
550 buffer or compiled additional routines under the shell, use @kbd{C-c
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
551 C-i} (@code{idlwave-update-routine-info}) to update IDLWAVE's idea about
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
552 these routines.@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
553
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
554 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
555 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
556 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
557 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
558 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
559
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
560 @example
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
561 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
562 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
563 @end example
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
564
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
565 @cindex Object methods
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
566 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
567 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
568 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
569 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
570 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
571 object.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
572
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
573 @cindex Calling sequences
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
574 @cindex Keywords of a routine
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
575 The description displayed contains the calling sequence, the list of
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
576 keywords and the origin of this information (@emph{system routine},
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
577 @emph{library routine}, @emph{Emacs buffer}, or @emph{compiled
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
578 module}). It looks like this:
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
579
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
580 @example
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
581 Usage: MAP_PROJ_INFO, iproj
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
582 Keywords: CIRCLE CURRENT CYLINDRICAL NAME UV_LIMITS WIDTH
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
583 Origin: buffer visiting /soft1/idl/lib/map_set.pro
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
584 @end example
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
585
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
586 Some of the text in the @file{*Help*} buffer will be active (it
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
587 highlights when you move the mouse over it). Clicking with the middle
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
588 mouse button on any of the active fields will try to find the source file of
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
589 the routine and display it in another window. Another click on the same
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
590 line will switch back to the buffer from which @kbd{C-c ?} was
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
591 called. Clicking with the right mouse button on an active field will
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
592 search the IDL online help for this item.@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
593
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
594 @cindex Routine source file
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
595 @cindex Module source file
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
596 Another way to find the source file of a routine is the command @kbd{C-c
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
597 C-v} (@code{idlwave-find-module}). It asks for a module name, offering
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
598 the same default as @code{idlwave-routine-info} would have used. In the
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
599 minibuffer, specify a complete routine name (including the class part).
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
600 IDLWAVE will display the source file in another window.@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
601
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
602 @cindex @code{RESOLVE_ROUTINE}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
603 @cindex Compiling library modules
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
604 @cindex Routines, resolving
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
605 @cindex Online help, for IDL routines
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
606 The two other commands that work with the routine at point need a
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
607 running IDLWAVE shell. The key sequence @kbd{M-?} calls the command
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
608 @code{idlwave-routine-info-from-idlhelp}. This sends the command line
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
609 @samp{ONLINE_HELP, '@var{routine_name}'} to IDL in order to display the
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
610 documentation of the routine in the IDL online documentation. The key
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
611 sequence @kbd{C-c =} calls the command @code{idlwave-resolve} and sends
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
612 the line @samp{RESOLVE_ROUTINE, '@var{routine_name}'} to IDL in order to
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
613 resolve (compile) it.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
614
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
615 @code{idlwave-resolve} is one way to get a library module within reach
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
616 of IDLWAVE's routine info collecting functions. A better way is to
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
617 prescan (parts of) the library (@pxref{Library Scan}). Routine info on
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
618 library modules will then be available without the need to compile the
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
619 modules first, and even without a running shell.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
620
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
621 @xref{Sources of Routine Info}, for in-depth information where IDLWAVE
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
622 collects data about routines, and how to update this information.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
623
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
624 @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
625 Non-@code{nil} means, scan all buffers for IDL programs when updating
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
626 info. When this variable is @code{nil}, it only parses the current
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
627 buffer.@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
628 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
629
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
630 @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
631 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
632 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
633
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
634 @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
635 Non-@code{nil} means, resize the Routine-info @file{*Help*} window to
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
636 fit the content.@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
637 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
638
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
639
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
640 @node Completion, Code Templates, Routine Info, The IDLWAVE Major Mode
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
641 @section Completion
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
642 @cindex Completion
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
643
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
644 IDLWAVE offers completion for routine names and keywords. As in many
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
645 programming modes, completion is bound to @kbd{M-@key{TAB}}.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
646 Completion uses the same internal information as routine info,
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
647 so in order to update IDLWAVE's idea about your own routines after you
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
648 have edited or compiled them, press @kbd{C-c C-i}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
649 (@code{idlwave-update-routine-info}).@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
650
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
651 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
652 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
653 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
654 @samp{*}.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
655
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
656 @example
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
657 plo* @r{Procedure}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
658 x = a* @r{Function}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
659 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
660 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
661 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
662 obj -> a* @r{Object method (procedure)}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
663 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
664 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
665 x = obj_new('MyCl',a* @r{Keyword to @code{Init} method in class @code{MyCl}}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
666 @end example
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
667
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
668 @cindex Scrolling the @file{*Completions*} window
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
669 @cindex Completion, scrolling
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
670 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
671 @file{*Completions*} window, the window can be scrolled by pressing
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
672 @kbd{M-@key{TAB}} repeatedly.@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
673
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
674 @cindex Case of completed words
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
675 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
676 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
677 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
678 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
679 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
680 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
681 conventions in the IDL manuals. These defaults can be changed with the
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
682 variable @code{idlwave-completion-case}.@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
683
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
684 @defopt idlwave-completion-case
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
685 Association list setting the case (UPPER/lower/Capitalized/...) of completed
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
686 words.@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
687 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
688
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
689 @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
690 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
691 @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
692 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
693 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
694
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
695 @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
696 Non-@code{nil} means, the empty string is considered lower case for
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
697 completion.@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
698 @end defopt
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 @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
701 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
702 completed keywords.@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
703 @end defopt
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 @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
706 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
707 completed function. A value of `2' means, also add the closing
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
708 parenthesis and position cursor between the two.@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
709 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
710
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
711 @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
712 Non-@code{nil} means, restore window configuration after successful
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
713 completion.@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
714 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
715
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
716 @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
717 @cindex Object methods
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
718 @cindex Class ambiguity
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
719 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
720 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
721 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
722 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
723 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
724 @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
725 will be shown next to the item (see option
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
726 @code{idlwave-completion-show-classes}).@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
727
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
728 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
729 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
730 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
731 @code{idlwave-query-class} can be configured to make this behavior the
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
732 default (not really recommended). After you have specified the class
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
733 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
734 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
735 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
736 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
737 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
738 default - the variable @code{idlwave-store-inquired-class} can be used
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
739 to turn it on.@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
740
27600
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
741 @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
742 Non-@code{nil} means, show classes in @file{*Completions*} buffer when
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
743 completing object methods and keywords.@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
744 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
745
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
746 @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
747 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
748 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
749
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
750 @defopt idlwave-query-class (@code{nil})
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
751 Association list governing query for object classes during completion.@refill
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 @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
755 Non-@code{nil} means, store class of a method call as text property on
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
756 @samp{->}.@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
757 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
758
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
759 @defopt idlwave-class-arrow-face
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
760 Face to highlight object operator arrows @samp{->} which carry a class
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
761 property.@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
762 @end defopt
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 @node Code Templates, Actions, Completion, The IDLWAVE Major Mode
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
765 @section Code Templates
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
766 @cindex Code templates
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
767 @cindex Abbreviations
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
768 @cindex Templates
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
769
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
770 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
771 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
772
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
773 @multitable @columnfractions .15 .85
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
774 @item @kbd{C-c C-c}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
775 @tab @code{CASE} statement template
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
776 @item @kbd{C-c C-f}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
777 @tab @code{FOR} loop template
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
778 @item @kbd{C-c C-r}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
779 @tab @code{REPEAT} loop template
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
780 @item @kbd{C-c C-w}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
781 @tab @code{WHILE} loop template
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
782 @end multitable
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
783
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
784 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
785 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
786 @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
787 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
788 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
789 idlwave-list-abbrevs}.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
790
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
791 @multitable @columnfractions .15 .85
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
792 @item @code{\pr}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
793 @tab @code{PROCEDURE} template
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
794 @item @code{\fu}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
795 @tab @code{FUNCTION} template
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
796 @item @code{\c}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
797 @tab @code{CASE} statement template
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
798 @item @code{\f}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
799 @tab @code{FOR} loop template
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
800 @item @code{\r}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
801 @tab @code{REPEAT} loop template
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
802 @item @code{\w}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
803 @tab @code{WHILE} loop template
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
804 @item @code{\i}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
805 @tab @code{IF} statement template
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
806 @item @code{\elif}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
807 @tab @code{IF-ELSE} statement template
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
808 @item @code{\b}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
809 @tab @code{BEGIN}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
810 @end multitable
27600
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
811
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
812 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
813 variables @code{idlwave-abbrev-change-case} and
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
814 @code{idlwave-reserved-word-upcase}.@refill
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
815
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
816 @defopt idlwave-abbrev-start-char
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
817 A single character string used to start abbreviations in abbrev
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
818 mode.@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
819 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
820
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
821 @defopt idlwave-abbrev-move (@code{t})
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
822 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
823 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
824 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
825
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
826 @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
827 @section Actions
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
828 @cindex Actions
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
829 @cindex Coding standards, enforcing
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
830
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
831 @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
832 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
833 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
834 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
835 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
836 want your code to adhere to certain standards, they can be
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
837 helpful.@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
838
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
839 Action can be applied in three ways:
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
840 @itemize @bullet
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
841 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
842 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
843 @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
844 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
845 after a reserved word can call a command to change the word to upper
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
846 case.@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
847 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
848 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
849 entire line. To enable this, the variable @code{idlwave-do-actions}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
850 must be non-@code{nil}.@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
851 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
852 @cindex Foreign code, adapting
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
853 @cindex Actions, applied to foreign code
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
854 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
855 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
856 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
857 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
858 current subprogram). @xref{Code Indentation}, for information how to
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
859 ajust the indentation of the code.@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
860 @end itemize
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 @defopt idlwave-do-actions (@code{nil})
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
863 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
864 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
865
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
866 @menu
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
867 * 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
868 * Padding Operators:: Enforcing space around `=' etc
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
869 * Case Changes:: Enforcing upper case keywords
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
870 @end menu
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
871
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
872 @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
873 @subsection Block Boundary Check
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
874 @cindex Block boundary check
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
875 @cindex @code{END} type checking
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
876 @cindex @code{END}, automatic insertion
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
877 @cindex Block, closing
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
878 @cindex Closing a block
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
879
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
880 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
881 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
882 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
883 @code{ENDIF} or @code{ENDCASE}, you get a warning if that kind of END
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
884 does not match the type of block it terminates.@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
885
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
886 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
887 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
888 You can also type @kbd{C-c ]} to close the current block by inserting
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
889 the appropriate @code{END} statement.@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
890
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
891 @defopt idlwave-show-block (@code{t})
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
892 Non-@code{nil} means point blinks to block beginning for
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
893 @code{idlwave-show-begin}.@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
894 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
895
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
896 @defopt idlwave-expand-generic-end (@code{nil})
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
897 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
898 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
899
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
900 @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
901 @subsection Padding Operators
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
902 @cindex Padding operators with spaces
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
903 @cindex Operators, padding with spaces
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
904
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
905 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
906 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
907 indented. IDLWAVE contains this setting for the operators @samp{&},
27600
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
908 @samp{<}, @samp{>}, @samp{,}, @samp{=}, and @samp{->}@footnote{operators
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
909 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
910 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
911 customize the variables @code{idlwave-surround-by-blank} and
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
912 @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
913 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
914 in the mode hook. For example, to enforce space padding of the @samp{+}
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
915 and @samp{*} operators, try this in @file{.emacs}@refill
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
916
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
917 @lisp
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
918 (add-hook 'idlwave-mode-hook
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
919 (lambda ()
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
920 (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
921 (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
922 (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
923 @end lisp
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
924
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
925 @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
926 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
927 @samp{=}, @samp{<}, @samp{>}, @samp{&}, @samp{,}, @samp{->} are
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
928 surrounded with spaces by @code{idlwave-surround}.@refill
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
929 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
930
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
931 @defopt idlwave-pad-keyword (@code{t})
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
932 Non-@code{nil} means pad @samp{=} for keywords like assignments.@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
933 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
934
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
935 @node Case Changes, , Padding Operators, Actions
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
936 @subsection Case Changes
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
937 @cindex Case changes
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
938
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
939 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
940 abbreviations by customizing the variables
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
941 @code{idlwave-abbrev-change-case} and
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
942 @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
943 additional words automatically, put something like the following into
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
944 your @file{.emacs} file:@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
945
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
946 @lisp
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
947 (add-hook 'idlwave-mode-hook
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
948 (lambda ()
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
949 ;; Capitalize system vars
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
950 (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
951 ;; Capitalize procedure name
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
952 (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
953 '(capitalize-word 1) t)
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
954 ;; Capitalize common block name
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
955 (idlwave-action-and-binding "\\<common\\>[ \t]+\\<"
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
956 '(capitalize-word 1) t)))
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
957 @end lisp
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
958
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
959 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
960 @code{idlwave-action-and-binding}.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
961
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
962 @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
963 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
964 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
965 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
966
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
967 @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
968 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
969 expansion.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
970 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
971
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
972
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
973 @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
974 @section Documentation Header
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
975 @cindex Documentation header
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
976 @cindex Modification timestamp
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
977 @cindex Header, for file documentation
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
978 @cindex Timestamp, in doc header.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
979 @cindex Changelog, in doc header.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
980
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
981 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
982 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
983 @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
984 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
985 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
986 name with a timestamp.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
987
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
988 @defopt idlwave-file-header
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
989 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
990 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
991
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
992 @defopt idlwave-timestamp-hook
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
993 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
994 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
995
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
996 @defopt idlwave-doc-modifications-keyword
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
997 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
998 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
999
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1000 @defopt idlwave-doclib-start
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1001 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
1002 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1003
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1004 @defopt idlwave-doclib-end
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1005 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
1006 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1007
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1008 @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
1009 @section Motion Commands
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1010 @cindex Motion commands
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1011 @cindex Program structure, moving through
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1012 @cindex Code structure, moving through
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1013
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1014 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
1015 program. These are
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1016
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1017 @multitable @columnfractions .15 .85
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1018 @item @kbd{C-M-a}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1019 @tab Beginning of subprogram
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1020 @item @kbd{C-M-e}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1021 @tab End of subprogram
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1022 @item @kbd{C-c @{}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1023 @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
1024 @item @kbd{C-c @}}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1025 @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
1026 @item @kbd{M-C-n}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1027 @tab Forward block (on same level)
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1028 @item @kbd{M-C-p}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1029 @tab Backward block (on same level)
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1030 @item @kbd{M-C-d}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1031 @tab Down block (enters a block)
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1032 @item @kbd{M-C-u}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1033 @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
1034 @item @kbd{C-c C-n}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1035 @tab Next Statement
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1036 @end multitable
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1037
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1038
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1039 @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
1040 @section Miscellaneous Options
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1041
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1042 @defopt idlwave-help-application
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1043 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
1044 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1045
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1046 @defopt idlwave-startup-message (@code{t})
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1047 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
1048 is first called.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1049 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1050
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1051 @defopt idlwave-mode-hook
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1052 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
1053 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1054
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1055 @defopt idlwave-load-hook
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1056 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
1057 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1058
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1059
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1060
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1061
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1062
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1063
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1064
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1065
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1066
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1067
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1068
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1069
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1070
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1071
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1072
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1073
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1074 @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
1075 @chapter The IDLWAVE Shell
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1076 @cindex IDLWAVE shell
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1077 @cindex Major mode, @code{idlwave-shell-mode}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1078
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1079 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
1080 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
1081 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
1082 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
1083 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
1084 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
1085 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
1086 to make the IDLWAVE shell work on these systems.} - so the IDLWAVE shell
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1087 only works under Unix.@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1088
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1089 @menu
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1090 * 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
1091 * 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
1092 * Debugging IDL Programs:: Compilation/Debugging
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1093 @end menu
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1094
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1095 @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
1096 @section Starting the Shell
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1097 @cindex Starting the shell
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1098 @cindex Shell, starting
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1099 @cindex Dedicated frame, for shell buffer
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1100 @cindex Frame, for shell buffer
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1101
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1102 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
1103 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
1104 @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
1105 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
1106 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
1107 (@code{idlwave-shell-recenter-shell-window}) displays the
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1108 shell window without selecting it.@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1109
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1110 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
1111 @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
1112 @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
1113 window, configure the variable
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1114 @code{idlwave-shell-use-dedicated-frame}.@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1115
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1116 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
1117 to send a command to it. To enable auto start, set the variable
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1118 @code{idlwave-shell-automatic-start} to @code{t}.@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1119
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1120 @defopt idlwave-shell-explicit-file-name
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1121 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
1122 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1123
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1124 @defopt idlwave-shell-command-line-options
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1125 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
1126 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1127
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1128 @defopt idlwave-shell-prompt-pattern
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1129 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
1130 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1131
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1132 @defopt idlwave-shell-process-name
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1133 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
1134 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1135
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1136 @defopt idlwave-shell-automatic-start
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1137 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
1138 running.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1139 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1140
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1141 @defopt idlwave-shell-initial-commands
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1142 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
1143 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1144
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1145 @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
1146 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
1147 shell buffer.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1148 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1149
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1150 @defopt idlwave-shell-frame-parameters
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1151 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
1152 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1153
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1154 @defopt idlwave-shell-temp-pro-prefix
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1155 The prefix for temporary IDL files used when compiling regions.@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1156 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1157
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1158 @defopt idlwave-shell-mode-hook
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1159 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
1160 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1161
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1162 @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
1163 @section Using the Shell
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1164 @cindex comint
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1165 @cindex Shell, basic commands
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1166
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1167 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
1168 Emacs. It provides command history, command line editing and job
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1169 control. Here is a list of commonly used commands, see the Emacs
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1170 documentation on @file{comint} for additional information.@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1171
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1172 @multitable @columnfractions .12 .88
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1173 @item @kbd{M-p}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1174 @tab Cycle backwards in input history matching input
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1175 @item @kbd{M-n}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1176 @tab Cycle forwards
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1177 @item @kbd{M-r}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1178 @tab Previous input matching a regexp
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1179 @item @kbd{M-s}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1180 @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
1181 @item @kbd{return}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1182 @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
1183 @item @kbd{C-c C-a}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1184 @tab Beginning of line; skip prompt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1185 @item @kbd{C-c C-u}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1186 @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
1187 @item @kbd{C-c C-w}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1188 @tab Kill word before cursor
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1189 @item @kbd{C-c C-c}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1190 @tab Send ^C
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1191 @item @kbd{C-c C-z}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1192 @tab Send ^Z
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1193 @item @kbd{C-c C-\}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1194 @tab Send ^\
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1195 @item @kbd{C-c C-o}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1196 @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
1197 @item @kbd{C-c C-r}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1198 @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
1199 @item @kbd{C-c C-l}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1200 @tab List input history
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1201 @end multitable
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1202
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1203 In addition to these standard @file{comint} commands,
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1204 @code{idlwave-shell-mode} has some bindings which correspond to similar
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1205 commands in @code{idlwave-mode}. See @ref{Routine Info} and
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1206 @ref{Completion} for more information on these commands.@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1207
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1208 @cindex Completion in the shell
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1209 @cindex Routine info in the shell
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1210 @multitable @columnfractions .12 .88
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1211 @item @kbd{@key{TAB}}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1212 @tab Completion of file names, routine names and keywords
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1213 (@code{idlwave-shell-complete})@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1214 @item @kbd{M-@key{TAB}}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1215 @tab Same as @key{TAB}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1216 @item @kbd{C-c ?}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1217 @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
1218 @item @kbd{M-?}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1219 @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
1220 @item @kbd{C-c C-i}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1221 @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
1222 (@code{idlwave-update-routine-info})
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1223 @item @kbd{C-c C-v}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1224 @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
1225 @item @kbd{C-c =}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1226 @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
1227 @end multitable
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1228
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1229 @defopt idlwave-shell-file-name-chars
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1230 The characters allowed in file names, as a string. Used for file name
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1231 completion.@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1232 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1233
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1234 @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
1235 @section Debugging IDL Programs
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1236 @cindex Debugging
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1237 @cindex Keybindings for debugging
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1238 @cindex Toolbar
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1239
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1240 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
1241 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
1242 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
1243 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
1244 toolbar. The display of the toolbar can be toggled with @kbd{C-c C-d
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1245 C-t} (@code{idlwave-shell-toggle-toolbar}).@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1246
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1247 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
1248 C-d}, so for example setting a breakpoint is done with @kbd{C-c C-d
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1249 C-b}. If you find this too much work and your ALT key is still
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1250 available, turn on the variable
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1251 @code{idlwave-shell-activate-alt-keybindings} in order to get breakpoint
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1252 setting on @kbd{A-b}. In the remainder of this chapter we will assume
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1253 that the @kbd{C-c C-d} bindings are active.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1254
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1255 @defopt idlwave-shell-prefix-key
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1256 The prefix key for the debugging map
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1257 @code{idlwave-shell-mode-prefix-map}.@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1258 @end defopt
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 @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
1261 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
1262 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
1263 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1264
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1265 @defopt idlwave-shell-activate-alt-keybindings (@code{nil})
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1266 Non-@code{nil} means, debug commands will be bound to alternate
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1267 keys, like @kbd{A-b}.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1268 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1269
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1270 @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
1271 Non-@code{nil} means, use the debugging toolbar in all IDL related
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1272 buffers.@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1273 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1274
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 @menu
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1277 * 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
1278 * 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
1279 * 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
1280 @end menu
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 @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
1283 @subsection Compiling Programs
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1284 @cindex Compiling programs
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1285 @cindex Programs, compiling
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1286 @cindex Default command line, executing
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1287 @cindex Executing a default command line
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1288
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1289 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
1290 @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
1291 current buffer and then send the command @samp{.run path/to/file} to the
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1292 shell. You can laso execute @kbd{C-c C-d C-c} from the shell buffer, in
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1293 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
1294 re-compiled.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1295
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1296 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
1297 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
1298 @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
1299 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
1300 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
1301 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
1302 line, call @code{idlwave-shell-execute-default-command-line} with a
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1303 prefix argument: @kbd{C-u C-c C-d C-y}.@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1304
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1305 @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
1306 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
1307 stopped. The value decides about the preferred method. Legal values
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1308 are @code{nil}, @code{t}, @code{arrow}, and @code{face}.@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1309 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1310
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1311 @defopt idlwave-shell-overlay-arrow
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1312 The overlay arrow to display at source lines where execution
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1313 halts.@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1314 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1315
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1316 @defopt idlwave-shell-stop-line-face
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1317 The face which highlights the source line where IDL is
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1318 stopped.@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1319 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1320
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1321 @node Breakpoints and Stepping, Examining Variables, Compiling Programs, Debugging IDL Programs
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1322 @subsection Breakpoints and Stepping
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1323 @cindex Breakpoints
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1324 @cindex Stepping
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1325
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1326 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
1327 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
1328 with @kbd{C-c C-d C-b} (@code{idlwave-shell-break-here}). With a prefix
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1329 arg of 1, the breakpoint gets a @code{/ONCE} keyword, meaning that it
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1330 will be deleted after first use. With a numeric prefix greater than
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1331 one, the breakpoint will only be active the @code{nth} time it is hit.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1332 To clear the breakpoint in the current line, use @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
1333 (@code{idlwave-clear-current-bp}). To clear all breakpoints, use
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1334 @kbd{C-c C-d C-a} (@code{idlwave-clear-all-bp}). Breakpoint lines are
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1335 highlighted in the source code.@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1336
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1337 Once the program has stopped somewhere, you can step through it. Here
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1338 is a summary of the breakpoint and stepping commands:
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1339
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1340 @multitable @columnfractions .2 .8
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1341 @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
1342 @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
1343 @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
1344 @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
1345 @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
1346 @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
1347 @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
1348 @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
1349 @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
1350 @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
1351 @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
1352 @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
1353 @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
1354 @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
1355 @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
1356 @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
1357 @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
1358 @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
1359 @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
1360 @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
1361 @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
1362 @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
1363 @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
1364 @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
1365 @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
1366 @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
1367 @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
1368 @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
1369 @end multitable
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1370
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1371 @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
1372 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
1373 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
1374 @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
1375 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1376
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1377 @defopt idlwave-shell-breakpoint-face
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1378 The face for breakpoint lines in the source code if
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1379 @code{idlwave-shell-mark-breakpoints} has the value @code{face}.@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1380 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1381
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1382 @node Examining Variables, , Breakpoints and Stepping, Debugging IDL Programs
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1383 @subsection Examining Variables
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1384 @cindex @code{PRINT} expressions
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1385 @cindex @code{HELP}, on expressions
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1386 @cindex Expressions, printing
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1387 @cindex Expressions, help
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1388 @cindex Mouse binding to print expressions
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1389
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1390 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
1391 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
1392 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
1393 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
1394 parenthesis. The selected expression becomes highlighted in the source
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
1395 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
1396 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
1397 point.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1398
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1399 I find it very convenient to bind these functions to a mouse event, so
27600
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
1400 that simply clicking on an expression prints its value. The following
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
1401 code binds printing an expression to a click with mouse button 2 while
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
1402 holding down the @key{SHIFT} key:
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1403
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1404 @lisp
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1405 (add-hook 'idlwave-shell-mode-hook
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1406 (lambda()
27600
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
1407 (define-key idlwave-mode-map [(shift mouse-2)]
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
1408 'idlwave-shell-mouse-print)))
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1409 @end lisp
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1410
27600
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
1411 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
1412 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
1413 expressions inside the routine which called the current routine etc.
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
1414 Use the commands @kbd{C-c C-d C-@key{UP}}
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
1415 (@code{idlwave-shell-stack-up}) and @kbd{C-c C-d C-@key{DOWN}}
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
1416 (@code{idlwave-shell-stack-down}) or the corresponding toolbar buttons
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
1417 to move through the calling stack. The mode line will indicate the
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
1418 routine and the calling stack level which define the context for
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
1419 printing expressions. The following restrictions apply for all levels
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
1420 except the current:@refill
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
1421
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
1422 @itemize @bullet
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
1423 @item
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
1424 Array expressions must use the @samp{[ ]} index delimiters. Identifiers
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
1425 with a @samp{( )} will be interpreted as function calls.
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
1426 @item
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
1427 Variable names in the expression may not start with an underscore
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
1428 @samp{_}.
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
1429 @item
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
1430 @cindex ROUTINE_NAMES, IDL procedure
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
1431 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
1432 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
1433 or may not be available in future versions of IDL.
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
1434 @end itemize
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
1435
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1436 @defopt idlwave-shell-expression-face
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1437 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
1438 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
1439 the expression printed by IDL.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1440 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1441
27600
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
1442 @defopt idlwave-shell-print-expression-function (@code{nil})
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
1443 A function to handle special display of evaluated expressions.
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
1444 @end defopt
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1445
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1446 @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
1447 @chapter Installation
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1448 @cindex Installation
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1449 @cindex FTP site
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1450 @cindex URL, homepage for IDLWAVE
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1451 @cindex Homepage for IDLWAVE
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1452
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1453 @menu
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1454 * Installing IDLWAVE:: How to install the distribution
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1455 * 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
1456 @end menu
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1457
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1458 @node Installing IDLWAVE, Upgrading from idl.el, Installation, Installation
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1459 @section Installing IDLWAVE
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1460
27600
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
1461 IDLWAVE is part of Emacs 21.1 and later. It is also an XEmacs packages
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
1462 and can be installed from
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1463 @uref{ftp://ftp.xemacs.org/pub/xemacs/packages/,the XEmacs ftp site}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1464 with the normal package management system on XEmacs 21.@refill
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 You can also download IDLWAVE and install it yourself from
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1467 @uref{http://www.strw.leidenuniv.nl/~dominik/Tools/idlwave, the maintainers
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1468 webpage}. Follow the instructions in the INSTALL file.@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1469
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1470 @node Upgrading from idl.el, , Installing IDLWAVE, Installation
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1471 @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
1472 @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
1473 @cindex Renaming old variables
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1474 @cindex Old variables, renaming
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 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
1477 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
1478 customization in @file{.emacs}.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1479
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1480 @enumerate
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1481 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1482 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
1483 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1484 Remove the now invalid @code{autoload} and @code{auto-mode-alist} forms
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1485 pointing to the @file{idl.el} and @file{idl-shell.el} files.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1486 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1487 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
1488 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
1489 @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
1490 @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
1491 @lisp
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1492 (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
1493 @end lisp
27600
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
1494 @item
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
1495 The key sequence @kbd{M-@key{TAB}} no longer inserts a TAB character,
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
1496 but (as in many other Emacs modes) does completion. Inserting a TAB is
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
1497 now bound to @kbd{C-c @key{SPC}}.@refill
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1498 @end enumerate
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1499
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1500 @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
1501 @chapter Acknowledgement
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1502 @cindex Acknowledgement
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1503 @cindex Thanks
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1504
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1505 @file{idl.el} and @file{idl-shell.el} were written by
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1506 @uref{mailto:chase@@att.com, Chris Chase}. The package
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1507 was extended and renamed to IDLWAVE by the current maintainer
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1508 @uref{mailto:dominik@@strw.leidenuniv.nl, Carsten Dominik}.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1509
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1510 Thanks to the following people who have contributed to the development
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1511 of IDLWAVE with patches, ideas, bug reports and suggestions.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1512
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1513 @itemize @minus
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1514 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1515 Ulrik Dickow <dickow@@nbi.dk>
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1516 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1517 Eric E. Dors <edors@@lanl.gov>
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1518 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1519 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
1520 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1521 David Huenemoerder <dph@@space.mit.edu>
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1522 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1523 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
1524 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1525 Xuyong Liu <liu@@stsci.edu>
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1526 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1527 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
1528 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1529 Laurent Mugnier <mugnier@@onera.fr>
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1530 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1531 Lubos Pochman <lubos@@rsinc.com>
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1532 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1533 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
1534 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1535 Marty Ryba <ryba@@ll.mit.edu>
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1536 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1537 Phil Williams <williams@@irc.chmcc.org>
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1538 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1539 J.D. Smith <jdsmith@@astrosun.tn.cornell.edu>
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1540 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1541 Phil Sterne <sterne@@dublin.llnl.gov>
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1542 @end itemize
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1543
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1544 @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
1545 @appendix Sources of Routine Info
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1546
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1547 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
1548 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
1549 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
1550 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
1551
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1552 @menu
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1553 * Routine Definitions:: Where IDL Routines are defined.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1554 * Routine Information Sources:: So how does IDLWAVE know about...
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1555 * Library Scan:: Scanning the Libraries for Routine Info
27186
eb645a473bf8 New version is consistent with the changed names.
Carsten Dominik <dominik@science.uva.nl>
parents: 26960
diff changeset
1556 * Updating idlw-rinfo.el:: Scanning the IDL Manuals
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1557 @end menu
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1558
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1559 @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
1560 @section Routine Definitions
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1561 @cindex Routine definitions
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1562
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1563 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
1564 places:
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1565
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1566 @enumerate
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1567 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1568 @emph{System routines} are defined inside IDL itself. The source
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1569 code of such routines is not accessible to the user.@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1570 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1571 Routines @emph{part of the current program} are defined in a file which
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1572 is explicitly compiled by the user. This file may be located on the IDL
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1573 search path, but this is not certain.@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1574 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1575 @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
1576 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
1577 the first time, IDL will find the source file and compile it
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1578 dynamically.@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1579 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1580 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
1581 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
1582 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
1583 cannot provide routine info and completion for external
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1584 routines.@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1585 @end enumerate
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 Routine Information Sources, Library Scan, Routine Definitions, Sources of Routine Info
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1588 @section Routine Information Sources
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1589 @cindex Routine info sources
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1590
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1591 In oder to know about as many routines as possible, IDLWAVE will do the
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1592 following to collect information:@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1593
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1594 @enumerate
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1595
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1596 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1597 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
1598 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
1599 @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
1600 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
1601 by scanning the IDL manuals and is stored in the file
27186
eb645a473bf8 New version is consistent with the changed names.
Carsten Dominik <dominik@science.uva.nl>
parents: 26960
diff changeset
1602 @file{idlw-rinfo.el}. @xref{Updating idlw-rinfo.el}, for
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1603 information how to regenerate this file for new versions of IDL.@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1604
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1605 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1606 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
1607 routine definitions. This is done automatically when routine
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1608 information or completion is first requested by the user. The command
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1609 @kbd{C-c C-i} (@code{idlwave-update-routine-info}) can be used at any
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1610 time to rescan all buffers.@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1611
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1612 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1613 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
1614 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
1615 and their arguments. This happens automatically when routine
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1616 information or completion is first requested by the user. The command
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1617 @kbd{C-c C-i} (@code{idlwave-update-routine-info}) can be used to ask
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1618 the shell again at any time.@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1619
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1620 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1621 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
1622 file which will be automatically loaded just like
27186
eb645a473bf8 New version is consistent with the changed names.
Carsten Dominik <dominik@science.uva.nl>
parents: 26960
diff changeset
1623 @file{idlw-rinfo.el}. @xref{Library Scan}, for information how to
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1624 scan library files.@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1625 @end enumerate
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 @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
1628 Non-@code{nil} means, scan all buffers for IDL programs when updating
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1629 info. When this variable is @code{nil}, it only parses the current
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1630 buffer.@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1631 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1632
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1633 @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
1634 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
1635 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1636
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1637
27186
eb645a473bf8 New version is consistent with the changed names.
Carsten Dominik <dominik@science.uva.nl>
parents: 26960
diff changeset
1638 @node Library Scan, Updating idlw-rinfo.el, Routine Information Sources, Sources of Routine Info
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1639 @section Library Scan
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1640 @cindex Library scan
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1641 @cindex IDL library routine info
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1642
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1643 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
1644 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
1645 @code{idlwave-libinfo-file} needs to contain the path to a file in an
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1646 existing directory (e.g. @code{"~/idlwave_libinfo.el"}). Since the file
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1647 will contain lisp code, it should end in @file{.el}. Under Windows and
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1648 MacOS, you also need to specify the search path for IDL library files in
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1649 the variable @code{idlwave-library-path}. Under UNIX, this path will
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1650 be automatically inferred from an IDLWAVE shell.@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1651
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1652 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
1653 scan library files. It brings up a widget in which you can select some
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1654 or all directories on the search path. Pressing the @w{@samp{[Scan & Save]}}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1655 button in the widget will scan all files in the selected directories and
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1656 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
1657 @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
1658 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
1659 @code{idlwave-update-routine-info} with a double prefix argument:
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1660 @kbd{C-u C-u C-c C-i}. This will rescan files in the previously
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1661 selected directories, write an updated version of the libinfo file and
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1662 rebuild IDLWAVEs internal lists.@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1663
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1664 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
1665 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
1666 time and loading this information into Emacs can require a
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1667 significant amount of memory.@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1668
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1669 A routine which is both in the library listing and compiled under the
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1670 shell will show up twice in the @file{*Completions*} listing. This is
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1671 usually not a serious problem. However, if you have scanned the part of
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1672 the library relevant for you, and if you are not compiling files which
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1673 are not on the library search path, the information about compiled
27600
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
1674 routines is in fact unnecessary. In this case, you can turn off the
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1675 shell query for compiled routines with the variable
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1676 @code{idlwave-query-shell-for-routine-info}.@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1677
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1678 @defopt idlwave-libinfo-file
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1679 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
1680 @end defopt
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 @defopt idlwave-library-path
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1683 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
1684 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1685
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1686
27186
eb645a473bf8 New version is consistent with the changed names.
Carsten Dominik <dominik@science.uva.nl>
parents: 26960
diff changeset
1687 @node Updating idlw-rinfo.el, , Library Scan, Sources of Routine Info
eb645a473bf8 New version is consistent with the changed names.
Carsten Dominik <dominik@science.uva.nl>
parents: 26960
diff changeset
1688 @section Updating @file{idlw-rinfo.el}
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1689 @cindex @file{get_rinfo}
27186
eb645a473bf8 New version is consistent with the changed names.
Carsten Dominik <dominik@science.uva.nl>
parents: 26960
diff changeset
1690 @cindex @file{idlw-rinfo.el}
eb645a473bf8 New version is consistent with the changed names.
Carsten Dominik <dominik@science.uva.nl>
parents: 26960
diff changeset
1691 @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
1692
27186
eb645a473bf8 New version is consistent with the changed names.
Carsten Dominik <dominik@science.uva.nl>
parents: 26960
diff changeset
1693 The file @file{idlw-rinfo.el} contains the routine information for
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1694 the routines build into IDL. This constant depends upon the version of
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1695 IDL. If you are lucky, the maintainer of IDLWAVE will always have
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1696 access to the newest version of IDL and provide updates of
27186
eb645a473bf8 New version is consistent with the changed names.
Carsten Dominik <dominik@science.uva.nl>
parents: 26960
diff changeset
1697 @file{idlw-rinfo.el} reflecting the currently released version of
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1698 IDL. The IDLWAVE package also contains a Perl program @file{get_rinfo}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1699 which constructs this file by scanning selected files from the IDL
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1700 documentation. The program needs @file{pdftotext} by Derek B. Noonburg.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1701 Instructions on how to use @file{get_rinfo} are in the program
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1702 itself.@refill
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 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
1705 @appendix Configuration Examples
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1706 @cindex Configuration examples
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1707 @cindex Example configuration
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1708
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1709 @noindent
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1710 @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
1711 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
1712 actually set in your own configuration?
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1713
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1714 @noindent
27600
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
1715 @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
1716 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
1717 turn on features which
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1718 @itemize @minus
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1719 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1720 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
1721 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1722 are too intrusive
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1723 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1724 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
1725 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1726 break with what I think are widely used standards.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1727 @end itemize
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1728
27600
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
1729 @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
1730 have in my @file{.emacs}:
26960
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 @lisp
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1733 (setq idlwave-shell-activate-alt-keybindings t
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1734 idlwave-expand-generic-end t
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1735 idlwave-store-inquired-class t
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1736 idlwave-shell-automatic-start t
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1737 idlwave-libinfo-file "~/lib/idl/libinfo.el"
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1738 idlwave-main-block-indent 2)
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1739 (add-hook 'idlwave-shell-mode-hook
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1740 (lambda()
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1741 (define-key idlwave-mode-map [(shift button1)]
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1742 'idlwave-shell-mouse-print)
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1743 (define-key idlwave-mode-map [(shift button2)]
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1744 'idlwave-shell-mouse-help)))
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1745 @end lisp
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1746
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1747 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
1748 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
1749 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
1750 of IDLWAVE. To say it again - this is not what I recommend, but the
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1751 user is King!@refill
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1752
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1753 @example
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1754 ;;; Settings for IDLWAVE mode
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1755
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1756 (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
1757 (setq idlwave-main-block-indent 3)
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1758 (setq idlwave-end-offset -3)
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1759 (setq idlwave-continuation-indent 1)
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1760 (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
1761 ; anchored at start of line.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1762 (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
1763 (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
1764 (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
1765 (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
1766 ; (with abbrevs only)
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1767 (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
1768 (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
1769 (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
1770 (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
1771
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1772 ;; 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
1773
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1774 (add-hook 'idlwave-mode-hook
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1775 (lambda ()
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1776 (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
1777 (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
1778 ;; Run other functions here
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1779 (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
1780 (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
1781 ;;
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1782 ;; 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
1783 ;; 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
1784 ;; instead of 1.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1785 (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
1786 (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
1787 (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
1788 (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
1789 ;;
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1790 ;; 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
1791 (idlwave-action-and-binding "," '(idlwave-surround nil 1))
27600
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
1792 (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
1793 ;;
27600
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
1794 ;; Pad only after `->', remove any space before the arrow
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
1795 (idlwave-action-and-binding "->" '(idlwave-surround 0 -1 nil 2))
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
1796 ;;;
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1797 ;; Set some personal bindings
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1798 ;; (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
1799 (local-set-key "," 'self-insert-command)
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1800 ;; 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
1801 ;; 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
1802 ;; 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
1803 (local-set-key "\n" 'idlwave-newline)
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1804 ;; (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
1805 ))
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1806
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1807 ;;; Settings for IDLWAVE SHELL mode
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1808
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1809 (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
1810 (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
1811 (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
1812 (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
1813 (setq idlwave-shell-process-name "wave")
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1814 (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
1815 @end example
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1816
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1817 @node Index, , Configuration Examples, Top
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1818 @unnumbered Index
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1819 @printindex cp
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1820
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1821 @summarycontents
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1822 @contents
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1823 @bye
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1824