Mercurial > emacs
annotate man/idlwave.texi @ 88241:5d16d8710768
(rmail-summary-get-sender): New function.
(rmail-summary-get-summary): Use it.
(rmail-summary-get-line-count): Doc fix.
(rmail-summary-get-summary-attributes): Likewise.
author | Henrik Enberg <henrik.enberg@telia.com> |
---|---|
date | Fri, 20 Jan 2006 18:49:48 +0000 |
parents | d7ddb3e565de |
children |
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 |
46530 | 3 @setfilename ../info/idlwave |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
4 @settitle IDLWAVE User Manual |
88155 | 5 @dircategory Emacs |
6 @direntry | |
7 * IDLWAVE: (idlwave). Major mode and shell for IDL files. | |
8 @end direntry | |
26960
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 |
88155 | 12 @set VERSION 5.5 |
13 @set EDITION 5.5 | |
14 @set IDLVERSION 6.1 | |
15 @set NSYSROUTINES 1850 | |
16 @set NSYSKEYWORDS 7685 | |
17 @set DATE March, 2005 | |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
18 @set AUTHOR J.D. Smith & Carsten Dominik |
88155 | 19 @set AUTHOR-EMAIL jdsmith@@as.arizona.edu |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
20 @set MAINTAINER J.D. Smith |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
21 @set MAINTAINER-EMAIL jdsmith@@as.arizona.edu |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
22 @c %**end of header |
88155 | 23 @finalout |
24 | |
25 @ifinfo | |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
26 This file documents IDLWAVE, a major mode for editing IDL files with |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
27 Emacs, and interacting with an IDL shell run as a subprocess. |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
28 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
29 This is edition @value{EDITION} of the IDLWAVE User Manual for IDLWAVE |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
30 @value{VERSION} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
31 |
88155 | 32 Copyright @copyright{} 1999, 2000, 2001, 2002, 2003, 2004, |
33 2005 Free Software Foundation, Inc. | |
34 | |
46534
9059071c4fa9
Updated with patches from 1.8-1.17
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46530
diff
changeset
|
35 Permission is granted to copy, distribute and/or modify this document |
88155 | 36 under the terms of the GNU Free Documentation License, Version 1.2 or |
46534
9059071c4fa9
Updated with patches from 1.8-1.17
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46530
diff
changeset
|
37 any later version published by the Free Software Foundation; with no |
9059071c4fa9
Updated with patches from 1.8-1.17
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46530
diff
changeset
|
38 Invariant Sections, with the Front-Cover texts being ``A GNU |
9059071c4fa9
Updated with patches from 1.8-1.17
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46530
diff
changeset
|
39 Manual'', and with the Back-Cover Texts as in (a) below. A copy of the |
9059071c4fa9
Updated with patches from 1.8-1.17
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46530
diff
changeset
|
40 license is included in the section entitled ``GNU Free Documentation |
9059071c4fa9
Updated with patches from 1.8-1.17
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46530
diff
changeset
|
41 License'' in the Emacs manual. |
9059071c4fa9
Updated with patches from 1.8-1.17
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46530
diff
changeset
|
42 |
9059071c4fa9
Updated with patches from 1.8-1.17
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46530
diff
changeset
|
43 (a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify |
9059071c4fa9
Updated with patches from 1.8-1.17
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46530
diff
changeset
|
44 this GNU Manual, like GNU software. Copies published by the Free |
9059071c4fa9
Updated with patches from 1.8-1.17
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46530
diff
changeset
|
45 Software Foundation raise funds for GNU development.'' |
9059071c4fa9
Updated with patches from 1.8-1.17
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46530
diff
changeset
|
46 |
9059071c4fa9
Updated with patches from 1.8-1.17
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46530
diff
changeset
|
47 This document is part of a collection distributed under the GNU Free |
9059071c4fa9
Updated with patches from 1.8-1.17
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46530
diff
changeset
|
48 Documentation License. If you want to distribute this document |
9059071c4fa9
Updated with patches from 1.8-1.17
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46530
diff
changeset
|
49 separately from the collection, you can do so by adding a copy of the |
9059071c4fa9
Updated with patches from 1.8-1.17
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46530
diff
changeset
|
50 license to the document, as described in section 6 of the license. |
88155 | 51 @end ifinfo |
26960
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 @titlepage |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
54 @title IDLWAVE User Manual |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
55 @subtitle Emacs major mode and shell for IDL |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
56 @subtitle Edition @value{EDITION}, @value{DATE} |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
57 |
88155 | 58 @author by J.D. Smith & Carsten Dominik |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
59 @page |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
60 This is edition @value{EDITION} of the @cite{IDLWAVE User Manual} for |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
61 IDLWAVE version @value{VERSION}, @value{DATE}. |
88155 | 62 @sp 2 |
63 Copyright @copyright{} 1999, 2000, 2001, 2002, 2003, 2004, | |
64 2005 Free Software Foundation, Inc. | |
65 @sp 2 | |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
66 @cindex Copyright, of IDLWAVE |
88155 | 67 Permission is granted to copy, distribute and/or modify this document |
68 under the terms of the GNU Free Documentation License, Version 1.2 or | |
69 any later version published by the Free Software Foundation; with no | |
70 Invariant Sections, with the Front-Cover texts being ``A GNU | |
71 Manual'', and with the Back-Cover Texts as in (a) below. A copy of the | |
72 license is included in the section entitled ``GNU Free Documentation | |
73 License'' in the Emacs manual. | |
74 | |
75 (a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify | |
76 this GNU Manual, like GNU software. Copies published by the Free | |
77 Software Foundation raise funds for GNU development.'' | |
78 | |
79 This document is part of a collection distributed under the GNU Free | |
80 Documentation License. If you want to distribute this document | |
81 separately from the collection, you can do so by adding a copy of the | |
82 license to the document, as described in section 6 of the license. | |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
83 @end titlepage |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
84 @contents |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
85 |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
86 @page |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
87 |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
88 @ifnottex |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
89 |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
90 @node Top, Introduction, (dir), (dir) |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
91 |
88155 | 92 IDLWAVE is a package which supports editing source code written in the |
93 Interactive Data Language (IDL), and running IDL as an inferior shell. | |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
94 |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
95 @end ifnottex |
26960
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 @menu |
88155 | 98 * Introduction:: What IDLWAVE is, and what it is not |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
99 * IDLWAVE in a Nutshell:: One page quick-start guide |
34432
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
100 * Getting Started:: Tutorial |
88155 | 101 * The IDLWAVE Major Mode:: The mode for editing IDL programs |
102 * The IDLWAVE Shell:: The mode for running IDL as an inferior program | |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
103 * Acknowledgements:: Who did what |
88155 | 104 * Sources of Routine Info:: How does IDLWAVE know about routine XYZ |
105 * HTML Help Browser Tips:: | |
106 * Configuration Examples:: The user is king | |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
107 * Windows and MacOS:: What still works, and how |
88155 | 108 * Troubleshooting:: When good computers turn bad |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
109 * Index:: Fast access |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
110 |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
111 @detailmenu |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
112 --- The Detailed Node Listing --- |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
113 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
114 Getting Started (Tutorial) |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
115 |
88155 | 116 * Lesson I -- Development Cycle:: |
117 * Lesson II -- Customization:: | |
118 * Lesson III -- User Catalog:: | |
26960
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 The IDLWAVE Major Mode |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
121 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
122 * Code Formatting:: Making code look nice |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
123 * Routine Info:: Calling Sequence and Keyword List |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
124 * Online Help:: One key press from source to help |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
125 * Completion:: Completing routine names and Keywords |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
126 * Routine Source:: Finding routines, the easy way |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
127 * Resolving Routines:: Force the Shell to compile a routine |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
128 * Code Templates:: Frequent code constructs |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
129 * Abbreviations:: Abbreviations for common commands |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
130 * Actions:: Changing case, Padding, End checking |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
131 * Doc Header:: Inserting a standard header |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
132 * 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
|
133 * 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
|
134 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
135 Code Formatting |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
136 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
137 * Code Indentation:: Reflecting the logical structure |
88155 | 138 * Continued Statement Indentation:: |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
139 * Comment Indentation:: Special indentation for comment lines |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
140 * Continuation Lines:: Splitting statements over lines |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
141 * Syntax Highlighting:: Font-lock support |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
142 * Octals and Highlighting:: Why "123 causes problems |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
143 |
88155 | 144 Online Help |
145 | |
146 * Help with HTML Documentation:: | |
147 * Help with Source:: | |
148 | |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
149 Completion |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
150 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
151 * Case of Completed Words:: CaseOFcomPletedWords |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
152 * Object Method Completion and Class Ambiguity:: obj->Method, what? |
88155 | 153 * Object Method Completion in the Shell:: |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
154 * Class and Keyword Inheritance:: obj->Method, _EXTRA=e |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
155 * Structure Tag Completion:: Completing state.Tag |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
156 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
157 Actions |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
158 |
47440
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
159 * Block Boundary Check:: Is the END statement correct? |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
160 * Padding Operators:: Enforcing space around `=' etc |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
161 * Case Changes:: Enforcing upper case keywords |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
162 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
163 The IDLWAVE Shell |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
164 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
165 * 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
|
166 * Using the Shell:: Interactively working with the Shell |
88155 | 167 * Commands Sent to the Shell:: |
168 * Debugging IDL Programs:: | |
169 * Examining Variables:: | |
170 * Custom Expression Examination:: | |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
171 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
172 Debugging IDL Programs |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
173 |
88155 | 174 * A Tale of Two Modes:: |
175 * Debug Key Bindings:: | |
176 * Breakpoints and Stepping:: | |
177 * Compiling Programs:: | |
178 * Walking the Calling Stack:: | |
179 * Electric Debug Mode:: | |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
180 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
181 Sources of Routine Info |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
182 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
183 * Routine Definitions:: Where IDL Routines are defined. |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
184 * Routine Information Sources:: So how does IDLWAVE know about... |
88155 | 185 * Catalogs:: |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
186 * Load-Path Shadows:: Routines defined in several places |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
187 * Documentation Scan:: Scanning the IDL Manuals |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
188 |
88155 | 189 Catalogs |
190 | |
191 * Library Catalogs:: | |
192 * User Catalog:: | |
193 | |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
194 @end detailmenu |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
195 @end menu |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
196 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
197 @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
|
198 @chapter Introduction |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
199 @cindex Introduction |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
200 @cindex Interactive Data Language |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
201 @cindex cc-mode.el |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
202 @cindex @file{idl.el} |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
203 @cindex @file{idl-shell.el} |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
204 @cindex Feature overview |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
205 |
88155 | 206 IDLWAVE is a package which supports editing source files written in |
207 the Interactive Data Language, and running | |
208 IDL as an inferior shell@footnote{Note that this package has nothing | |
209 to do with the Interface Definition Language, part of the Common | |
210 Object Request Broker Architecture (CORBA)}@footnote{IDLWAVE can also | |
211 be used for editing source files for the related WAVE/CL language, but | |
212 with only limited support.}. It is a feature-rich replacement for the | |
213 IDLDE development environment included with IDL, and uses the full | |
214 power of Emacs to make editing and running IDL programs easier, | |
215 quicker, and more structured. | |
216 | |
217 IDLWAVE consists of two main parts: a major mode for editing IDL | |
218 source files (@code{idlwave-mode}) and a mode for running the IDL | |
219 program as an inferior shell (@code{idlwave-shell-mode}). Although | |
220 one mode can be used without the other, both work together closely to | |
221 form a complete development environment. Here is a brief summary of | |
222 what IDLWAVE does: | |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
223 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
224 @itemize @bullet |
88155 | 225 @item |
226 Smart code indentation and automatic-formatting. | |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
227 @item |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
228 Three level syntax highlighting support. |
88155 | 229 @item |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
230 Context-sensitive display of calling sequences and keywords for more |
88155 | 231 than 1000 native IDL routines, extendible to any additional number of |
232 local routines, and already available with many pre-scanned libraries. | |
233 @item | |
234 Routine name space conflict search with likelihood-of-use ranking. | |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
235 @item |
88155 | 236 Fast, context-sensitive online HTML help, or source-header help for |
237 undocumented routines. | |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
238 @item |
88155 | 239 Context sensitive completion of routine names, keywords, system |
240 variables, class names and much more. | |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
241 @item |
88155 | 242 Easy insertion of code templates and abbreviations of common constructs. |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
243 @item |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
244 Automatic corrections to enforce a variety of customizable coding |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
245 standards. |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
246 @item |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
247 Integrity checks and auto-termination of logical blocks. |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
248 @item |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
249 Support for @file{imenu} (Emacs) and @file{func-menu} (XEmacs). |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
250 @item |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
251 Documentation support. |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
252 @item |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
253 Running IDL as an inferior Shell with history search, command line |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
254 editing and all the completion and routine info capabilities present in |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
255 IDL source buffers. |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
256 @item |
88155 | 257 Compilation, execution and interactive single-keystroke debugging of |
258 programs directly from the source buffer. | |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
259 @item |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
260 Quick, source-guided navigation of the calling stack, with variable |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
261 inspection, etc. |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
262 @item |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
263 Examining variables and expressions with a mouse click. |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
264 @item |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
265 And much, much more... |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
266 @end itemize |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
267 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
268 @ifnottex |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
269 @cindex Screenshots |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
270 Here are a number of screenshots showing IDLWAVE in action: |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
271 |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
272 @itemize @bullet |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
273 @item |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
274 @uref{http://idlwave.org/screenshots/emacs_21_nav.gif,An IDLWAVE buffer} |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
275 @item |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
276 @uref{http://idlwave.org/screenshots/emacs_21_keys.gif,A keyword being completed} |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
277 @item |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
278 @uref{http://idlwave.org/screenshots/emacs_21_help.gif,Online help text.} |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
279 @item |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
280 @uref{http://idlwave.org/screenshots/emacs_21_ri.gif,Routine information displayed} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
281 @item |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
282 @uref{http://idlwave.org/screenshots/emacs_21_bp.gif,Debugging code |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
283 stopped at a breakpoint} |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
284 @end itemize |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
285 @end ifnottex |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
286 |
88155 | 287 IDLWAVE is the distant successor to the @file{idl.el} and |
288 @file{idl-shell.el} files written by Chris Chase. The modes and files | |
289 had to be renamed because of a name space conflict with CORBA's | |
290 @code{idl-mode}, defined in Emacs in the file @file{cc-mode.el}. | |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
291 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
292 In this manual, each section ends with a list of related user options. |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
293 Don't be confused by the sheer number of options available --- in most |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
294 cases the default settings are just fine. The variables are listed here |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
295 to make sure you know where to look if you want to change anything. For |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
296 a full description of what a particular variable does and how to |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
297 configure it, see the documentation string of that variable (available |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
298 with @kbd{C-h v}). Some configuration examples are also given in the |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
299 appendix. |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
300 |
34432
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
301 @node IDLWAVE in a Nutshell, Getting Started, Introduction, Top |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
302 @chapter IDLWAVE in a Nutshell |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
303 @cindex Summary of important commands |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
304 @cindex IDLWAVE in a Nutshell |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
305 @cindex Nutshell, IDLWAVE in a |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
306 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
307 @subheading Editing IDL Programs |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
308 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
309 @multitable @columnfractions .15 .85 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
310 @item @key{TAB} |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
311 @tab Indent the current line relative to context. |
40705 | 312 @item @kbd{C-M-\} |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
313 @tab Re-indent all lines in the current region. |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
314 @item @kbd{C-u @key{TAB}} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
315 @tab Re-indent all lines in the current statement. |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
316 @item @kbd{M-@key{RET}} |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
317 @tab Start a continuation line, or split the current line at point. |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
318 @item @kbd{M-q} |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
319 @tab Fill the current comment paragraph. |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
320 @item @kbd{C-c ?} |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
321 @tab Display calling sequence and keywords for the procedure or function call |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
322 at point. |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
323 @item @kbd{M-?} |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
324 @tab Load context sensitive online help for nearby routine, keyword, etc. |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
325 @item @kbd{M-@key{TAB}} |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
326 @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
|
327 @item @kbd{C-c C-i} |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
328 @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
|
329 @item @kbd{C-c C-v} |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
330 @tab Visit the source code of a procedure/function. |
88155 | 331 @item @kbd{C-u C-c C-v} |
332 @tab Visit the source code of a procedure/function in this buffer. | |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
333 @item @kbd{C-c C-h} |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
334 @tab Insert a standard documentation header. |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
335 @item @kbd{C-c @key{RET}} |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
336 @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
|
337 @end multitable |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
338 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
339 @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
|
340 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
341 @multitable @columnfractions .15 .85 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
342 @item @kbd{C-c C-s} |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
343 @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
|
344 @item @kbd{M-p} |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
345 @tab Cycle back through IDL command history. |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
346 @item @kbd{M-n} |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
347 @tab Cycle forward. |
88155 | 348 @item @kbd{@key{TAB}} |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
349 @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
|
350 @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
|
351 @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
|
352 @item @kbd{C-c C-d C-x} |
88155 | 353 @tab Go to next syntax error. |
354 @item @kbd{C-c C-d C-v} | |
355 @tab Switch to electric debug mode. | |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
356 @item @kbd{C-c C-d C-b} |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
357 @tab Set a breakpoint at the nearest viable source line. |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
358 @item @kbd{C-c C-d C-d} |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
359 @tab Clear the nearest breakpoint. |
88155 | 360 @item @kbd{C-c C-d [} |
361 @tab Go to the previous breakpoint. | |
362 @item @kbd{C-c C-d ]} | |
363 @tab Go to the next breakpoint. | |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
364 @item @kbd{C-c C-d C-p} |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
365 @tab Print the value of the expression near point in IDL. |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
366 @end multitable |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
367 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
368 @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
|
369 @lisp |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
370 ;; Change the indentation preferences |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
371 (setq idlwave-main-block-indent 2 ; default 0 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
372 idlwave-block-indent 2 ; default 4 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
373 idlwave-end-offset -2) ; default -4 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
374 ;; Start autoloading routine info after 2 idle seconds |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
375 (setq idlwave-init-rinfo-when-idle-after 2) |
27600 | 376 ;; Pad some operators with spaces |
377 (setq idlwave-do-actions t | |
378 idlwave-surround-by-blank t) | |
379 ;; Syntax Highlighting | |
380 (add-hook 'idlwave-mode-hook 'turn-on-font-lock) | |
34432
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
381 ;; Automatically start the shell when needed |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
382 (setq idlwave-shell-automatic-start t) |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
383 ;; Bind debugging commands with CONTROL and SHIFT modifiers |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
384 (setq idlwave-shell-debug-modifiers '(control shift)) |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
385 @end lisp |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
386 |
47440
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
387 @ifhtml |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
388 <A NAME="TUTORIAL"></A> |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
389 @end ifhtml |
34432
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
390 @node Getting Started, The IDLWAVE Major Mode, IDLWAVE in a Nutshell, Top |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
391 @chapter Getting Started (Tutorial) |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
392 @cindex Quick-Start |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
393 @cindex Tutorial |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
394 @cindex Getting Started |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
395 |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
396 @menu |
88155 | 397 * Lesson I -- Development Cycle:: |
398 * Lesson II -- Customization:: | |
399 * Lesson III -- User Catalog:: | |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
400 @end menu |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
401 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
402 @node Lesson I -- Development Cycle, Lesson II -- Customization, Getting Started, Getting Started |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
403 @section Lesson I: Development Cycle |
34432
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
404 |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
405 The purpose of this tutorial is to guide you through a very basic |
88155 | 406 development cycle using IDLWAVE. We will paste a simple program into |
407 a buffer and use the shell to compile, debug and run it. On the way | |
408 we will use many of the important IDLWAVE commands. Note, however, | |
409 that IDLWAVE has many more capabilities than covered here, which can | |
410 be discovered by reading the entire manual, or hovering over the | |
411 shoulder of your nearest IDLWAVE guru for a few days. | |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
412 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
413 It is assumed that you have access to Emacs or XEmacs with the full |
88155 | 414 IDLWAVE package including online help. We also assume that you are |
415 familiar with Emacs and can read the nomenclature of key presses in | |
416 Emacs (in particular, @kbd{C} stands for @key{CONTROL} and @kbd{M} for | |
417 @key{META} (often the @key{ALT} key carries this functionality)). | |
34432
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
418 |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
419 Open a new source file by typing: |
34432
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
420 |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
421 @example |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
422 @kbd{C-x C-f tutorial.pro @key{RET}} |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
423 @end example |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
424 |
88155 | 425 A buffer for this file will pop up, and it should be in IDLWAVE mode, |
426 indicated in the mode line just below the editing window. Also, the | |
427 menu bar should contain @samp{IDLWAVE}. | |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
428 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
429 Now cut-and-paste the following code, also available as |
34432
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
430 @file{tutorial.pro} in the IDLWAVE distribution. |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
431 |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
432 @example |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
433 function daynr,d,m,y |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
434 ;; compute a sequence number for a date |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
435 ;; works 1901-2099. |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
436 if y lt 100 then y = y+1900 |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
437 if m le 2 then delta = 1 else delta = 0 |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
438 m1 = m + delta*12 + 1 |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
439 y1 = y * delta |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
440 return, d + floor(m1*30.6)+floor(y1*365.25)+5 |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
441 end |
88155 | 442 |
34432
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
443 function weekday,day,month,year |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
444 ;; compute weekday number for date |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
445 nr = daynr(day,month,year) |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
446 return, nr mod 7 |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
447 end |
88155 | 448 |
34432
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
449 pro plot_wday,day,month |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
450 ;; Plot the weekday of a date in the first 10 years of this century. |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
451 years = 2000,+indgen(10) |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
452 wdays = intarr(10) |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
453 for i=0,n_elements(wdays)-1 do begin |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
454 wdays[i] = weekday(day,month,years[i]) |
34432
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
455 end |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
456 plot,years,wdays,YS=2,YT="Wday (0=Sunday)" |
34432
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
457 end |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
458 @end example |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
459 |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
460 The indentation probably looks funny, since it's different from the |
88155 | 461 settings you use, so use the @key{TAB} key in each line to |
462 automatically line it up (or, more quickly, @emph{select} the entire | |
463 buffer with @kbd{C-x h}, and indent the whole region with | |
464 @kbd{C-M-\}). Notice how different syntactical elements are | |
465 highlighted in different colors, if you have set up support for | |
466 font-lock. | |
34432
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
467 |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
468 Let's check out two particular editing features of IDLWAVE. Place the |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
469 cursor after the @code{end} statement of the @code{for} loop and press |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
470 @key{SPC}. IDLWAVE blinks back to the beginning of the block and |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
471 changes the generic @code{end} to the specific @code{endfor} |
88155 | 472 automatically (as long as the variable @code{idlwave-expand-generic-end} |
473 is turned on --- @pxref{Lesson II -- Customization}). Now place the | |
474 cursor in any line you would like to split and press @kbd{M-@key{RET}}. | |
475 The line is split at the cursor position, with the continuation @samp{$} | |
476 and indentation all taken care of. Use @kbd{C-/} to undo the last | |
477 change. | |
478 | |
479 The procedure @code{plot_wday} is supposed to plot the day of the week | |
480 of a given date for the first 10 years of the 21st century. As in | |
481 most code, there are a few bugs, which we are going to use IDLWAVE to | |
482 help us fix. | |
34432
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
483 |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
484 First, let's launch the IDLWAVE shell. You do this with the command |
88155 | 485 @kbd{C-c C-s}. The Emacs window will split or another window will popup |
486 to display IDL running in a shell interaction buffer. Type a few | |
487 commands like @code{print,!PI} to convince yourself that you can work | |
488 there just as well as in a terminal, or the IDLDE. Use the arrow keys | |
489 to cycle through your command history. Are we having fun now? | |
34432
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
490 |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
491 Now go back to the source window and type @kbd{C-c C-d C-c} to compile |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
492 the program. If you watch the shell buffer, you see that IDLWAVE types |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
493 @samp{.run tutorial.pro} for you. But the compilation fails because |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
494 there is a comma in the line @samp{years=...}. The line with the error |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
495 is highlighted and the cursor positioned at the error, so remove the |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
496 comma (you should only need to hit @kbd{Delete}!). Compile again, using |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
497 the same keystrokes as before. Notice that the file is automatically |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
498 saved for you. This time everything should work fine, and you should |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
499 see the three routines compile. |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
500 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
501 Now we want to use the command to plot the day of the week on January |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
502 1st. We could type the full command ourselves, but why do that? Go |
88155 | 503 back to the shell window, type @samp{plot_} and hit @key{TAB}. After |
504 a bit of a delay (while IDLWAVE initializes its routine info database, | |
505 if necessary), the window will split to show all procedures it knows | |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
506 starting with that string, and @w{@code{plot_wday}} should be one of |
88155 | 507 them. Saving the buffer alerted IDLWAVE about this new routine. |
508 Click with the middle mouse button on @code{plot_wday} and it will be | |
509 copied to the shell buffer, or if you prefer, add @samp{w} to | |
510 @samp{plot_} to make it unambiguous (depending on what other routines | |
511 starting with @samp{plot_} you have installed on your system), hit | |
512 @key{TAB} again, and the full routine name will be completed. Now | |
513 provide the two arguments: | |
34432
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
514 |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
515 @example |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
516 plot_wday,1,1 |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
517 @end example |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
518 |
88155 | 519 @noindent and press @key{RET}. This fails with an error message telling |
520 you the @code{YT} keyword to plot is ambiguous. What are the allowed | |
521 keywords again? Go back to the source window and put the cursor into | |
522 the `plot' line and press @kbd{C-c ?}. This shows the routine info | |
523 window for the plot routine, which contains a list of keywords, along | |
524 with the argument list. Oh, we wanted @code{YTITLE}. Fix that up. | |
525 Recompile with @kbd{C-c C-d C-c}. Jump back into the shell with | |
526 @kbd{C-c C-s}, press the @key{UP} arrow to recall the previous command | |
527 and execute again. | |
34432
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
528 |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
529 This time we get a plot, but it is pretty ugly --- the points are all |
34432
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
530 connected with a line. Hmm, isn't there a way for @code{plot} to use |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
531 symbols instead? What was that keyword? Position the cursor on the |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
532 plot line after a comma (where you'd normally type a keyword), and hit |
88155 | 533 @kbd{M-@key{Tab}}. A long list of plot's keywords appears. Aha, |
534 there it is, @code{PSYM}. Middle click to insert it. An @samp{=} | |
535 sign is included for you too. Now what were the values of @code{PSYM} | |
536 supposed to be? With the cursor on or after the keyword, press | |
537 @kbd{M-?} for online help (alternatively, you could have right clicked | |
538 on the colored keyword itself in the completion list). A browser will | |
539 pop up showing the HTML documentation for the @code{PYSM} keyword. | |
540 OK, let's use diamonds=4. Fix this, recompile (you know the command | |
541 by now: @kbd{C-c C-d C-c}), go back to the shell (if it's vanished, | |
542 you know what to do: @kbd{C-c C-s}) and execute again. Now things | |
543 look pretty good. | |
34432
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
544 |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
545 Let's try a different day --- how about April fool's day? |
34432
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
546 |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
547 @example |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
548 plot_wday,1,4 |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
549 @end example |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
550 |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
551 Oops, this looks very wrong. All April fool's days cannot be Fridays! |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
552 We've got a bug in the program, perhaps in the @code{daynr} function. |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
553 Let's put a breakpoint on the last line there. Position the cursor on |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
554 the @samp{return, d+...} line and press @kbd{C-c C-d C-b}. IDL sets a |
88155 | 555 breakpoint (as you see in the shell window), and the break line is |
556 indicated. Back to the shell buffer, re-execute the previous command. | |
557 IDL stops at the line with the breakpoint. Now hold down the SHIFT | |
558 key and click with the middle mouse button on a few variables there: | |
559 @samp{d}, @samp{y}, @samp{m}, @samp{y1}, etc. Maybe @code{d} isn't | |
560 the correct type. CONTROL-SHIFT middle-click on it for help. Well, | |
561 it's an integer, so that's not the problem. Aha, @samp{y1} is zero, | |
562 but it should be the year, depending on delta. Shift click | |
563 @samp{delta} to see that it's 0. Below, we see the offending line: | |
564 @samp{y1=y*delta...} the multiplication should have been a minus sign! | |
565 Hit @kbd{q} to exit the debugging mode, and fix the line to read: | |
34432
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
566 |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
567 @example |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
568 y1 = y - delta |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
569 @end example |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
570 |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
571 Now remove all breakpoints: @kbd{C-c C-d C-a}. Recompile and rerun the |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
572 command. Everything should now work fine. How about those leap years? |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
573 Change the code to plot 100 years and see that every 28 years, the |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
574 sequence of weekdays repeats. |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
575 |
88155 | 576 @node Lesson II -- Customization, Lesson III -- User Catalog, Lesson I -- Development Cycle, Getting Started |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
577 @section Lesson II: Customization |
34432
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
578 |
88155 | 579 Emacs is probably the most customizable piece of software ever |
580 written, and it would be a shame if you did not make use of this and | |
581 adapt IDLWAVE to your own preferences. Customizing Emacs or IDLWAVE | |
582 is accomplished by setting Lisp variables in the @file{.emacs} file in | |
583 your home directory --- but do not be dismayed; for the most part, you | |
584 can just copy and work from the examples given here. | |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
585 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
586 Let's first use a boolean variable. These are variables which you turn |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
587 on or off, much like a checkbox. A value of @samp{t} means on, a value |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
588 of @samp{nil} means off. Copy the following line into your |
34432
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
589 @file{.emacs} file, exit and restart Emacs. |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
590 |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
591 @lisp |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
592 (setq idlwave-reserved-word-upcase t) |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
593 @end lisp |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
594 |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
595 When this option is turned on, each reserved word you type into an IDL |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
596 source buffer will be converted to upper case when you press @key{SPC} |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
597 or @key{RET} right after the word. Try it out! @samp{if} changes to |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
598 @samp{IF}, @samp{begin} to @samp{BEGIN}. If you don't like this |
88155 | 599 behavior, remove the option again from your @file{.emacs} file and |
600 restart Emacs. | |
34432
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
601 |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
602 You likely have your own indentation preferences for IDL code. For |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
603 example, some like to indent the main block of an IDL program from the |
88155 | 604 margin and use only 3 spaces as indentation between @code{BEGIN} and |
605 @code{END}. Try the following lines in @file{.emacs}: | |
34432
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
606 |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
607 @lisp |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
608 (setq idlwave-main-block-indent 2) |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
609 (setq idlwave-block-indent 3) |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
610 (setq idlwave-end-offset -3) |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
611 @end lisp |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
612 |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
613 Restart Emacs, and re-indent the program we developed in the first part |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
614 of this tutorial with @kbd{C-c h} and @kbd{C-M-\}. You may want to keep |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
615 these lines in @file{.emacs}, with values adjusted to your likings. If |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
616 you want to get more information about any of these variables, type, |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
617 e.g., @kbd{C-h v idlwave-main-block-indent @key{RET}}. To find which |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
618 variables can be customized, look for items marked @samp{User Option:} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
619 throughout this manual. |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
620 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
621 If you cannot seem to master this Lisp customization in @file{.emacs}, |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
622 there is another, more user-friendly way to customize all the IDLWAVE |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
623 variables. You can access it through the IDLWAVE menu in one of the |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
624 @file{.pro} buffers, menu item @code{Customize->Browse IDLWAVE |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
625 Group}. Here you'll be presented with all the various variables grouped |
88155 | 626 into categories. You can navigate the hierarchy (e.g. @samp{IDLWAVE |
627 Code Formatting->Idlwave Abbrev And Indent Action->Idlwave Expand | |
628 Generic End} to turn on @code{END} expansion), read about the variables, | |
629 change them, and `Save for Future Sessions'. Few of these variables | |
630 need customization, but you can exercise considerable control over | |
631 IDLWAVE's functionality with them. | |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
632 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
633 You may also find the key bindings used for the debugging commands too |
88155 | 634 long and complicated. Often we have heard complaints along the lines |
635 of, ``Do I really have to go through the finger gymnastics of @kbd{C-c | |
636 C-d C-c} to run a simple command?'' Due to Emacs rules and | |
637 conventions, shorter bindings cannot be set by default, but you can | |
638 easily enable them. First, there is a way to assign all debugging | |
639 commands in a single sweep to another simpler combination. The only | |
640 problem is that we have to use something which Emacs does not need for | |
641 other important commands. One good option is to execute debugging | |
642 commands by holding down @key{CONTROL} and @key{SHIFT} while pressing | |
643 a single character: @kbd{C-S-b} for setting a breakpoint, @kbd{C-S-c} | |
644 for compiling the current source file, @kbd{C-S-a} for deleting all | |
645 breakpoints (try it, it's easier). You can enable this with: | |
34432
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
646 |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
647 @lisp |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
648 (setq idlwave-shell-debug-modifiers '(shift control)) |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
649 @end lisp |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
650 |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
651 @noindent If you have a special keyboard with, for example, a |
88155 | 652 @key{SUPER} key, you could even shorten that: |
34432
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
653 |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
654 @lisp |
88155 | 655 (setq idlwave-shell-debug-modifiers '(super)) |
34432
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
656 @end lisp |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
657 |
88155 | 658 @noindent to get compilation on @kbd{S-c}. Often, a modifier key like |
659 @key{SUPER} or @key{HYPER} is bound or can be bound to an otherwise | |
660 unused key on your keyboard --- consult your system documentation. | |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
661 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
662 You can also assign specific commands to keys. This you must do in the |
88155 | 663 @emph{mode-hook}, a special function which is run when a new IDLWAVE |
664 buffer gets set up. The possibilities for key customization are | |
665 endless. Here we set function keys f4-f8 to common debugging commands. | |
34432
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
666 |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
667 @lisp |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
668 ;; First for the source buffer |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
669 (add-hook 'idlwave-mode-hook |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
670 (lambda () |
88155 | 671 (local-set-key [f4] 'idlwave-shell-retall) |
34432
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
672 (local-set-key [f5] 'idlwave-shell-break-here) |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
673 (local-set-key [f6] 'idlwave-shell-clear-current-bp) |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
674 (local-set-key [f7] 'idlwave-shell-cont) |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
675 (local-set-key [f8] 'idlwave-shell-clear-all-bp))) |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
676 ;; Then for the shell buffer |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
677 (add-hook 'idlwave-shell-mode-hook |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
678 (lambda () |
88155 | 679 (local-set-key [f4] 'idlwave-shell-retall) |
34432
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
680 (local-set-key [f5] 'idlwave-shell-break-here) |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
681 (local-set-key [f6] 'idlwave-shell-clear-current-bp) |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
682 (local-set-key [f7] 'idlwave-shell-cont) |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
683 (local-set-key [f8] 'idlwave-shell-clear-all-bp))) |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
684 @end lisp |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
685 |
88155 | 686 @node Lesson III -- User Catalog, , Lesson II -- Customization, Getting Started |
687 @section Lesson III: User and Library Catalogs | |
34432
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
688 |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
689 We have already used the routine info display in the first part of this |
88155 | 690 tutorial. This was the invoked using @kbd{C-c ?}, and displays |
691 information about the IDL routine near the cursor position. Wouldn't it | |
692 be nice to have the same kind of information available for your own | |
693 routines and for the huge amount of code in major libraries like JHUPL | |
694 or the IDL-Astro library? In many cases, you may already have this | |
695 information. Files named @file{.idlwave_catalog} in library directories | |
696 contain scanned information on the routines in that directory; many | |
697 popular libraries ship with these ``library catalogs'' pre-scanned. | |
698 Users can scan their own routines in one of two ways: either using the | |
699 supplied tool to scan directories and build their own | |
700 @file{.idlwave_catalog} files, or using the built-in method to create a | |
701 single ``user catalog'', which we'll show here. @xref{Catalogs}, for | |
702 more information on choosing which method to use. | |
703 | |
704 To build a user catalog, select @code{Routine Info/Select Catalog | |
705 Directories} from the IDLWAVE entry in the menu bar. If necessary, | |
706 start the shell first with @kbd{C-c C-s} (@pxref{Starting the Shell}). | |
707 IDLWAVE will find out about the IDL @code{!PATH} variable and offer a | |
708 list of directories on the path. Simply select them all (or whichever | |
709 you want --- directories with existing library catalogs will not be | |
710 selected by default) and click on the @samp{Scan&Save} button. Then | |
711 go for a cup of coffee while IDLWAVE collects information for each and | |
712 every IDL routine on your search path. All this information is | |
713 written to the file @file{.idlwave/idlusercat.el} in your home | |
714 directory and will from now on automatically load whenever you use | |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
715 IDLWAVE. You may find it necessary to rebuild the catalog on occasion |
88155 | 716 as your local libraries change, or build a library catalog for those |
717 directories instead. Invoke routine info (@kbd{C-c ?}) or completion | |
718 (@kbd{M-@key{TAB}}) on any routine or partial routine name you know to | |
719 be located in the library. E.g., if you have scanned the IDL-Astro | |
720 library: | |
34432
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
721 |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
722 @example |
88155 | 723 a=readf@key{M-@key{TAB}} |
34432
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
724 @end example |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
725 |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
726 expands to `readfits('. Then try |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
727 |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
728 @example |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
729 a=readfits(@key{C-c ?} |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
730 @end example |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
731 |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
732 and you get: |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
733 |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
734 @example |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
735 Usage: Result = READFITS(filename, header, heap) |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
736 ... |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
737 @end example |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
738 |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
739 I hope you made it until here. Now you are set to work with IDLWAVE. |
88155 | 740 On the way you will want to change other things, and to learn more |
741 about the possibilities not discussed in this short tutorial. Read | |
742 the manual, look at the documentation strings of interesting variables | |
743 (with @kbd{C-h v idlwave<-variable-name> @key{RET}}) and ask the | |
744 remaining questions on the newsgroup @code{comp.lang.idl-pvwave}. | |
34432
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
745 |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
746 @node The IDLWAVE Major Mode, The IDLWAVE Shell, Getting Started, Top |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
747 @chapter The IDLWAVE Major Mode |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
748 @cindex IDLWAVE major mode |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
749 @cindex Major mode, @code{idlwave-mode} |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
750 |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
751 The IDLWAVE major mode supports editing IDL source files. In this |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
752 chapter we describe the main features of the mode and how to customize |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
753 them. |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
754 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
755 @menu |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
756 * Code Formatting:: Making code look nice |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
757 * Routine Info:: Calling Sequence and Keyword List |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
758 * Online Help:: One key press from source to help |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
759 * Completion:: Completing routine names and Keywords |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
760 * Routine Source:: Finding routines, the easy way |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
761 * Resolving Routines:: Force the Shell to compile a routine |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
762 * Code Templates:: Frequent code constructs |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
763 * Abbreviations:: Abbreviations for common commands |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
764 * Actions:: Changing case, Padding, End checking |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
765 * Doc Header:: Inserting a standard header |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
766 * 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
|
767 * 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
|
768 @end menu |
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 @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
|
771 @section Code Formatting |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
772 @cindex Code formatting |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
773 @cindex Formatting, of code |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
774 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
775 @menu |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
776 * Code Indentation:: Reflecting the logical structure |
88155 | 777 * Continued Statement Indentation:: |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
778 * 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
|
779 * Continuation Lines:: Splitting statements over lines |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
780 * Syntax Highlighting:: Font-lock support |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
781 * Octals and Highlighting:: Why "123 causes problems |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
782 @end menu |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
783 |
88155 | 784 The IDL language, with its early roots in FORTRAN, modern |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
785 implementation in C, and liberal borrowing of features of many vector |
88155 | 786 and other languages along its 25+ year history, has inherited an |
787 unusual mix of syntax elements. Left to his or her own devices, a | |
788 novice IDL programmer will often conjure code which is very difficult | |
789 to read and impossible to adapt. Much can be gleaned from studying | |
790 available IDL code libraries for coding style pointers, but, due to | |
791 the variety of IDL syntax elements, replicating this style can be | |
792 challenging at best. Luckily, IDLWAVE understands the structure of | |
793 IDL code very well, and takes care of almost all formatting issues for | |
794 you. After configuring it to match your coding standards, you can | |
795 rely on it to help keep your code neat and organized. | |
796 | |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
797 |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
798 @node Code Indentation, Continued Statement Indentation, Code Formatting, Code Formatting |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
799 @subsection Code Indentation |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
800 @cindex Code indentation |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
801 @cindex Indentation |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
802 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
803 Like all Emacs programming modes, IDLWAVE performs code indentation. |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
804 The @key{TAB} key indents the current line relative to context. |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
805 @key{LFD} insert a newline and indents the new line. The indentation is |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
806 governed by a number of variables. IDLWAVE indents blocks (between |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
807 @code{PRO}/@code{FUNCTION}/@code{BEGIN} and @code{END}), and |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
808 continuation lines. |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
809 |
88155 | 810 @cindex Foreign code, adapting |
811 @cindex Indentation, of foreign code | |
812 @kindex C-M-\ | |
813 To re-indent a larger portion of code (e.g. when working with foreign code | |
814 written with different conventions), use @kbd{C-M-\} | |
815 (@code{indent-region}) after marking the relevant code. Useful marking | |
816 commands are @kbd{C-x h} (the entire file) or @kbd{C-M-h} (the | |
817 current subprogram). @xref{Actions}, for information how to impose | |
818 additional formatting conventions on foreign code. | |
819 | |
820 @defopt idlwave-main-block-indent (@code{0}) | |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
821 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
|
822 the FUNCTION/PRO statement and the END statement for that program |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
823 unit. |
26960
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 |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
826 @defopt idlwave-block-indent (@code{4}) |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
827 Extra indentation applied to block lines. If you change this, you |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
828 probably also want to change @code{idlwave-end-offset}. |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
829 @end defopt |
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 @defopt idlwave-end-offset (@code{-4}) |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
832 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
|
833 @code{idlwave-block-indent} will make END lines line up with the block |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
834 BEGIN lines. |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
835 @end defopt |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
836 |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
837 @node Continued Statement Indentation, Comment Indentation, Code Indentation, Code Formatting |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
838 @subsection Continued Statement Indentation |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
839 @cindex Indentation, continued statement |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
840 @cindex Continued statement indentation |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
841 Continuation lines (following a line ending with @code{$}) can receive a |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
842 fixed indentation offset from the main level, but in several situations |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
843 IDLWAVE can use a special form of indentation which aligns continued |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
844 statements more naturally. Special indentation is calculated for |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
845 continued routine definition statements and calls, enclosing parentheses |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
846 (like function calls, structure/class definitions, explicit structures |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
847 or lists, etc.), and continued assignments. An attempt is made to line |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
848 up with the first non-whitespace character after the relevant opening |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
849 punctuation mark (@code{,},@code{(},@code{@{},@code{[},@code{=}). For |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
850 lines without any non-comment characters on the line with the opening |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
851 punctuation, the continued line(s) are aligned just past the |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
852 punctuation. An example: |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
853 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
854 @example |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
855 function foo, a, b, $ |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
856 c, d |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
857 bar = sin( a + b + $ |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
858 c + d) |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
859 end |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
860 @end example |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
861 @noindent |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
862 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
863 The only drawback to this special continued statement indentation is |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
864 that it consumes more space, e.g., for long function names or left hand |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
865 sides of an assignment: |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
866 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
867 @example |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
868 function thisfunctionnameisverylongsoitwillleavelittleroom, a, b, $ |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
869 c, d |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
870 @end example |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
871 |
47440
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
872 You can instruct IDLWAVE when to avoid using this special continuation |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
873 indentation by setting the variable |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
874 @code{idlwave-max-extra-continuation-indent}, which specifies the |
47440
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
875 maximum additional indentation beyond the basic indent to be |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
876 tolerated, otherwise defaulting to a fixed-offset from the enclosing |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
877 indent (the size of which offset is set in |
88155 | 878 @code{idlwave-continuation-indent}). As a special case, continuations |
879 of routine calls without any arguments or keywords will @emph{not} | |
880 align the continued line, under the assumption that you continued | |
881 because you needed the space. | |
882 | |
883 Also, since the indentation level can be somewhat dynamic in continued | |
884 statements with special continuation indentation, especially if | |
47440
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
885 @code{idlwave-max-extra-continuation-indent} is small, the key |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
886 @kbd{C-u @key{TAB}} will re-indent all lines in the current statement. |
88155 | 887 Note that @code{idlwave-indent-to-open-paren}, if non-@code{nil}, overrides |
47440
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
888 the @code{idlwave-max-extra-continuation-indent} limit, for |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
889 parentheses only, forcing them always to line up. |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
890 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
891 |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
892 @defopt idlwave-continuation-indent (@code{2}) |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
893 Extra indentation applied to normal continuation lines. |
26960
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 |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
896 @defopt idlwave-max-extra-continuation-indent (@code{20}) |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
897 The maximum additional indentation (over the basic continuation-indent) |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
898 that will be permitted for special continues. To effectively disable |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
899 special continuation indentation, set to @code{0}. To enable it |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
900 constantly, set to a large number (like @code{100}). Note that the |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
901 indentation in a long continued statement never decreases from line to |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
902 line, outside of nested parentheses statements. |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
903 @end defopt |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
904 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
905 @defopt idlwave-indent-to-open-paren (@code{t}) |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
906 Non-@code{nil} means indent continuation lines to innermost open |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
907 parenthesis, regardless of whether the |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
908 @code{idlwave-max-extra-continuation-indent} limit is satisfied. |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
909 @end defopt |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
910 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
911 @node Comment Indentation, Continuation Lines, Continued Statement Indentation, Code Formatting |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
912 @subsection Comment Indentation |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
913 @cindex Comment indentation |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
914 @cindex Hanging paragraphs |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
915 @cindex Paragraphs, filling |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
916 @cindex Paragraphs, hanging |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
917 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
918 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
|
919 Comment lines are indented as follows: |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
920 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
921 @multitable @columnfractions .1 .90 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
922 @item @code{;;;} |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
923 @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
|
924 unchanged. |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
925 @item @code{;;} |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
926 @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
|
927 @item @code{;} |
47440
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
928 @tab Lines starting with a single semicolon are indented to a minimum column. |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
929 @end multitable |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
930 |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
931 @noindent |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
932 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
|
933 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
934 @defopt idlwave-no-change-comment |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
935 The indentation of a comment starting with this regexp will not be |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
936 changed. |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
937 @end defopt |
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 @defopt idlwave-begin-line-comment |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
940 A comment anchored at the beginning of line. |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
941 @end defopt |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
942 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
943 @defopt idlwave-code-comment |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
944 A comment that starts with this regexp is indented as if it is a part of |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
945 IDL code. |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
946 @end defopt |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
947 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
948 @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
|
949 @subsection Continuation Lines and Filling |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
950 @cindex Continuation lines |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
951 @cindex Line splitting |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
952 @cindex String splitting |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
953 @cindex Splitting, of lines |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
954 |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
955 @kindex M-@key{RET} |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
956 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
|
957 @samp{$}. If you would like to start a continuation line, use |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
958 @kbd{M-@key{RET}}, which calls the command @code{idlwave-split-line}. |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
959 It inserts the continuation character @samp{$}, terminates the line and |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
960 indents the new line. The command @kbd{M-@key{RET}} can also be invoked |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
961 inside a string to split it at that point, in which case the @samp{+} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
962 concatenation operator is used. |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
963 |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
964 @cindex Filling |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
965 @cindex @code{auto-fill-mode} |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
966 @cindex Hanging paragraphs |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
967 When filling comment paragraphs, IDLWAVE overloads the normal filling |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
968 functions and uses a function which creates the hanging paragraphs |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
969 customary in IDL routine headers. When @code{auto-fill-mode} is turned |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
970 on (toggle with @kbd{C-c C-a}), comments will be auto-filled. If the |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
971 first line of a paragraph contains a match for |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
972 @code{idlwave-hang-indent-regexp} (a dash-space by default), subsequent |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
973 lines are positioned to line up after it, as in the following example. |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
974 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
975 @example |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
976 @group |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
977 ;================================= |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
978 ; x - an array containing |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
979 ; lots of interesting numbers. |
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 ; y - another variable where |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
982 ; a hanging paragraph is used |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
983 ; to describe it. |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
984 ;================================= |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
985 @end group |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
986 @end example |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
987 |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
988 @kindex M-q |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
989 You can also refill a comment at any time paragraph with @kbd{M-q}. |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
990 Comment delimiting lines as in the above example, consisting of one or |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
991 more @samp{;} followed by one or more of the characters @samp{+=-_*}, |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
992 are kept in place, as is. |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
993 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
994 @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
|
995 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
|
996 @end defopt |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
997 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
998 @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
|
999 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
|
1000 operator. |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1001 @end defopt |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1002 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1003 @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
|
1004 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
|
1005 @samp{+}. |
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 |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1008 @defopt idlwave-hanging-indent (@code{t}) |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1009 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
|
1010 indent given by @code{idlwave-hang-indent-regexp} match in the first |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1011 line of the paragraph. |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1012 @end defopt |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1013 |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1014 @defopt idlwave-hang-indent-regexp (@code{"- "}) |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1015 Regular expression matching the position of the hanging indent |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1016 in the first line of a comment paragraph. |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1017 @end defopt |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1018 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1019 @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
|
1020 Non-@code{nil} means use last match on line for |
88155 | 1021 @code{idlwave-indent-regexp}. |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1022 @end defopt |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1023 |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1024 @node Syntax Highlighting, Octals and Highlighting, Continuation Lines, Code Formatting |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1025 @subsection Syntax Highlighting |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1026 @cindex Syntax highlighting |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1027 @cindex Highlighting of syntax |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1028 @cindex Font lock |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1029 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1030 Highlighting of keywords, comments, strings etc. can be accomplished |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1031 with @code{font-lock}. If you are using @code{global-font-lock-mode} |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1032 (in Emacs), or have @code{font-lock} turned on in any other buffer in |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1033 XEmacs, it should also automatically work in IDLWAVE buffers. If you'd |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1034 prefer invoking font-lock individually by mode, you can enforce it in |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1035 @code{idlwave-mode} with the following line in your @file{.emacs}: |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1036 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1037 @lisp |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1038 (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
|
1039 @end lisp |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1040 |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1041 @noindent IDLWAVE supports 3 increasing levels of syntax highlighting. |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1042 The variable @code{font-lock-maximum-decoration} determines which level |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1043 is selected. Individual categories of special tokens can be selected |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1044 for highlighting using the variable |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1045 @code{idlwave-default-font-lock-items}. |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1046 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1047 @defopt idlwave-default-font-lock-items |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1048 Items which should be fontified on the default fontification level |
88155 | 1049 2. |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1050 @end defopt |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1051 |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1052 @node Octals and Highlighting, , Syntax Highlighting, Code Formatting |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1053 @subsection Octals and Highlighting |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1054 @cindex Syntax highlighting, Octals |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1055 @cindex Highlighting of syntax, Octals |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1056 |
88155 | 1057 A rare syntax highlighting problem results from an extremely unfortunate |
1058 notation for octal numbers in IDL: @code{"123}. This unpaired quotation | |
1059 mark is very difficult to parse, given that it can be mixed on a single | |
1060 line with any number of strings. Emacs will incorrectly identify this | |
1061 as a string, and the highlighting of following lines of code can be | |
1062 distorted, since the string is never terminated. | |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1063 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1064 One solution to this involves terminating the mistakenly identified |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1065 string yourself by providing a closing quotation mark in a comment: |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1066 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1067 @example |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1068 string("305B) + $ ;" <--- for font-lock |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1069 ' is an Angstrom.' |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1070 @end example |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1071 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1072 @noindent A far better solution is to abandon this notation for octals |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1073 altogether, and use the more sensible alternative IDL provides: |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1074 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1075 @example |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1076 string('305'OB) + ' is an Angstrom.' |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1077 @end example |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1078 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1079 @noindent This simultaneously solves the font-lock problem and is more |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1080 consistent with the notation for hexadecimal numbers, e.g. @code{'C5'XB}. |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1081 |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1082 @node Routine Info, Online Help, Code Formatting, The IDLWAVE Major Mode |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1083 @section Routine Info |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1084 @cindex Routine info |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1085 @cindex Updating routine info |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1086 @cindex Scanning buffers for routine info |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1087 @cindex Buffers, scanning for routine info |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1088 @cindex Shell, querying for routine info |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1089 |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1090 @kindex C-c C-i |
47440
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1091 IDL comes bundled with more than one thousand procedures, functions |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1092 and object methods, and large libraries typically contain hundreds or |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1093 even thousands more (each with a few to tens of keywords and |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1094 arguments). This large command set can make it difficult to remember |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1095 the calling sequence and keywords for the routines you use, but |
88155 | 1096 IDLWAVE can help. It builds up routine information from a wide |
1097 variety of sources; IDLWAVE in fact knows far more about the | |
1098 @samp{.pro} routines on your system than IDL itself! It maintains a | |
1099 list of all built-in routines, with calling sequences and | |
1100 keywords@footnote{This list is created by scanning the IDL manuals and | |
1101 might contain (very few) errors. Please report any errors to the | |
1102 maintainer, so that they can be fixed.}. It also scans Emacs buffers | |
1103 for routine definitions, queries the IDLWAVE-Shell for information | |
1104 about routines currently compiled there, and automatically locates | |
1105 library and user-created catalogs. This information is updated | |
47440
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1106 automatically, and so should usually be current. To force a global |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1107 update and refresh the routine information, use @kbd{C-c C-i} |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1108 (@code{idlwave-update-routine-info}). |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1109 |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1110 @kindex C-c ? |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1111 To display the information about a routine, press @kbd{C-c ?}, which |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1112 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
|
1113 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
|
1114 function, information will be displayed about the routine. For example, |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1115 consider the indicated cursor positions in the following line: |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1116 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1117 @example |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1118 plot,x,alog(x+5*sin(x) + 2), |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1119 | | | | | | | | |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1120 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
|
1121 @end example |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1122 |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1123 @cindex Default routine, for info and help |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1124 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
|
1125 be shown. On positions 3,4, and 7, the @samp{alog} function will be |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1126 described, while positions 5 and 6 will investigate the @samp{sin} |
88155 | 1127 function. |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1128 |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1129 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
|
1130 method exists in several classes, IDLWAVE queries for the class of the |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1131 object, unless the class is already known through a text property on the |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1132 @samp{->} operator (@pxref{Object Method Completion and Class |
88155 | 1133 Ambiguity}), or by having been explicity included in the call |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1134 (e.g. @code{a->myclass::Foo}). |
26960
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 @cindex Calling sequences |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1137 @cindex Keywords of a routine |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1138 @cindex Routine source information |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1139 The description displayed contains the calling sequence, the list of |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1140 keywords and the source location of this routine. It looks like this: |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1141 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1142 @example |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1143 Usage: XMANAGER, NAME, ID |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1144 Keywords: BACKGROUND CATCH CLEANUP EVENT_HANDLER GROUP_LEADER |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1145 JUST_REG MODAL NO_BLOCK |
88155 | 1146 Source: SystemLib [LCSB] /soft1/idl53/lib/xmanager.pro |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1147 @end example |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1148 |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1149 @cindex Categories, of routines |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1150 @cindex Load-path shadows |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1151 @cindex Shadows, load-path |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1152 @cindex IDL variable @code{!PATH} |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1153 @cindex @code{!PATH}, IDL variable |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1154 @cindex IDL variable @code{!DIR} |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1155 @cindex @code{!DIR}, IDL variable |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1156 |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1157 If a definition of this routine exists in several files accessible to |
88155 | 1158 IDLWAVE, several @samp{Source} lines will point to the different |
1159 files. This may indicate that your routine is shadowing a system | |
1160 library routine, which may or may not be what you want | |
1161 (@pxref{Load-Path Shadows}). The information about the calling | |
1162 sequence and keywords is derived from the first source listed. | |
1163 Library routines are available only if you have scanned your local IDL | |
1164 directories or are using pre-scanned libraries (@pxref{Catalogs}). | |
1165 The source entry consists of a @emph{source category}, a set of | |
1166 @emph{flags} and the path to the @emph{source file}. The following | |
1167 default categories exist: | |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1168 |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1169 @multitable @columnfractions .15 .85 |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1170 @item @i{System} |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1171 @tab A system routine of unknown origin. When the system library has |
88155 | 1172 been scanned as part of a catalog (@pxref{Catalogs}), this category |
1173 will automatically split into the next two. | |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1174 @item @i{Builtin} |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1175 @tab A builtin system routine with no source code available. |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1176 @item @i{SystemLib} |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1177 @tab A library system routine in the official lib directory @file{!DIR/lib}. |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1178 @item @i{Obsolete} |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1179 @tab A library routine in the official lib directory @file{!DIR/lib/obsolete}. |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1180 @item @i{Library} |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1181 @tab A routine in a file on IDL's search path @code{!PATH}. |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1182 @item @i{Other} |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1183 @tab Any other routine with a file not known to be on the search path. |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1184 @item @i{Unresolved} |
88155 | 1185 @tab An otherwise unkown routine the shell lists as unresolved |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1186 (referenced, but not compiled). |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1187 @end multitable |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1188 |
88155 | 1189 Any routines discovered in library catalogs (@pxref{Library |
1190 Catalogs}), will display the category assigned during creation, | |
1191 e.g. @samp{NasaLib}. For routines not discovered in this way, you can | |
1192 create additional categories based on the routine's filename using the | |
1193 variable @code{idlwave-special-lib-alist}. | |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1194 |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1195 @cindex Flags, in routine info |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1196 @cindex Duplicate routines |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1197 @cindex Multiply defined routines |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1198 @cindex Routine definitions, multiple |
88155 | 1199 The flags @code{[LCSB]} indicate the source of the information IDLWAVE |
1200 has regarding the file: from a library catalog (@w{@code{[L---]}}), | |
1201 from a user catalog (@w{@code{[-C--]}}, from the IDL Shell | |
1202 (@w{@code{[--S-]}}) or from an Emacs buffer (@w{@code{[---B]}}). | |
1203 Combinations are possible (a compiled library routine visited in a | |
1204 buffer might read @w{@code{[L-SB]}}). If a file contains multiple | |
1205 definitions of the same routine, the file name will be prefixed with | |
1206 @samp{(Nx)} where @samp{N} is the number of definitions. | |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1207 |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1208 @cindex Online Help from the routine info buffer |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1209 @cindex Active text, in routine info |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1210 @cindex Inserting keywords, from routine info |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1211 @cindex Source file, access from routine info |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1212 Some of the text in the @file{*Help*} routine info buffer will be active |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1213 (it is highlighted when the mouse moves over it). Typically, clicking |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1214 with the right mouse button invokes online help lookup, and clicking |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1215 with the middle mouse button inserts keywords or visits files: |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1216 |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1217 @multitable @columnfractions 0.15 0.85 |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1218 @item @i{Usage} |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1219 @tab If online help is installed, a click with the @emph{right} mouse |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1220 button on the @i{Usage:} line will access the help for the |
88155 | 1221 routine (@pxref{Online Help}). |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1222 @item @i{Keyword} |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1223 @tab Online help about keywords is also available with the |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1224 @emph{right} mouse button. Clicking on a keyword with the @emph{middle} |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1225 mouse button will insert this keyword in the buffer from where |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1226 @code{idlwave-routine-info} was called. Holding down @key{SHIFT} while |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1227 clicking also adds the initial @samp{/}. |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1228 @item @i{Source} |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1229 @tab Clicking with the @emph{middle} mouse button on a @samp{Source} line |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1230 finds the source file of the routine and visits it in another window. |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1231 Another click on the same line switches back to the buffer from which |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1232 @kbd{C-c ?} was called. If you use the @emph{right} mouse button, the |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1233 source will not be visited by a buffer, but displayed in the online help |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1234 window. |
34432
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
1235 @item @i{Classes} |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
1236 @tab The @i{Classes} line is only included in the routine info window if |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
1237 the current class inherits from other classes. You can click with the |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
1238 @emph{middle} mouse button to display routine info about the current |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1239 method in other classes on the inheritance chain, if such a method |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1240 exists there. |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1241 @end multitable |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1242 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1243 @defopt idlwave-resize-routine-help-window (@code{t}) |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1244 Non-@code{nil} means resize the Routine-info @file{*Help*} window to |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1245 fit the content. |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1246 @end defopt |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1247 |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1248 @defopt idlwave-special-lib-alist |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1249 Alist of regular expressions matching special library directories. |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1250 @end defopt |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1251 |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1252 @defopt idlwave-rinfo-max-source-lines (@code{5}) |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1253 Maximum number of source files displayed in the Routine Info window. |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1254 @end defopt |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1255 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1256 |
88155 | 1257 @ifhtml |
1258 <A NAME="ONLINE_HELP"></A> | |
1259 @end ifhtml | |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1260 @node Online Help, Completion, Routine Info, The IDLWAVE Major Mode |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1261 @section Online Help |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1262 |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1263 @cindex Online Help |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1264 @cindex @file{idlw-help.txt} |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1265 @cindex @file{idlw-help.el} |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1266 @cindex Installing online help |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1267 @cindex Online Help, Installation |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1268 @cindex Speed, of online help |
88155 | 1269 |
1270 IDLWAVE can display help from an HTML version of the IDL documentation | |
1271 if it is available. This is @emph{much} faster than using the IDL | |
1272 online help application, because IDLWAVE usually gets you to the right | |
1273 place in the documentation directly --- e.g. a specific keyword of a | |
1274 routine --- without any additional browsing and scrolling. There are | |
1275 a variety of options for displaying the HTML help: see below. Help | |
1276 for routines without HTML documentation is also available, using the | |
1277 routine documentation header and/or source. | |
1278 | |
1279 To make this feature work, you should set | |
1280 @code{idlwave-html-help-location} to the directory name of the | |
1281 directory where the IDL help files are installed. | |
47440
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1282 |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1283 @kindex M-? |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1284 In any IDL program (or, as with most IDLWAVE commands, in the IDL |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1285 Shell), press @kbd{M-?} (@code{idlwave-context-help}), or click with |
46534
9059071c4fa9
Updated with patches from 1.8-1.17
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46530
diff
changeset
|
1286 @kbd{S-Mouse-3} to access context sensitive online help. The following |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1287 locations are recognized context for help: |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1288 |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1289 @cindex Context, for online help |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1290 @multitable @columnfractions .25 .75 |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1291 @item @i{Routine name} |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1292 @tab The name of a routine (function, procedure, method). |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1293 @item @i{Keyword Parameter} |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1294 @tab A keyword parameter of a routine. |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1295 @item @i{System Variable} |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1296 @tab System variables like @code{!DPI}. |
88155 | 1297 @item @i{System Variable Tags} |
1298 @tab System variables tags like @code{!D.X_SIZE}. | |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1299 @item @i{IDL Statement} |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1300 @tab Statements like @code{PRO}, @code{REPEAT}, @code{COMPILE_OPT}, etc. |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1301 @item @i{Class name} |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1302 @tab A class name in an @code{OBJ_NEW} call. |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1303 @item @i{Class Init} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1304 @tab Beyond the class name in an @code{OBJ_NEW} call. |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1305 @item @i{Executive Command} |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1306 @tab An executive command like @code{.RUN}. Mostly useful in the shell. |
47440
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1307 @item @i{Structure Tags} |
88155 | 1308 @tab Structure tags like @code{state.xsize} |
1309 @item @i{Class Tags} | |
1310 @tab Class tags like @code{self.value}. | |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1311 @item @i{Default} |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1312 @tab The routine that would be selected for routine info display. |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1313 @end multitable |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1314 |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1315 @cindex @code{OBJ_NEW}, special online help |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1316 Note that the @code{OBJ_NEW} function is special in that the help |
88155 | 1317 displayed depends on the cursor position. If the cursor is on the |
1318 @samp{OBJ_NEW}, this function is described. If it is on the class | |
1319 name inside the quotes, the documentation for the class is pulled up. | |
1320 If the cursor is @emph{after} the class name, anywhere in the argument | |
1321 list, the documentation for the corresponding @code{Init} method and | |
1322 its keywords is targeted. | |
1323 | |
1324 Apart from an IDLWAVE buffer or shell, there are two more places from | |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1325 which online help can be accessed. |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1326 |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1327 @itemize @bullet |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1328 @item |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1329 Online help for routines and keywords can be accessed through the |
46534
9059071c4fa9
Updated with patches from 1.8-1.17
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46530
diff
changeset
|
1330 Routine Info display. Click with @kbd{Mouse-3} on an item to see the |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1331 corresponding help (@pxref{Routine Info}). |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1332 @item |
47440
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1333 When using completion and Emacs pops up a @file{*Completions*} buffer |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1334 with possible completions, clicking with @kbd{Mouse-3} on a completion |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1335 item invokes help on that item (@pxref{Completion}). Items for which |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1336 help is available in the online system documentation (vs. just the |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1337 program source itself) will be emphasized (e.g. colored blue). |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1338 @end itemize |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1339 @noindent |
88155 | 1340 In both cases, a blue face indicates that the item is documented in |
1341 the IDL manual, but an attempt will be made to visit non-blue items | |
1342 directly in the originating source file. | |
1343 | |
1344 | |
1345 @menu | |
1346 * Help with HTML Documentation:: | |
1347 * Help with Source:: | |
1348 @end menu | |
1349 | |
1350 @node Help with HTML Documentation, Help with Source, Online Help, Online Help | |
1351 @subsection Help with HTML Documentation | |
1352 @cindex HTML Help | |
1353 @cindex Help using HTML manuals | |
1354 @cindex IDL manual, HTML version | |
1355 | |
1356 Help using the HTML documentation is invoked with the built-in Emacs | |
1357 command @code{browse-url}, which displays the relevant help topic in a | |
1358 browser of your choosing. There are many possible browsers to choose | |
1359 among, with differing advantages and disadvantages. The variable | |
1360 @code{idlwave-help-browser-function} controls which browser help is | |
1361 sent to. This function is used to set the variable | |
1362 @code{browse-url-browser-function} locally for IDLWAVE help only. | |
1363 Customize this variable to see what choices of browsers your system | |
1364 offers. | |
1365 | |
1366 Certain browsers like @code{w3} and @code{w3m} | |
1367 (@uref{http://emacs-w3m.namazu.org/}, the author's help browser of | |
1368 choice) are run within Emacs, and use Emacs buffers to display the | |
1369 HTML help. This can be convenient, especially on small displays, and | |
1370 images can even be displayed in-line on new Emacs versions. However, | |
1371 better formatting results are often achieved with external browsers, | |
1372 like Mozilla. IDLWAVE assumes any browser function containing "w3" is | |
1373 displayed in a local buffer. If you are using another Emacs-local | |
1374 browser for which this is not true, set the variable | |
1375 @code{idlwave-help-browser-is-local}. | |
1376 | |
1377 @emph{N.B. For Windows users}: IDLWAVE can bring up help directly | |
1378 from the Microsoft HTMLHelp documentation supplied with IDL: no | |
1379 additional help files are needed. Be sure to set | |
1380 @code{idlwave-system-directory} and the help file will be found | |
1381 automatically (or, alternatively, specify its location directly with | |
1382 @code{idlwave-html-help-location}). The variable | |
1383 @code{idlwave-help-use-hh} controls whether HTMLHelp is used, and | |
1384 which application is called to invoke it (@code{HH} is the default). | |
1385 The free helper application @code{KEYHH} | |
1386 (@uref{http://www.keyworks.net/keyhh.htm}) can be used instead, and is | |
1387 preferrable, as it permits loading new help topics into the same help | |
1388 window. @code{KEYHH} must be downloaded and installed separately. | |
1389 | |
1390 @xref{HTML Help Browser Tips}, for more information on selecting and | |
1391 configuring a browser for use with IDL's HTML help system. | |
1392 | |
1393 @defopt idlwave-html-help-location @file{/usr/local/etc} | |
1394 The directory where the @file{idl_html_help} dir or @file{idl.chm} | |
1395 HTMLHelp files live. | |
1396 @end defopt | |
1397 | |
1398 @defopt idlwave-help-use-hh @code{nil} | |
1399 If set to @code{'hh} or @code{'keyhh}, use Windows native HTMLHelp | |
1400 with the specified help application. | |
1401 @end defopt | |
1402 | |
1403 @defopt idlwave-help-browser-function | |
1404 The browser function to use to display IDLWAVE HTML help. Should be | |
1405 one of the functions available for setting | |
1406 @code{browse-url-browser-function}, which see. | |
1407 @end defopt | |
1408 | |
1409 @defopt idlwave-help-browser-is-local | |
1410 Is the browser selected in @code{idlwave-help-browser-function} run in a | |
1411 local Emacs buffer? Defaults to @code{t} if the function contains | |
1412 "-w3". | |
1413 @end defopt | |
1414 | |
1415 @defopt idlwave-help-link-face | |
1416 The face for links to IDLWAVE online help. | |
1417 @end defopt | |
1418 | |
1419 @node Help with Source, , Help with HTML Documentation, Online Help | |
1420 @subsection Help with Source | |
1421 @cindex Help using routine source | |
1422 | |
1423 @cindex Source code, as online help | |
1424 @cindex DocLib header, as online help | |
1425 For routines which are not documented in an HTML manual (for example | |
1426 personal or library routines), the source code itself is used as help | |
1427 text. If the requested information can be found in a (more or less) | |
1428 standard DocLib file header, IDLWAVE shows the header (scrolling down to | |
1429 a keyword, if appropriate). Otherwise the routine definition statement | |
1430 (@code{pro}/@code{function}) is shown. The doclib header sections which | |
1431 are searched for include @samp{NAME} and @samp{KEYWORDS}. Localization | |
1432 support can be added by customizing the @code{idlwave-help-doclib-name} | |
1433 and @code{idlwave-help-doclib-keyword} variables. | |
1434 | |
1435 @cindex Structure tags, in online help | |
1436 @cindex Class tags, in online help | |
1437 Help is also available for class structure tags (@code{self.TAG}), and | |
1438 generic structure tags, if structure tag completion is enabled | |
1439 (@pxref{Structure Tag Completion}). This is implemented by visiting the | |
1440 tag within the class or structure definition source itself. Help is not | |
1441 available on built-in system class tags. | |
1442 | |
1443 The help window is normally displayed in the same frame, but can be | |
1444 popped-up in a separate frame. The following commands can be used to | |
1445 navigate inside the help system for source files: | |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1446 |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1447 @multitable @columnfractions .15 .85 |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1448 @item @kbd{@key{SPACE}} |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1449 @tab Scroll forward one page. |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1450 @item @kbd{@key{RET}} |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1451 @tab Scroll forward one line. |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1452 @item @kbd{@key{DEL}} |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1453 @tab Scroll back one page. |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1454 @item @kbd{h} |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1455 @tab Jump to DocLib Header of the routine whose source is displayed |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1456 as help. |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1457 @item @kbd{H} |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1458 @tab Jump to the first DocLib Header in the file. |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1459 @item @kbd{.} @r{(Dot)} |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1460 @tab Jump back and forth between the routine definition (the |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1461 @code{pro}/@code{function} statement) and the description of the help |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1462 item in the DocLib header. |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1463 @item @kbd{F} |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1464 @tab Fontify the buffer like source code. See the variable @code{idlwave-help-fontify-source-code}. |
88155 | 1465 @item @kbd{q} |
1466 @tab Kill the help window. | |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1467 @end multitable |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1468 |
88155 | 1469 |
1470 @defopt idlwave-help-use-dedicated-frame (@code{nil}) | |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1471 Non-@code{nil} means use a separate frame for Online Help if possible. |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1472 @end defopt |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1473 |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1474 @defopt idlwave-help-frame-parameters |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1475 The frame parameters for the special Online Help frame. |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1476 @end defopt |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1477 |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1478 @defopt idlwave-max-popup-menu-items (@code{20}) |
46534
9059071c4fa9
Updated with patches from 1.8-1.17
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46530
diff
changeset
|
1479 Maximum number of items per pane in pop-up menus. |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1480 @end defopt |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1481 |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1482 @defopt idlwave-extra-help-function |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1483 Function to call for help if the normal help fails. |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1484 @end defopt |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1485 |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1486 @defopt idlwave-help-fontify-source-code (@code{nil}) |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1487 Non-@code{nil} means fontify source code displayed as help. |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1488 @end defopt |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1489 |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1490 @defopt idlwave-help-source-try-header (@code{t}) |
88155 | 1491 Non-@code{nil} means try to find help in routine header when |
1492 displaying source file. | |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1493 @end defopt |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1494 |
88155 | 1495 @defopt idlwave-help-doclib-name (@code{"name"}) |
1496 The case-insensitive heading word in doclib headers to locate the | |
1497 @emph{name} section. Can be a regexp, e.g. @code{"\\(name\\|nom\\)"}. | |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1498 @end defopt |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1499 |
88155 | 1500 @defopt idlwave-help-doclib-keyword (@code{"KEYWORD"}) |
1501 The case-insensitive heading word in doclib headers to locate the | |
1502 @emph{keywords} section. Can be a regexp. | |
34432
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
1503 @end defopt |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
1504 |
88155 | 1505 |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1506 @node Completion, Routine Source, Online Help, The IDLWAVE Major Mode |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1507 @section Completion |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1508 @cindex Completion |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1509 @cindex Keyword completion |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1510 @cindex Method completion |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1511 @cindex Object method completion |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1512 @cindex Class name completion |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1513 @cindex Function name completion |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1514 @cindex Procedure name completion |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1515 |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1516 @kindex M-@key{TAB} |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1517 @kindex C-c C-i |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1518 IDLWAVE offers completion for class names, routine names, keywords, |
88155 | 1519 system variables, system variable tags, class structure tags, regular |
1520 structure tags and file names. As in many programming modes, | |
1521 completion is bound to @kbd{M-@key{TAB}} (or @kbd{@key{TAB}} in the | |
1522 IDLWAVE Shell --- @pxref{Using the Shell}). Completion uses exactly | |
1523 the same internal information as routine info, so when necessary | |
1524 (rarely) it can be updated with @kbd{C-c C-i} | |
1525 (@code{idlwave-update-routine-info}). | |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1526 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1527 The completion function is context sensitive and figures out what to |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1528 complete based location of the point. Here are example lines and what |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1529 @kbd{M-@key{TAB}} would try to complete when the cursor is on the |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1530 position marked with a @samp{_}: |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1531 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1532 @example |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1533 plo_ @r{Procedure} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1534 x = a_ @r{Function} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1535 plot,xra_ @r{Keyword of @code{plot} procedure} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1536 plot,x,y,/x_ @r{Keyword of @code{plot} procedure} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1537 plot,min(_ @r{Keyword of @code{min} function} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1538 obj -> a_ @r{Object method (procedure)} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1539 a(2,3) = obj -> a_ @r{Object method (function)} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1540 x = obj_new('IDL_ @r{Class name} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1541 x = obj_new('MyCl',a_ @r{Keyword to @code{Init} method in class @code{MyCl}} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1542 pro A_ @r{Class name} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1543 pro _ @r{Fill in @code{Class::} of first method in this file} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1544 !v_ @r{System variable} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1545 !version.t_ @r{Structure tag of system variable} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1546 self.g_ @r{Class structure tag in methods} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1547 state.w_ @r{Structure tag, if tag completion enabled} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1548 name = 'a_ @r{File name (default inside quotes)} |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1549 @end example |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1550 |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1551 @cindex Completion, ambiguity |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1552 @cindex Completion, forcing function name |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1553 The only place where completion is ambiguous is procedure/function |
47440
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1554 @emph{keywords} versus @emph{functions}. After @samp{plot,x,_}, IDLWAVE |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1555 will always assume a keyword to @samp{plot}. However, a function is |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1556 also a possible completion here. You can force completion of a function |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1557 name at such a location by using a prefix arg: @kbd{C-u M-@key{TAB}}. |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1558 |
88155 | 1559 Giving two prefix arguments (@kbd{C-u C-u M-@key{TAB}}) prompts for a |
1560 regular expression to search among the commands to be completed. As | |
1561 an example, completing a blank line in this way will allow you to | |
1562 search for a procedure matching a regexp. | |
1563 | |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1564 @cindex Scrolling the @file{*Completions*} window |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1565 @cindex Completion, scrolling |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1566 @cindex Completion, Online Help |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1567 @cindex Online Help in @file{*Completions*} buffer |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1568 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
|
1569 @file{*Completions*} window, the window can be scrolled by pressing |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1570 @kbd{M-@key{TAB}} repeatedly. Online help (if installed) for each |
46534
9059071c4fa9
Updated with patches from 1.8-1.17
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46530
diff
changeset
|
1571 possible completion is available by clicking with @kbd{Mouse-3} on the |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1572 item. Items for which system online help (from the IDL manual) is |
47440
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1573 available will be emphasized (e.g. colored blue). For other items, the |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1574 corresponding source code or DocLib header will be used as the help |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1575 text. |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1576 |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1577 @cindex Completion, cancelling |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1578 @cindex Cancelling completion |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1579 Completion is not a blocking operation --- you are free to continue |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1580 editing, enter commands, or simply ignore the @file{*Completions*} |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1581 buffer during a completion operation. If, however, the most recent |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1582 command was a completion, @kbd{C-g} will remove the buffer and restore |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1583 the window configuration. You can also remove the buffer at any time |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1584 with no negative consequences. |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1585 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1586 @defopt idlwave-keyword-completion-adds-equal (@code{t}) |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1587 Non-@code{nil} means completion automatically adds @samp{=} after |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1588 completed keywords. |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1589 @end defopt |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1590 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1591 @defopt idlwave-function-completion-adds-paren (@code{t}) |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1592 Non-@code{nil} means completion automatically adds @samp{(} after |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1593 completed function. A value of `2' means also add the closing |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1594 parenthesis and position the cursor between the two. |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1595 @end defopt |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1596 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1597 @defopt idlwave-completion-restore-window-configuration (@code{t}) |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1598 Non-@code{nil} means restore window configuration after successful |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1599 completion. |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1600 @end defopt |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1601 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1602 @defopt idlwave-highlight-help-links-in-completion (@code{t}) |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1603 Non-@code{nil} means highlight completions for which system help is |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1604 available. |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1605 @end defopt |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1606 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1607 @menu |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1608 * Case of Completed Words:: CaseOFcomPletedWords |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1609 * Object Method Completion and Class Ambiguity:: obj->Method, what? |
88155 | 1610 * Object Method Completion in the Shell:: |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1611 * Class and Keyword Inheritance:: obj->Method, _EXTRA=e |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1612 * Structure Tag Completion:: Completing state.Tag |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1613 @end menu |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1614 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1615 @node Case of Completed Words, Object Method Completion and Class Ambiguity, Completion, Completion |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1616 @subsection Case of Completed Words |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1617 @cindex Case of completed words |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1618 @cindex Mixed case completion |
88155 | 1619 IDL is a case-insensitive language, so casing is a matter of style |
1620 only. IDLWAVE helps maintain a consistent casing style for completed | |
1621 items. The case of the completed words is determined by what is | |
1622 already in the buffer. As an exception, when the partial word being | |
1623 completed is all lower case, the completion will be lower case as | |
1624 well. If at least one character is upper case, the string will be | |
1625 completed in upper case or mixed case, depending on the value of the | |
1626 variable @code{idlwave-completion-case}. The default is to use upper | |
1627 case for procedures, functions and keywords, and mixed case for object | |
1628 class names and methods, similar to the conventions in the IDL | |
1629 manuals. For instance, to enable mixed-case completion for routines | |
1630 in addition to classes and methods, you need an entry such as | |
1631 @code{(routine . preserve)} in that variable. To enable total control | |
1632 over the case of completed items, independent of buffer context, set | |
1633 @code{idlwave-completion-force-default-case} to non-@code{nil}. | |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1634 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1635 @defopt idlwave-completion-case |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1636 Association list setting the case (UPPER/lower/Capitalized/MixedCase...) |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1637 of completed words. |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1638 @end defopt |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1639 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1640 @defopt idlwave-completion-force-default-case (@code{nil}) |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1641 Non-@code{nil} means completion will always honor the settings in |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1642 @code{idlwave-completion-case}. When nil (the default), entirely lower |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1643 case strings will always be completed to lower case, no matter what the |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1644 settings in @code{idlwave-completion-case}. |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1645 @end defopt |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1646 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1647 @defopt idlwave-complete-empty-string-as-lower-case (@code{nil}) |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1648 Non-@code{nil} means the empty string is considered lower case for |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1649 completion. |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1650 @end defopt |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1651 |
47440
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1652 @node Object Method Completion and Class Ambiguity, Object Method Completion in the Shell, Case of Completed Words, Completion |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1653 @subsection Object Method Completion and Class Ambiguity |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1654 @cindex Object methods |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1655 @cindex Class ambiguity |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1656 @cindex @code{self} object, default class |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1657 An object method is not uniquely determined without the object's class. |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1658 Since the class is almost always omitted in the calling source, IDLWAVE |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1659 considers all available methods in all classes as possible method name |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1660 completions. The combined list of keywords of the current method in |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1661 @emph{all} known classes which contain that method will be considered |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1662 for keyword completion. In the @file{*Completions*} buffer, the |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1663 matching classes will be shown next to each item (see option |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1664 @code{idlwave-completion-show-classes}). As a special case, the class |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1665 of an object called @samp{self} is always taken to be the class of the |
34432
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
1666 current routine. All classes it inherits from are considered as well |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
1667 where appropriate. |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1668 |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1669 @cindex Forcing class query. |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1670 @cindex Class query, forcing |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1671 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
|
1672 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
|
1673 narrow down the number of possible completions. The variable |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1674 @code{idlwave-query-class} can be configured to make such prompting the |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1675 default for all methods (not recommended), or selectively for very |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1676 common methods for which the number of completing keywords would be too |
88155 | 1677 large (e.g. @code{Init}). |
47440
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1678 |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1679 @cindex Saving object class on @code{->} |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1680 @cindex @code{->} |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1681 After you have specified the class for a particular statement (e.g. when |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1682 completing the method), IDLWAVE can remember it for the rest of the |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1683 editing session. Subsequent completions in the same statement |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1684 (e.g. keywords) can then reuse this class information. This works by |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1685 placing a text property on the method invocation operator @samp{->}, |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1686 after which the operator will be shown in a different face. This is not |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1687 enabled by default --- the variable @code{idlwave-store-inquired-class} |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1688 can be used to turn it on. |
34432
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
1689 |
27600 | 1690 @defopt idlwave-completion-show-classes (@code{1}) |
88155 | 1691 Non-@code{nil} means show up to that many classes in |
1692 @file{*Completions*} buffer when completing object methods and | |
1693 keywords. | |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1694 @end defopt |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1695 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1696 @defopt idlwave-completion-fontify-classes (@code{t}) |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1697 Non-@code{nil} means fontify the classes in completions buffer. |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1698 @end defopt |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1699 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1700 @defopt idlwave-query-class (@code{nil}) |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1701 Association list governing query for object classes during completion. |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1702 @end defopt |
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 @defopt idlwave-store-inquired-class (@code{nil}) |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1705 Non-@code{nil} means store class of a method call as text property on |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1706 @samp{->}. |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1707 @end defopt |
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 @defopt idlwave-class-arrow-face |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1710 Face to highlight object operator arrows @samp{->} which carry a class |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1711 text property. |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1712 @end defopt |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1713 |
47440
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1714 @node Object Method Completion in the Shell, Class and Keyword Inheritance, Object Method Completion and Class Ambiguity, Completion |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1715 @subsection Object Method Completion in the Shell |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1716 @cindex Method Completion in Shell |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1717 In the IDLWAVE Shell (@pxref{The IDLWAVE Shell}), objects on which |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1718 methods are being invoked have a special property: they must exist as |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1719 variables, and so their class can be determined (for instance, using the |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1720 @code{obj_class()} function). In the Shell, when attempting completion, |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1721 routine info, or online help within a method routine, a query is sent to |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1722 determine the class of the object. If this query is successful, the |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1723 class found will be used to select appropriate completions, routine |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1724 info, or help. If unsuccessful, information from all known classes will |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1725 be used (as in the buffer). Setting the variable |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1726 @code{idlwave-store-inquired-class} can eliminate unnecessary repetitive |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1727 queries for the object's class, and speed up completion. |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1728 |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1729 @node Class and Keyword Inheritance, Structure Tag Completion, Object Method Completion in the Shell, Completion |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1730 @subsection Class and Keyword Inheritance |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1731 @cindex Inheritance, class |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1732 @cindex Keyword inheritance |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1733 @cindex Inheritance, keyword |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1734 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1735 Class inheritance affects which methods are called in IDL. An object of |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1736 a class which inherits methods from one or more superclasses can |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1737 override that method by defining its own method of the same name, extend |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1738 the method by calling the method(s) of its superclass(es) in its |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1739 version, or inherit the method directly by making no modifications. |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1740 IDLWAVE examines class definitions during completion and routine |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1741 information display, and records all inheritance information it finds. |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1742 This information is displayed if appropriate with the calling sequence |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1743 for methods (@pxref{Routine Info}), as long as variable |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1744 @code{idlwave-support-inheritance} is non-@code{nil}. |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1745 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1746 In many class methods, @emph{keyword} inheritance (@code{_EXTRA} and |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1747 @code{_REF_EXTRA}) is used hand-in-hand with class inheritance and |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1748 method overriding. E.g., in a @code{SetProperty} method, this technique |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1749 allows a single call @code{obj->SetProperty} to set properties up the |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1750 entire class inheritance chain. This is often referred to as |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1751 @emph{chaining}, and is characterized by chained method calls like |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1752 @w{@code{self->MySuperClass::SetProperty,_EXTRA=e}}. |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1753 |
88155 | 1754 IDLWAVE can accomodate this special synergy between class and keyword |
47440
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1755 inheritance: if @code{_EXTRA} or @code{_REF_EXTRA} is detected among a |
88155 | 1756 method's keyword parameters, all keywords of superclass versions of |
1757 the method being considered can be included in completion. There is | |
1758 of course no guarantee that this type of keyword chaining actually | |
1759 occurrs, but for some methods it's a very convenient assumption. The | |
1760 variable @code{idlwave-keyword-class-inheritance} can be used to | |
1761 configure which methods have keyword inheritance treated in this | |
1762 simple, class-driven way. By default, only @code{Init} and | |
1763 @code{(Get|Set)Property} are. The completion buffer will label | |
1764 keywords based on their originating class. | |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1765 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1766 @defopt idlwave-support-inheritance (@code{t}) |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1767 Non-@code{nil} means consider inheritance during completion, online help etc. |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1768 @end defopt |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1769 |
88155 | 1770 @defopt idlwave-keyword-class-inheritance |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1771 A list of regular expressions to match methods for which simple |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1772 class-driven keyword inheritance will be used for Completion. |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1773 @end defopt |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1774 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1775 @node Structure Tag Completion, , Class and Keyword Inheritance, Completion |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1776 @subsection Structure Tag Completion |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1777 @cindex Completion, structure tag |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1778 @cindex Structure tag completion |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1779 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1780 In many programs, especially those involving widgets, large structures |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1781 (e.g. the @samp{state} structure) are used to communicate among |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1782 routines. It is very convenient to be able to complete structure tags, |
47440
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1783 in the same way as for instance variables (tags) of the @samp{self} |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1784 object (@pxref{Object Method Completion and Class Ambiguity}). Add-in |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1785 code for structure tag completion is available in the form of a loadable |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1786 completion module: @file{idlw-complete-structtag.el}. Tag completion in |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1787 structures is highly ambiguous (much more so than @samp{self} |
47440
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1788 completion), so @code{idlw-complete-structtag} makes an unusual and very |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1789 specific assumption: the exact same variable name is used to refer to |
47440
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1790 the structure in all parts of the program. This is entirely unenforced |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1791 by the IDL language, but is a typical convention. If you consistently |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1792 refer to the same structure with the same variable name |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1793 (e.g. @samp{state}), structure tags which are read from its definition |
47440
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1794 in the same file can be used for completion. |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1795 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1796 Structure tag completion is not enabled by default. To enable it, |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1797 simply add the following to your @file{.emacs}: |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1798 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1799 @lisp |
88155 | 1800 (add-hook 'idlwave-load-hook |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1801 (lambda () (require 'idlw-complete-structtag))) |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1802 @end lisp |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1803 |
47440
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1804 Once enabled, you'll also be able to access online help on the structure |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1805 tags, using the usual methods (@pxref{Online Help}). |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1806 |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1807 @node Routine Source, Resolving Routines, Completion, The IDLWAVE Major Mode |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1808 @section Routine Source |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1809 @cindex Routine source file |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1810 @cindex Module source file |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1811 @cindex Source file, of a routine |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1812 @kindex C-c C-v |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1813 In addition to clicking on a @i{Source:} line in the routine info |
47440
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1814 window, there is another way to quickly visit the source file of a |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1815 routine. The command @kbd{C-c C-v} (@code{idlwave-find-module}) asks |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1816 for a module name, offering the same default as |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1817 @code{idlwave-routine-info} would have used, taken from nearby buffer |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1818 contents. In the minibuffer, specify a complete routine name (including |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1819 any class part). IDLWAVE will display the source file in another |
88155 | 1820 window, positioned at the routine in question. You can also visit a |
1821 routine in the current buffer, with completion, by using a single prefix | |
1822 (@kbd{C-u C-c C-v}). | |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1823 |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1824 @cindex Buffers, killing |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1825 @cindex Killing autoloaded buffers |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1826 Since getting the source of a routine into a buffer is so easy with |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1827 IDLWAVE, too many buffers visiting different IDL source files are |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1828 sometimes created. The special command @kbd{C-c C-k} |
47440
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1829 (@code{idlwave-kill-autoloaded-buffers}) can be used to easily remove |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
1830 these buffers. |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1831 |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1832 @node Resolving Routines, Code Templates, Routine Source, The IDLWAVE Major Mode |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1833 @section Resolving Routines |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1834 @cindex @code{RESOLVE_ROUTINE} |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1835 @cindex Compiling library modules |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1836 @cindex Routines, resolving |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1837 |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1838 The key sequence @kbd{C-c =} calls the command @code{idlwave-resolve} |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1839 and sends the line @samp{RESOLVE_ROUTINE, '@var{routine_name}'} to IDL |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1840 in order to resolve (compile) it. The default routine to be resolved is |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1841 taken from context, but you get a chance to edit it. |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1842 |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1843 @code{idlwave-resolve} is one way to get a library module within reach |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1844 of IDLWAVE's routine info collecting functions. A better way is to |
88155 | 1845 keep routine information available in catalogs (@pxref{Catalogs}). |
1846 Routine info on modules will then be available without the need to | |
1847 compile the modules first, and even without a running shell. | |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1848 |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1849 @xref{Sources of Routine Info}, for more information on the ways IDLWAVE |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1850 collects data about routines, and how to update this information. |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
1851 |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1852 @node Code Templates, Abbreviations, Resolving Routines, The IDLWAVE Major Mode |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1853 @section Code Templates |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1854 @cindex Code templates |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1855 @cindex Templates |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1856 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1857 IDLWAVE can insert IDL code templates into the buffer. For a few |
46534
9059071c4fa9
Updated with patches from 1.8-1.17
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46530
diff
changeset
|
1858 templates, this is done with direct key bindings: |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1859 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1860 @multitable @columnfractions .15 .85 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1861 @item @kbd{C-c C-c} |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1862 @tab @code{CASE} statement template |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1863 @item @kbd{C-c C-f} |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1864 @tab @code{FOR} loop template |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1865 @item @kbd{C-c C-r} |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1866 @tab @code{REPEAT} loop template |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1867 @item @kbd{C-c C-w} |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1868 @tab @code{WHILE} loop template |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1869 @end multitable |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1870 |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1871 All code templates are also available as abbreviations |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1872 (@pxref{Abbreviations}). |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1873 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1874 @node Abbreviations, Actions, Code Templates, The IDLWAVE Major Mode |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1875 @section Abbreviations |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1876 @cindex Abbreviations |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1877 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1878 Special abbreviations exist to enable rapid entry of commonly used |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1879 commands. Emacs abbreviations are expanded by typing text into the |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1880 buffer and pressing @key{SPC} or @key{RET}. The special abbreviations |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1881 used to insert code templates all start with a @samp{\} (the backslash), |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1882 or, optionally, any other character set in |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1883 @code{idlwave-abbrev-start-char}. IDLWAVE ensures that abbreviations are |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1884 only expanded where they should be (i.e., not in a string or comment), |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1885 and permits the point to be moved after an abbreviation expansion --- |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1886 very useful for positioning the mark inside of parentheses, etc. |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1887 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1888 Special abbreviations are pre-defined for code templates and other |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1889 useful items. To visit the full list of abbreviations, use @kbd{M-x |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1890 idlwave-list-abbrevs}. |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1891 |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1892 Template abbreviations: |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1893 |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1894 @multitable @columnfractions .15 .85 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1895 @item @code{\pr} |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1896 @tab @code{PROCEDURE} template |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1897 @item @code{\fu} |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1898 @tab @code{FUNCTION} template |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1899 @item @code{\c} |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1900 @tab @code{CASE} statement template |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1901 @item @code{\f} |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1902 @tab @code{FOR} loop template |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1903 @item @code{\r} |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1904 @tab @code{REPEAT} loop template |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1905 @item @code{\w} |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1906 @tab @code{WHILE} loop template |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1907 @item @code{\i} |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1908 @tab @code{IF} statement template |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1909 @item @code{\elif} |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1910 @tab @code{IF-ELSE} statement template |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
1911 @end multitable |
27600 | 1912 |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1913 String abbreviations: |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1914 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1915 @multitable @columnfractions .15 .85 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1916 @item @code{\ap} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1917 @tab @code{arg_present()} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1918 @item @code{\b} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1919 @tab @code{begin} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1920 @item @code{\cb} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1921 @tab @code{byte()} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1922 @item @code{\cc} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1923 @tab @code{complex()} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1924 @item @code{\cd} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1925 @tab @code{double()} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1926 @item @code{\cf} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1927 @tab @code{float()} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1928 @item @code{\cl} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1929 @tab @code{long()} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1930 @item @code{\co} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1931 @tab @code{common} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1932 @item @code{\cs} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1933 @tab @code{string()} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1934 @item @code{\cx} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1935 @tab @code{fix()} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1936 @item @code{\e} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1937 @tab @code{else} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1938 @item @code{\ec} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1939 @tab @code{endcase} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1940 @item @code{\ee} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1941 @tab @code{endelse} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1942 @item @code{\ef} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1943 @tab @code{endfor} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1944 @item @code{\ei} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1945 @tab @code{endif else if} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1946 @item @code{\el} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1947 @tab @code{endif else} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1948 @item @code{\en} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1949 @tab @code{endif} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1950 @item @code{\er} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1951 @tab @code{endrep} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1952 @item @code{\es} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1953 @tab @code{endswitch} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1954 @item @code{\ew} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1955 @tab @code{endwhile} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1956 @item @code{\g} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1957 @tab @code{goto,} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1958 @item @code{\h} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1959 @tab @code{help,} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1960 @item @code{\ik} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1961 @tab @code{if keyword_set() then} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1962 @item @code{\iap} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1963 @tab @code{if arg_present() then} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1964 @item @code{\ine} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1965 @tab @code{if n_elements() eq 0 then} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1966 @item @code{\inn} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1967 @tab @code{if n_elements() ne 0 then} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1968 @item @code{\k} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1969 @tab @code{keyword_set()} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1970 @item @code{\n} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1971 @tab @code{n_elements()} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1972 @item @code{\np} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1973 @tab @code{n_params()} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1974 @item @code{\oi} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1975 @tab @code{on_ioerror,} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1976 @item @code{\or} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1977 @tab @code{openr,} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1978 @item @code{\ou} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1979 @tab @code{openu,} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1980 @item @code{\ow} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1981 @tab @code{openw,} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1982 @item @code{\p} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1983 @tab @code{print,} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1984 @item @code{\pt} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1985 @tab @code{plot,} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1986 @item @code{\re} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1987 @tab @code{read,} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1988 @item @code{\rf} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1989 @tab @code{readf,} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1990 @item @code{\rt} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1991 @tab @code{return} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1992 @item @code{\ru} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1993 @tab @code{readu,} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1994 @item @code{\s} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1995 @tab @code{size()} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1996 @item @code{\sc} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1997 @tab @code{strcompress()} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1998 @item @code{\sl} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
1999 @tab @code{strlowcase()} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2000 @item @code{\sm} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2001 @tab @code{strmid()} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2002 @item @code{\sn} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2003 @tab @code{strlen()} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2004 @item @code{\sp} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2005 @tab @code{strpos()} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2006 @item @code{\sr} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2007 @tab @code{strtrim()} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2008 @item @code{\st} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2009 @tab @code{strput()} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2010 @item @code{\su} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2011 @tab @code{strupcase()} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2012 @item @code{\t} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2013 @tab @code{then} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2014 @item @code{\u} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2015 @tab @code{until} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2016 @item @code{\wc} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2017 @tab @code{widget_control,} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2018 @item @code{\wi} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2019 @tab @code{widget_info()} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2020 @item @code{\wu} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2021 @tab @code{writeu,} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2022 @end multitable |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2023 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2024 @noindent You can easily add your own abbreviations or override existing |
46534
9059071c4fa9
Updated with patches from 1.8-1.17
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46530
diff
changeset
|
2025 abbrevs with @code{define-abbrev} in your mode hook, using the |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2026 convenience function @code{idlwave-define-abbrev}: |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2027 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2028 @lisp |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2029 (add-hook 'idlwave-mode-hook |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2030 (lambda () |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2031 (idlwave-define-abbrev "wb" "widget_base()" |
47440
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2032 (idlwave-keyword-abbrev 1)) |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2033 (idlwave-define-abbrev "ine" "IF N_Elements() EQ 0 THEN" |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2034 (idlwave-keyword-abbrev 11)))) |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2035 @end lisp |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2036 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2037 Notice how the abbreviation (here @emph{wb}) and its expansion |
47440
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2038 (@emph{widget_base()}) are given as arguments, and the single argument to |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2039 @code{idlwave-keyword-abbrev} (here @emph{1}) specifies how far back to |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2040 move the point upon expansion (in this example, to put it between the |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2041 parentheses). |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2042 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2043 The abbreviations are expanded in upper or lower case, depending upon |
47440
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2044 the variables @code{idlwave-abbrev-change-case} and, for reserved word |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2045 templates, @code{idlwave-reserved-word-upcase} (@pxref{Case Changes}). |
27600 | 2046 |
34432
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
2047 @defopt idlwave-abbrev-start-char (@code{"\"}) |
47440
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2048 A single character string used to start abbreviations in abbrev mode. |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2049 Beware of common characters which might naturally occur in sequence with |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2050 abbreviation strings. |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2051 @end defopt |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2052 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2053 @defopt idlwave-abbrev-move (@code{t}) |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2054 Non-@code{nil} means the abbrev hook can move point, e.g. to end up |
47440
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2055 between the parentheses of a function call. |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2056 @end defopt |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2057 |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2058 @node Actions, Doc Header, Abbreviations, The IDLWAVE Major Mode |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2059 @section Actions |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2060 @cindex Actions |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2061 @cindex Coding standards, enforcing |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2062 |
47440
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2063 @emph{Actions} are special formatting commands which are executed |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2064 automatically while you write code in order to check the structure of |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2065 the program or to enforce coding standards. Most actions which have |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2066 been implemented in IDLWAVE are turned off by default, assuming that the |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2067 average user wants her code the way she writes it. But if you are a |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2068 lazy typist and want your code to adhere to certain standards, actions |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2069 can be helpful. |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2070 |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2071 Actions can be applied in three ways: |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2072 |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2073 @itemize @bullet |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2074 @item |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2075 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
|
2076 @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
|
2077 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
|
2078 after a reserved word can call a command to change the word to upper |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2079 case. |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2080 @item |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2081 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
|
2082 entire line. To enable this, the variable @code{idlwave-do-actions} |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2083 must be non-@code{nil}. |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2084 @item |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2085 @cindex Foreign code, adapting |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2086 @cindex Actions, applied to foreign code |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2087 Actions can also be applied to a larger piece of code, e.g. to convert |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2088 foreign code to your own style. To do this, mark the relevant part of |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2089 the code and execute @kbd{M-x expand-region-abbrevs}. Useful marking |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2090 commands are @kbd{C-x h} (the entire file) or @kbd{C-M-h} (the current |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2091 subprogram). @xref{Code Indentation}, for information how to adjust the |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2092 indentation of the code. |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2093 @end itemize |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2094 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2095 @defopt idlwave-do-actions (@code{nil}) |
88155 | 2096 Non-@code{nil} means performs actions when indenting. Individual action |
2097 settings are described below and set separately. | |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2098 @end defopt |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2099 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2100 @menu |
47440
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2101 * Block Boundary Check:: Is the END statement correct? |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2102 * Padding Operators:: Enforcing space around `=' etc |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2103 * Case Changes:: Enforcing upper case keywords |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2104 @end menu |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2105 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2106 @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
|
2107 @subsection Block Boundary Check |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2108 @cindex Block boundary check |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2109 @cindex @code{END} type checking |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2110 @cindex @code{END}, automatic insertion |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2111 @cindex @code{END}, expanding |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2112 @cindex Block, closing |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2113 @cindex Closing a block |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2114 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2115 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
|
2116 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
|
2117 location for a second. If you have typed a specific @code{END}, like |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2118 @code{ENDIF} or @code{ENDCASE}, you get a warning if that terminator |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2119 does not match the type of block it terminates. |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2120 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2121 Set the variable @code{idlwave-expand-generic-end} in order to have all |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2122 generic @code{END} statements automatically expanded to the appropriate |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2123 type. You can also type @kbd{C-c ]} to close the current block by |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2124 inserting the appropriate @code{END} statement. |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2125 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2126 @defopt idlwave-show-block (@code{t}) |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2127 Non-@code{nil} means point blinks to block beginning for |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2128 @code{idlwave-show-begin}. |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2129 @end defopt |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2130 |
34432
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
2131 @defopt idlwave-expand-generic-end (@code{t}) |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2132 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
|
2133 @end defopt |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2134 |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2135 @defopt idlwave-reindent-end (@code{t}) |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2136 Non-@code{nil} means re-indent line after END was typed. |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2137 @end defopt |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2138 |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2139 @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
|
2140 @subsection Padding Operators |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2141 @cindex Padding operators with spaces |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2142 @cindex Operators, padding with spaces |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2143 @cindex Space, around operators |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2144 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2145 Some operators can be automatically surrounded by spaces. This can |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2146 happen when the operator is typed, or later when the line is indented. |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2147 IDLWAVE can pad the operators @samp{&}, @samp{<}, @samp{>}, @samp{,}, |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2148 @samp{=}, and @samp{->}, but this feature is turned off by default. If |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2149 you want to turn it on, customize the variables |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2150 @code{idlwave-surround-by-blank} and @code{idlwave-do-actions}. You can |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2151 also define similar actions for other operators by using the function |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2152 @code{idlwave-action-and-binding} in the mode hook. For example, to |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2153 enforce space padding of the @samp{+} and @samp{*} operators, try this |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2154 in @file{.emacs} |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2155 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2156 @lisp |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2157 (add-hook 'idlwave-mode-hook |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2158 (lambda () |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2159 (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
|
2160 (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
|
2161 (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
|
2162 @end lisp |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2163 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2164 @defopt idlwave-surround-by-blank (@code{nil}) |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2165 Non-@code{nil} means enable @code{idlwave-surround}. If non-@code{nil}, |
27600 | 2166 @samp{=}, @samp{<}, @samp{>}, @samp{&}, @samp{,}, @samp{->} are |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2167 surrounded with spaces by @code{idlwave-surround}. |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2168 @end defopt |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2169 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2170 @defopt idlwave-pad-keyword (@code{t}) |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2171 Non-@code{nil} means pad @samp{=} for keywords like assignments. |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2172 @end defopt |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2173 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2174 @node Case Changes, , Padding Operators, Actions |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2175 @subsection Case Changes |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2176 @cindex Case changes |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2177 @cindex Upcase, enforcing for reserved words |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2178 @cindex Downcase, enforcing for reserved words |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2179 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2180 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
|
2181 abbreviations by customizing the variables |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2182 @code{idlwave-abbrev-change-case} and |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2183 @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
|
2184 additional words automatically, put something like the following into |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2185 your @file{.emacs} file: |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2186 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2187 @lisp |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2188 (add-hook 'idlwave-mode-hook |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2189 (lambda () |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2190 ;; Capitalize system vars |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2191 (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
|
2192 ;; Capitalize procedure name |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2193 (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
|
2194 '(capitalize-word 1) t) |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2195 ;; Capitalize common block name |
88155 | 2196 (idlwave-action-and-binding "\\<common\\>[ \t]+\\<" |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2197 '(capitalize-word 1) t))) |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2198 @end lisp |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2199 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2200 For more information, see the documentation string for the function |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2201 @code{idlwave-action-and-binding}. For information on controlling the |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2202 case of routines, keywords, classes, and methods as they are completed, see |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2203 @ref{Completion}. |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2204 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2205 @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
|
2206 Non-@code{nil} means all abbrevs will be forced to either upper or lower |
88155 | 2207 case. Valid values are @code{nil}, @code{t}, and @code{down}. |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2208 @end defopt |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2209 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2210 @defopt idlwave-reserved-word-upcase (@code{nil}) |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2211 Non-@code{nil} means reserved words will be made upper case via abbrev |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2212 expansion. |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2213 @end defopt |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2214 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2215 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2216 @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
|
2217 @section Documentation Header |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2218 @cindex Documentation header |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2219 @cindex DocLib header |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2220 @cindex Modification timestamp |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2221 @cindex Header, for file documentation |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2222 @cindex Timestamp, in doc header. |
88155 | 2223 @cindex Changelog, in doc header. |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2224 |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2225 @kindex C-c C-h |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2226 @kindex C-c C-m |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2227 The command @kbd{C-c C-h} inserts a standard routine header into the |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2228 buffer, with the usual fields for documentation (a different header can |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2229 be specified with @code{idlwave-file-header}). One of the keywords is |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2230 @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
|
2231 recorded. The command @kbd{C-c C-m} jumps to the @samp{MODIFICATION |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2232 HISTORY} of the current routine or file and inserts the user name with a |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2233 timestamp. |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2234 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2235 @defopt idlwave-file-header |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2236 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
|
2237 @end defopt |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2238 |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2239 @defopt idlwave-header-to-beginning-of-file (@code{nil}) |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2240 Non-@code{nil} means the documentation header will always be at start |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2241 of file. |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2242 @end defopt |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2243 |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2244 @defopt idlwave-timestamp-hook |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2245 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
|
2246 @end defopt |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2247 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2248 @defopt idlwave-doc-modifications-keyword |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2249 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
|
2250 @end defopt |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2251 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2252 @defopt idlwave-doclib-start |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2253 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
|
2254 @end defopt |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2255 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2256 @defopt idlwave-doclib-end |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2257 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
|
2258 @end defopt |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2259 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2260 @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
|
2261 @section Motion Commands |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2262 @cindex Motion commands |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2263 @cindex Program structure, moving through |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2264 @cindex Code structure, moving through |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2265 @cindex @file{Func-menu}, XEmacs package |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2266 @cindex @file{Imenu}, Emacs package |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2267 @cindex Function definitions, jumping to |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2268 @cindex Procedure definitions, jumping to |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2269 |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2270 IDLWAVE supports both @file{Imenu} and @file{Func-menu}, two packages |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2271 which make it easy to jump to the definitions of functions and |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2272 procedures in the current file with a pop-up selection. To bind |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2273 @file{Imenu} to a mouse-press, use in your @file{.emacs}: |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2274 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2275 @lisp |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2276 (define-key global-map [S-down-mouse-3] 'imenu) |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2277 @end lisp |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2278 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2279 @cindex @file{Speedbar}, Emacs package |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2280 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2281 In addition, @file{Speedbar} support allows convenient navigation of a |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2282 source tree of IDL routine files, quickly stepping to routine |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2283 definitions. See @code{Tools->Display Speedbar}. |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2284 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2285 Several commands allow you to move quickly through the structure of an |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2286 IDL program: |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2287 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2288 @multitable @columnfractions .15 .85 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2289 @item @kbd{C-M-a} |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2290 @tab Beginning of subprogram |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2291 @item @kbd{C-M-e} |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2292 @tab End of subprogram |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2293 @item @kbd{C-c @{} |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2294 @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
|
2295 @item @kbd{C-c @}} |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2296 @tab End of block (stay inside the block) |
40705 | 2297 @item @kbd{C-M-n} |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2298 @tab Forward block (on same level) |
40705 | 2299 @item @kbd{C-M-p} |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2300 @tab Backward block (on same level) |
40705 | 2301 @item @kbd{C-M-d} |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2302 @tab Down block (enters a block) |
40705 | 2303 @item @kbd{C-M-u} |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2304 @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
|
2305 @item @kbd{C-c C-n} |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2306 @tab Next Statement |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2307 @end multitable |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2308 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2309 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2310 @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
|
2311 @section Miscellaneous Options |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2312 @cindex Hooks |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2313 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2314 @defopt idlwave-help-application |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2315 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
|
2316 @end defopt |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2317 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2318 @defopt idlwave-startup-message (@code{t}) |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2319 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
|
2320 is first called. |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2321 @end defopt |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2322 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2323 @defopt idlwave-mode-hook |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2324 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
|
2325 @end defopt |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2326 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2327 @defopt idlwave-load-hook |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2328 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
|
2329 @end defopt |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2330 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2331 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2332 |
88155 | 2333 @node The IDLWAVE Shell, Acknowledgements, The IDLWAVE Major Mode, Top |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2334 @chapter The IDLWAVE Shell |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2335 @cindex IDLWAVE shell |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2336 @cindex Major mode, @code{idlwave-shell-mode} |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2337 @cindex IDL, as Emacs subprocess |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2338 @cindex Subprocess of Emacs, IDL |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2339 @cindex Comint, Emacs package |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2340 @cindex Windows |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2341 @cindex MacOS |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2342 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2343 The IDLWAVE shell is an Emacs major mode which permits running the IDL |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2344 program as an inferior process of Emacs, and works closely with the |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2345 IDLWAVE major mode in buffers. It can be used to work with IDL |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2346 interactively, to compile and run IDL programs in Emacs buffers and to |
88155 | 2347 debug these programs. The IDLWAVE shell is built on @file{comint}, an |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2348 Emacs packages which handles the communication with the IDL program. |
88155 | 2349 Unfortunately IDL for Windows does not have command-prompt versions |
2350 and thus do not allow the interaction with Emacs@footnote{Please | |
2351 inform the maintainer if you come up with a way to make the IDLWAVE | |
2352 shell work on these systems.} --- so the IDLWAVE shell currently only | |
2353 works under Unix and MacOSX. | |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2354 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2355 @menu |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2356 * 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
|
2357 * Using the Shell:: Interactively working with the Shell |
88155 | 2358 * Commands Sent to the Shell:: |
2359 * Debugging IDL Programs:: | |
2360 * Examining Variables:: | |
2361 * Custom Expression Examination:: | |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2362 @end menu |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2363 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2364 @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
|
2365 @section Starting the Shell |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2366 @cindex Starting the shell |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2367 @cindex Shell, starting |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2368 @cindex Dedicated frame, for shell buffer |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2369 @cindex Frame, for shell buffer |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2370 @cindex Subprocess of Emacs, IDL |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2371 |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2372 @kindex C-c C-s |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2373 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
|
2374 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
|
2375 @kbd{C-c C-s}. It creates a buffer @file{*idl*} which is used to |
88155 | 2376 interact with the shell. If the shell is already running, @kbd{C-c |
2377 C-s} will simply switch to the shell buffer. The command @kbd{C-c | |
2378 C-l} (@code{idlwave-shell-recenter-shell-window}) displays the shell | |
2379 window without selecting it. The shell can also be started | |
2380 automatically when another command tries to send a command to it. To | |
2381 enable auto start, set the variable | |
2382 @code{idlwave-shell-automatic-start} to @code{t}. | |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2383 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2384 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
|
2385 @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
|
2386 @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
|
2387 window, configure the variable |
88155 | 2388 @code{idlwave-shell-use-dedicated-frame}. |
2389 | |
2390 To launch a quick IDLWAVE shell directly from a shell prompt without | |
2391 an IDLWAVE buffer (e.g., as a replacement for running inside an | |
2392 xterm), define a system alias with the following content: | |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2393 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2394 @example |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2395 emacs -geometry 80x32 -eval "(idlwave-shell 'quick)" |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2396 @end example |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2397 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2398 Replace the @samp{-geometry 80x32} option with @samp{-nw} if you prefer |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2399 the Emacs process to run directly inside the terminal window. |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2400 |
88155 | 2401 @cindex ENVI |
2402 @cindex IDL> Prompt | |
2403 | |
2404 To use IDLWAVE with ENVI or other custom packages which change the | |
2405 @samp{IDL> } prompt, you must change the | |
2406 @code{idlwave-shell-prompt-pattern}, which defaults to @samp{"^ ?IDL> | |
2407 "}. Normally, you can just replace the @samp{IDL} in this expression | |
2408 with the prompt you see. A suitable pattern which matches the prompt | |
2409 for both ENVI and IDL simultaneously is @samp{"^ ?\\(ENVI\\|IDL\\)> "}. | |
2410 | |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2411 @defopt idlwave-shell-explicit-file-name (@file{idl}) |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2412 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
|
2413 @end defopt |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2414 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2415 @defopt idlwave-shell-command-line-options |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2416 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
|
2417 @end defopt |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2418 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2419 @defopt idlwave-shell-prompt-pattern |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2420 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
|
2421 @end defopt |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2422 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2423 @defopt idlwave-shell-process-name |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2424 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
|
2425 @end defopt |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2426 |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2427 @defopt idlwave-shell-automatic-start (@code{nil}) |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2428 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
|
2429 running. |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2430 @end defopt |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2431 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2432 @defopt idlwave-shell-initial-commands |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2433 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
|
2434 @end defopt |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2435 |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2436 @defopt idlwave-shell-save-command-history (@code{t}) |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2437 Non-@code{nil} means preserve command history between sessions. |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2438 @end defopt |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2439 |
88155 | 2440 @defopt idlwave-shell-command-history-file (@file{~/.idlwave/.idlwhist}) |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2441 The file in which the command history of the idlwave shell is saved. |
88155 | 2442 Unless it's an absolute path, it goes in |
2443 @code{idlwave-config-directory}. | |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2444 @end defopt |
88155 | 2445 |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2446 @defopt idlwave-shell-use-dedicated-frame (@code{nil}) |
88155 | 2447 Non-@code{nil} means IDLWAVE should use a special frame to display the |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
47737
diff
changeset
|
2448 shell buffer. |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2449 @end defopt |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2450 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2451 @defopt idlwave-shell-frame-parameters |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2452 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
|
2453 @end defopt |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2454 |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2455 @defopt idlwave-shell-raise-frame (@code{t}) |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2456 Non-@code{nil} means `idlwave-shell' raises the frame showing the shell |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2457 window. |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2458 @end defopt |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2459 |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2460 @defopt idlwave-shell-temp-pro-prefix |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2461 The prefix for temporary IDL files used when compiling regions. |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2462 @end defopt |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2463 |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2464 @cindex Hooks |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2465 @defopt idlwave-shell-mode-hook |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2466 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
|
2467 @end defopt |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2468 |
47440
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2469 @node Using the Shell, Commands Sent to the Shell, Starting the Shell, The IDLWAVE Shell |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2470 @section Using the Shell |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2471 @cindex Comint |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2472 @cindex Shell, basic commands |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2473 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2474 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
|
2475 Emacs. It provides command history, command line editing and job |
34432
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
2476 control. The @key{UP} and @key{DOWN} arrows cycle through the input |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
2477 history just like in an X terminal@footnote{This is different from |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
2478 normal Emacs/Comint behavior, but more like an xterm. If you prefer the |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
2479 default comint functionality, check the variable |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2480 @code{idlwave-shell-arrows-do-history}.}. The history is preserved |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2481 between emacs and IDL sessions. Here is a list of commonly used |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2482 commands: |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2483 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2484 @multitable @columnfractions .12 .88 |
47440
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2485 @item @key{UP}, @key{M-p} |
34432
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
2486 @tab Cycle backwards in input history |
47440
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2487 @item @key{DOWN}, @key{M-n} |
34432
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
2488 @tab Cycle forwards in input history |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2489 @item @kbd{M-r} |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2490 @tab Previous input matching a regexp |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2491 @item @kbd{M-s} |
47440
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2492 @tab Next input matching a regexp |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2493 @item @kbd{return} |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2494 @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
|
2495 @item @kbd{C-c C-a} |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2496 @tab Beginning of line; skip prompt |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2497 @item @kbd{C-c C-u} |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2498 @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
|
2499 @item @kbd{C-c C-w} |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2500 @tab Kill word before cursor |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2501 @item @kbd{C-c C-c} |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2502 @tab Send ^C |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2503 @item @kbd{C-c C-z} |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2504 @tab Send ^Z |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2505 @item @kbd{C-c C-\} |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2506 @tab Send ^\ |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2507 @item @kbd{C-c C-o} |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2508 @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
|
2509 @item @kbd{C-c C-r} |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2510 @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
|
2511 @item @kbd{C-c C-l} |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2512 @tab List input history |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2513 @end multitable |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2514 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2515 In addition to these standard @file{comint} commands, |
47440
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2516 @code{idlwave-shell-mode} provides many of the same commands which |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2517 simplify writing IDL code available in IDLWAVE buffers. This includes |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2518 abbreviations, online help, and completion. See @ref{Routine Info} and |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2519 @ref{Online Help} and @ref{Completion} for more information on these |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2520 commands. |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2521 |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2522 @cindex Completion, in the shell |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2523 @cindex Routine info, in the shell |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2524 @cindex Online Help, in the shell |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2525 @multitable @columnfractions .12 .88 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2526 @item @kbd{@key{TAB}} |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2527 @tab Completion of file names (between quotes and after executive |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2528 commands @samp{.run} and @samp{.compile}), routine names, class names, |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2529 keywords, system variables, system variable tags etc. |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2530 (@code{idlwave-shell-complete}). |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2531 @item @kbd{M-@key{TAB}} |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2532 @tab Same as @key{TAB} |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2533 @item @kbd{C-c ?} |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2534 @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
|
2535 @item @kbd{M-?} |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2536 @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
|
2537 @item @kbd{C-c C-i} |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2538 @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
|
2539 (@code{idlwave-update-routine-info}) |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2540 @item @kbd{C-c C-v} |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2541 @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
|
2542 @item @kbd{C-c =} |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2543 @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
|
2544 @end multitable |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2545 |
34432
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
2546 @defopt idlwave-shell-arrows-do-history (@code{t}) |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
2547 Non-@code{nil} means @key{UP} and @key{DOWN} arrows move through command |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
2548 history like xterm. |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
2549 @end defopt |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
2550 |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2551 @defopt idlwave-shell-comint-settings |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2552 Alist of special settings for the comint variables in the IDLWAVE Shell. |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2553 @end defopt |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2554 |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2555 @defopt idlwave-shell-file-name-chars |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2556 The characters allowed in file names, as a string. Used for file name |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2557 completion. |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2558 @end defopt |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2559 |
34432
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
2560 @defopt idlwave-shell-graphics-window-size |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
2561 Size of IDL graphics windows popped up by special IDLWAVE command. |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
2562 @end defopt |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
2563 |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2564 @cindex Input mode |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2565 @cindex Character input mode (Shell) |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2566 @cindex Line input mode (Shell) |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2567 @cindex Magic spells, for input mode |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2568 @cindex Spells, magic |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2569 IDLWAVE works in line input mode: You compose a full command line, using |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2570 all the power Emacs gives you to do this. When you press @key{RET}, the |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2571 whole line is sent to IDL. Sometimes it is necessary to send single |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2572 characters (without a newline), for example when an IDL program is |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2573 waiting for single character input with the @code{GET_KBRD} function. |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2574 You can send a single character to IDL with the command @kbd{C-c C-x} |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2575 (@code{idlwave-shell-send-char}). When you press @kbd{C-c C-y} |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2576 (@code{idlwave-shell-char-mode-loop}), IDLWAVE runs a blocking loop |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2577 which accepts characters and immediately sends them to IDL. The loop |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2578 can be exited with @kbd{C-g}. It terminates also automatically when the |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2579 current IDL command is finished. Check the documentation of the two |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2580 variables described below for a way to make IDL programs trigger |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2581 automatic switches of the input mode. |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2582 |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2583 @defopt idlwave-shell-use-input-mode-magic (@code{nil}) |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2584 Non-@code{nil} means IDLWAVE should check for input mode spells in |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2585 output. |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2586 @end defopt |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2587 |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2588 @defopt idlwave-shell-input-mode-spells |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2589 The three regular expressions which match the magic spells for input |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2590 modes. |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2591 @end defopt |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2592 |
47440
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2593 @node Commands Sent to the Shell, Debugging IDL Programs, Using the Shell, The IDLWAVE Shell |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2594 @section Commands Sent to the Shell |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2595 @cindex Commands in shell, showing |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2596 @cindex Showing commands in shell |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2597 |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2598 The IDLWAVE buffers and shell interact very closely. In addition to the |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2599 normal commands you enter at the @code{IDL>} prompt, many other special |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2600 commands are sent to the shell, sometimes as a direct result of invoking |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2601 a key command, menu item, or toolbar button, but also automatically, as |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2602 part of the normal flow of information updates between the buffer and |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2603 shell. |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2604 |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2605 The commands sent include @code{breakpoint}, @code{.step} and other |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2606 debug commands (@pxref{Debugging IDL Programs}), @code{.run} and other |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2607 compilation statements (@pxref{Compiling Programs}), examination |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2608 commands like @code{print} and @code{help} (@pxref{Examining |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2609 Variables}), and other special purpose commands designed to keep |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2610 information on the running shell current. |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2611 |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2612 By default, much of this background shell input and output is hidden |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2613 from the user, but this is configurable. The custom variable |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2614 @code{idlwave-abbrev-show-commands} allows you to configure which |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2615 commands sent to the shell are shown there. For a related customization |
88155 | 2616 for separating the output of @emph{examine} commands, see @ref{Examining |
47440
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2617 Variables}. |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2618 |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2619 @defopt idlwave-shell-show-commands (@code{'(run misc breakpoint)}) |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2620 A list of command types to echo in the shell when sent. Possible values |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2621 are @code{run} for @code{.run}, @code{.compile} and other run commands, |
88155 | 2622 @code{misc} for lesser used commands like @code{window}, |
2623 @code{retall},@code{close}, etc., @code{breakpoint} for breakpoint | |
2624 setting and clearing commands, and @code{debug} for other debug, | |
2625 stepping, and continue commands. In addition, if the variable is set to | |
2626 the single symbol @code{'everything}, all the copious shell input is | |
2627 displayed (which is probably only useful for debugging purposes). | |
2628 N.B. For hidden commands which produce output by side-effect, that | |
2629 output remains hidden (e.g., stepping through a @code{print} command). | |
2630 As a special case, any error message in the output will be displayed | |
2631 (e.g., stepping to an error). | |
47440
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2632 @end defopt |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2633 |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2634 @node Debugging IDL Programs, Examining Variables, Commands Sent to the Shell, The IDLWAVE Shell |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2635 @section Debugging IDL Programs |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2636 @cindex Debugging |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2637 @cindex Keybindings for debugging |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2638 @cindex Toolbar |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2639 |
47440
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2640 Programs can be compiled, run, and debugged directly from the source |
88155 | 2641 buffer in Emacs, walking through arbitrarily deeply nested code, |
2642 printing expressions and skipping up and down the calling stack along | |
2643 the way. IDLWAVE makes compiling and debugging IDL programs far less | |
2644 cumbersome by providing a full-featured, key/menu/toolbar-driven | |
2645 interface to commands like @code{breakpoint}, @code{.step}, | |
2646 @code{.run}, etc. It can even perform complex debug operations not | |
2647 natively supported by IDL (like continuing to the line at the cursor). | |
2648 | |
2649 The IDLWAVE shell installs key bindings both in the shell buffer and | |
2650 in all IDL code buffers of the current Emacs session, so debug | |
2651 commands work in both places (in the shell, commands operate on the | |
2652 last file compiled). On Emacs versions which support it, a debugging | |
2653 toolbar is also installed. The toolbar display can be toggled with | |
2654 @kbd{C-c C-d C-t} (@code{idlwave-shell-toggle-toolbar}). | |
2655 | |
47440
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2656 |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2657 @defopt idlwave-shell-use-toolbar (@code{t}) |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2658 Non-@code{nil} means use the debugging toolbar in all IDL related |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2659 buffers. |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2660 @end defopt |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2661 |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2662 @menu |
88155 | 2663 * A Tale of Two Modes:: |
2664 * Debug Key Bindings:: | |
2665 * Breakpoints and Stepping:: | |
2666 * Compiling Programs:: | |
2667 * Walking the Calling Stack:: | |
2668 * Electric Debug Mode:: | |
47440
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2669 @end menu |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2670 |
88155 | 2671 |
2672 @node A Tale of Two Modes, Debug Key Bindings, Debugging IDL Programs, Debugging IDL Programs | |
2673 @subsection A Tale of Two Modes | |
2674 @cindex Electric Debug Mode | |
2675 @cindex Debugging Interface | |
2676 | |
2677 The many debugging, compiling, and examination commands provided in | |
2678 IDLWAVE are available simultaneously through two different interfaces: | |
2679 the original, multi-key command interface, and the new Electric Debug | |
2680 Mode. The functionality they offer is similar, but the way you interact | |
2681 with them is quite different. The main difference is that, in Electric | |
2682 Debug Mode, the source buffers are made read-only, and single | |
2683 key-strokes are used to step through, examine expressions, set and | |
2684 remove breakpoints, etc. The same variables, prefix arguments, and | |
2685 settings apply to both versions, and both can be used interchangeably. | |
2686 By default, when breakpoints are hit, Electric Debug Mode is enabled. | |
2687 The traditional interface is described first. @xref{Electric Debug | |
2688 Mode}, for more on that mode. Note that electric debug mode can be | |
2689 prevented from activating automatically by customizing the variable | |
2690 @code{idlwave-shell-automatic-electric-debug}. | |
2691 | |
2692 @node Debug Key Bindings, Breakpoints and Stepping, A Tale of Two Modes, Debugging IDL Programs | |
47440
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2693 @subsection Debug Key Bindings |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2694 @kindex C-c C-d |
47440
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2695 @cindex Key bindings |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2696 |
88155 | 2697 The standard debugging key bindings are always available by default on |
2698 the prefix key @kbd{C-c C-d}, so, for example, setting a breakpoint is | |
2699 done with @kbd{C-c C-d C-b}, and compiling a source file with @kbd{C-c | |
2700 C-d C-c}. You can also easily configure IDLWAVE to use one or more | |
47440
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2701 modifier keys not in use by other commands, in lieu of the prefix |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2702 @kbd{C-c C-d} (though these bindings will typically also be available |
88155 | 2703 --- see @code{idlwave-shell-activate-prefix-keybindings}). For |
2704 example, if you include in @file{.emacs}: | |
34432
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
2705 |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
2706 @lisp |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
2707 (setq idlwave-shell-debug-modifiers '(control shift)) |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
2708 @end lisp |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
2709 |
88155 | 2710 @noindent a breakpoint can then be set by pressing @kbd{b} while holding down |
34432
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
2711 @kbd{shift} and @kbd{control} keys, i.e. @kbd{C-S-b}. Compiling a |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2712 source file will be on @kbd{C-S-c}, deleting a breakpoint @kbd{C-S-d}, |
88155 | 2713 etc. In the remainder of this chapter we will assume that the |
2714 @kbd{C-c C-d} bindings are active, but each of these bindings will | |
2715 have an equivalent shortcut if modifiers are given in the | |
2716 @code{idlwave-shell-debug-modifiers} variable (@pxref{Lesson II -- | |
2717 Customization}). A much simpler and faster form of debugging for | |
2718 running code is also available by default --- see @ref{Electric Debug | |
2719 Mode}. | |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2720 |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2721 @defopt idlwave-shell-prefix-key (@kbd{C-c C-d}) |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2722 The prefix key for the debugging map |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2723 @code{idlwave-shell-mode-prefix-map}. |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2724 @end defopt |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2725 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2726 @defopt idlwave-shell-activate-prefix-keybindings (@code{t}) |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2727 Non-@code{nil} means debug commands will be bound to the prefix |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2728 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
|
2729 @end defopt |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2730 |
34432
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
2731 @defopt idlwave-shell-debug-modifiers (@code{nil}) |
88155 | 2732 List of modifier keys to use for additional, alternative binding of |
2733 debugging commands in the shell and source buffers. Can be one or | |
2734 more of @code{control}, @code{meta}, @code{super}, @code{hyper}, | |
2735 @code{alt}, and @code{shift}. | |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2736 @end defopt |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2737 |
88155 | 2738 @node Breakpoints and Stepping, Compiling Programs, Debug Key Bindings, Debugging IDL Programs |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2739 @subsection Breakpoints and Stepping |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2740 @cindex Breakpoints |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2741 @cindex Stepping |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2742 @cindex Execution, controlled |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2743 |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2744 @kindex C-c C-d C-b |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2745 @kindex C-c C-d C-b |
88155 | 2746 IDLWAVE helps you set breakpoints and step through code. Setting a |
2747 breakpoint in the current line of the source buffer is accomplished | |
2748 with @kbd{C-c C-d C-b} (@code{idlwave-shell-break-here}). With a | |
2749 prefix arg of 1 (i.e. @kbd{C-1 C-c C-d C-b}), the breakpoint gets a | |
47440
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2750 @code{/ONCE} keyword, meaning that it will be deleted after first use. |
88155 | 2751 With a numeric prefix greater than one (e.g. @kbd{C-4 C-c C-d C-b}), |
2752 the breakpoint will only be active the @code{nth} time it is hit. | |
2753 With a single non-numeric prefix (i.e. @kbd{C-u C-c C-d C-b}), prompt | |
2754 for a condition --- an IDL expression to be evaulated and trigger the | |
47440
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2755 breakpoint only if true. To clear the breakpoint in the current line, |
88155 | 2756 use @kbd{C-c C-d C-d} (@code{idlwave-clear-current-bp}). When |
2757 executed from the shell window, the breakpoint where IDL is currently | |
2758 stopped will be deleted. To clear all breakpoints, use @kbd{C-c C-d | |
2759 C-a} (@code{idlwave-clear-all-bp}). Breakpoints can also be disabled | |
2760 and re-enabled: @kbd{C-c C-d C-\} | |
2761 (@code{idlwave-shell-toggle-enable-current-bp}). | |
2762 | |
2763 | |
2764 Breakpoint lines are highlighted or indicated with an icon in the | |
2765 source code (different icons for conditional, after, and other break | |
2766 types). Disabled breakpoints are @emph{grayed out} by default. Note | |
2767 that IDL places breakpoints as close as possible on or after the line | |
2768 you specify. IDLWAVE queries the shell for the actual breakpoint | |
2769 location which was set, so the exact line you specify may not be | |
2770 marked. You can re-sync the breakpoint list and display at any time | |
2771 (e.g., if you add or remove some on the command line) using @kbd{C-c | |
2772 C-d C-l}. | |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2773 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2774 Once the program has stopped somewhere, you can step through it. The |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2775 most important stepping commands are @kbd{C-c C-d C-s} to execute one |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2776 line of IDL code ("step into"); @kbd{C-c C-d C-n} to step a single line, |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2777 treating procedure and function calls as a single step ("step over"); |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2778 @kbd{C-c C-d C-h} to continue execution to the line at the cursor and |
47440
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2779 @kbd{C-c C-d C-r} to continue execution. @xref{Commands Sent to the |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2780 Shell}, for information on displaying or hiding the breakpoint and |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2781 stepping commands the shell receives. Here is a summary of the |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2782 breakpoint and stepping commands: |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2783 |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2784 @multitable @columnfractions .23 .77 |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2785 @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
|
2786 @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
|
2787 @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
|
2788 @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
|
2789 @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
|
2790 @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
|
2791 @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
|
2792 @tab Clear all breakpoints (@code{idlwave-shell-clear-all-bp}) |
88155 | 2793 @item @kbd{C-c C-d [} |
2794 @tab Go to the previous breakpoint (@code{idlwave-shell-goto-previous-bp}) | |
2795 @item @kbd{C-c C-d ]} | |
2796 @tab Go to the next breakpoint (@code{idlwave-shell-goto-next-bp}) | |
2797 @item @kbd{C-c C-d C-\} | |
2798 @tab Disable/Enable current breakpoint (@code{idlwave-shell-toggle-enable-current-bp}) | |
2799 @item @kbd{C-c C-d C-j} | |
2800 @tab Set a breakpoint at the beginning of the enclosing routine. | |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2801 @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
|
2802 @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
|
2803 @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
|
2804 @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
|
2805 @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
|
2806 @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
|
2807 @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
|
2808 @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
|
2809 @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
|
2810 @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
|
2811 @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
|
2812 @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
|
2813 @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
|
2814 @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
|
2815 @item @kbd{C-c C-d C-r} |
88155 | 2816 @tab Continue execution to next breakpoint, if any (@code{idlwave-shell-cont}) |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2817 @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
|
2818 @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
|
2819 @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
|
2820 @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
|
2821 @end multitable |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2822 |
88155 | 2823 All of these commands have equivalents in Electric Debug Mode, which |
2824 provides faster access (@pxref{Electric Debug Mode}). | |
2825 | |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2826 @defopt idlwave-shell-mark-breakpoints (@code{t}) |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2827 Non-@code{nil} means mark breakpoints in the source file buffers. The |
88155 | 2828 value indicates the preferred method. Valid values are @code{nil}, |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2829 @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
|
2830 @end defopt |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2831 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2832 @defopt idlwave-shell-breakpoint-face |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2833 The face for breakpoint lines in the source code if |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
2834 @code{idlwave-shell-mark-breakpoints} has the value @code{face}. |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2835 @end defopt |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
2836 |
88155 | 2837 @node Compiling Programs, Walking the Calling Stack, Breakpoints and Stepping, Debugging IDL Programs |
2838 @subsection Compiling Programs | |
2839 @cindex Compiling programs | |
2840 @cindex Programs, compiling | |
2841 @cindex Default command line, executing | |
2842 @cindex Executing a default command line | |
2843 | |
2844 @kindex C-c C-d C-c | |
2845 In order to compile the current buffer under the IDLWAVE shell, press | |
2846 @kbd{C-c C-d C-c} (@code{idlwave-save-and-run}). This first saves the | |
2847 current buffer and then sends the command @samp{.run path/to/file} to the | |
2848 shell. You can also execute @kbd{C-c C-d C-c} from the shell buffer, in | |
2849 which case the most recently compiled buffer will be saved and | |
2850 re-compiled. | |
2851 | |
2852 When developing or debugging a program, it is often necessary to execute | |
2853 the same command line many times. A convenient way to do this is | |
2854 @kbd{C-c C-d C-y} (@code{idlwave-shell-execute-default-command-line}). | |
2855 This command first resets IDL from a state of interrupted execution by | |
2856 closing all files and returning to the main interpreter level. Then a | |
2857 default command line is send to the shell. To edit the default command | |
2858 line, call @code{idlwave-shell-execute-default-command-line} with a | |
2859 prefix argument: @kbd{C-u C-c C-d C-y}. If no default command line has | |
2860 been set (or you give two prefix arguments), the last command on the | |
2861 @code{comint} input history is sent. | |
2862 | |
2863 @defopt idlwave-shell-mark-stop-line (@code{t}) | |
2864 Non-@code{nil} means mark the source code line where IDL is currently | |
2865 stopped. The value specifies the preferred method. Valid values are | |
2866 @code{nil}, @code{t}, @code{arrow}, and @code{face}. | |
2867 @end defopt | |
2868 | |
2869 @defopt idlwave-shell-overlay-arrow (@code{">"}) | |
2870 The overlay arrow to display at source lines where execution halts, if | |
2871 configured in @code{idlwave-shell-mark-stop-line}. | |
2872 @end defopt | |
2873 | |
2874 @defopt idlwave-shell-stop-line-face | |
2875 The face which highlights the source line where IDL is stopped, if | |
2876 configured in @code{idlwave-shell-mark-stop-line}. | |
2877 @end defopt | |
2878 | |
2879 @node Walking the Calling Stack, Electric Debug Mode, Compiling Programs, Debugging IDL Programs | |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2880 @subsection Walking the Calling Stack |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2881 @cindex Calling stack, walking |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2882 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2883 While debugging a program, it can be very useful to check the context in |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2884 which the current routine was called, for instance to help understand |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2885 the value of the arguments passed. To do so conveniently you need to |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2886 examine the calling stack. If execution is stopped somewhere deep in a |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2887 program, you can use the commands @kbd{C-c C-d C-@key{UP}} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2888 (@code{idlwave-shell-stack-up}) and @kbd{C-c C-d C-@key{DOWN}} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2889 (@code{idlwave-shell-stack-down}), or the corresponding toolbar buttons, |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2890 to move up or down through the calling stack. The mode line of the |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2891 shell window will indicate the position within the stack with a label |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2892 like @samp{[-3:MYPRO]}. The line of IDL code at that stack position |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2893 will be highlighted. If you continue execution, IDLWAVE will |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2894 automatically return to the current level. @xref{Examining Variables}, |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2895 for information how to examine the value of variables and expressions on |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2896 higher calling stack levels. |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
2897 |
47440
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
2898 @ifhtml |
88155 | 2899 <A NAME="EDEBUG"></A> |
2900 @end ifhtml | |
2901 @node Electric Debug Mode, , Walking the Calling Stack, Debugging IDL Programs | |
2902 @subsection Electric Debug Mode | |
2903 @cindex Electric Debug Mode | |
2904 @cindex @samp{*Debugging*} | |
2905 | |
2906 Even with a convenient debug key prefix enabled, repetitive stepping, | |
2907 variable examination (@pxref{Examining Variables}), and other | |
2908 debugging activities can be awkward and slow using commands which | |
2909 require multiple keystrokes. Luckily, there's a better way, inspired | |
2910 by the lisp e-debug mode, and available through the @emph{Electric | |
2911 Debug Mode}. By default, as soon as a breakpoint is hit, this minor | |
2912 mode is enabled. The buffer showing the line where execution has | |
2913 halted is switched to Electric Debug Mode. This mode is visible as | |
2914 @samp{*Debugging*} in the mode line, and a different face (violet by | |
2915 default, where color is available) for the line stopped at point. The | |
2916 buffer is made read-only and single-character bindings for the most | |
2917 commonly used debugging commands are enabled: | |
2918 | |
2919 @multitable @columnfractions .2 .8 | |
2920 @item @kbd{a} | |
2921 @tab Clear all breakpoints (@code{idlwave-shell-clear-all-bp}) | |
2922 @item @kbd{b} | |
2923 @tab Set breakpoint, @kbd{C-u b} for a conditional break, @kbd{C-n b} for nth hit (@code{idlwave-shell-break-here}) | |
2924 @item @kbd{d} | |
2925 @tab Clear current breakpoint (@code{idlwave-shell-clear-current-bp}) | |
2926 @item @kbd{h} | |
2927 @tab Continue to the line at cursor position (@code{idlwave-shell-to-here}) | |
2928 @item @kbd{i} | |
2929 @tab Set breakpoint in function named here (@code{idlwave-shell-break-in}) | |
2930 @item @kbd{[} | |
2931 @tab Go to the previous breakpoint in the file (@code{idlwave-shell-goto-previous-bp}) | |
2932 @item @kbd{]} | |
2933 @tab Go to the next breakpoint in the file | |
2934 (@code{idlwave-shell-goto-next-bp}) | |
2935 @item @kbd{\} | |
2936 @tab Disable/Enable current breakpoint (@code{idlwave-shell-toggle-enable-current-bp}) | |
2937 @item @kbd{j} | |
2938 @tab Set breakpoint at beginning of enclosing routine (@code{idlwave-shell-break-this-module}) | |
2939 @item @kbd{k} | |
2940 @tab Skip one statement (@code{idlwave-shell-skip}) | |
2941 @item @kbd{m} | |
2942 @tab Continue to end of function (@code{idlwave-shell-return}) | |
2943 @item @kbd{n} | |
2944 @tab Step, over function calls (@code{idlwave-shell-stepover}) | |
2945 @item @kbd{o} | |
2946 @tab Continue past end of function (@code{idlwave-shell-out}) | |
2947 @item @kbd{p} | |
2948 @tab Print expression near point or in region with @kbd{C-u p} (@code{idlwave-shell-print}) | |
2949 @item @kbd{q} | |
2950 @tab End the debugging session and return to the Shell's main level | |
2951 (@code{idlwave-shell-retall}) | |
2952 @item @kbd{r} | |
2953 @tab Continue execution to next breakpoint, if any (@code{idlwave-shell-cont}) | |
2954 @item @kbd{s} or @kbd{@key{SPACE}} | |
2955 @tab Step, into function calls (@code{idlwave-shell-step}) | |
2956 @item @kbd{t} | |
2957 @tab Print a calling-level traceback in the shell | |
2958 @item @kbd{u} | |
2959 @tab Continue to end of block (@code{idlwave-shell-up}) | |
2960 @item @kbd{v} | |
2961 @tab Turn Electric Debug Mode off | |
2962 (@code{idlwave-shell-electric-debug-mode}) | |
2963 @item @kbd{x} | |
2964 @tab Examine expression near point (or in region with @kbd{C-u x}) | |
2965 with shortcut of examine type. | |
2966 @item @kbd{z} | |
2967 @tab Reset IDL (@code{idlwave-shell-reset}) | |
2968 @item @kbd{+} or @kbd{=} | |
2969 @tab Show higher level in calling stack (@code{idlwave-shell-stack-up}) | |
2970 @item @kbd{-} or @kbd{_} | |
2971 @tab Show lower level in calling stack (@code{idlwave-shell-stack-down}) | |
2972 @item @kbd{?} | |
2973 @tab Help on expression near point or in region with @kbd{C-u ?} | |
2974 (@code{idlwave-shell-help-expression}) | |
2975 @item @kbd{C-?} | |
2976 @tab Show help on the commands available. | |
2977 @end multitable | |
2978 | |
2979 Most single-character electric debug bindings use the final keystroke | |
2980 of the equivalent multiple key commands (which are of course also | |
2981 still available), but some differ (e.g. @kbd{t},@kbd{q},@kbd{x}). | |
2982 Some have additional convenience bindings (like @kbd{@key{SPACE}} for | |
2983 stepping). All prefix and other argument options described in this | |
2984 section for the commands invoked by electric debug bindings are still | |
2985 valid. For example, @kbd{C-u b} sets a conditional breakpoint, just | |
2986 as it did with @kbd{C-u C-c C-d C-b}. | |
2987 | |
2988 You can toggle the electric debug mode at any time in a buffer using | |
2989 @kbd{C-c C-d C-v} (@kbd{v} to turn it off while in the mode), or from | |
2990 the Debug menu. Normally the mode will be enabled and disabled at the | |
2991 appropriate times, but occassionally you might want to edit a file | |
2992 while still debugging it, or switch to the mode for conveniently | |
2993 setting lots of breakpoints. | |
2994 | |
2995 To quickly abandon a debugging session and return to normal editing at | |
2996 the Shell's main level, use @kbd{q} (@code{idlwave-shell-retall}). | |
2997 This disables electric debug mode in all IDLWAVE buffers@footnote{Note | |
2998 that this binding is not symmetric: @kbd{C-c C-d C-q} is bound to | |
2999 @code{idlwave-shell-quit}, which quits your IDL session.}. Help is | |
3000 available for the command shortcuts with @kbd{C-?}. If you find this | |
3001 mode gets in your way, you can keep it from automatically activating | |
3002 by setting the variable @code{idlwave-shell-automatic-electric-debug} | |
3003 to @code{nil}, or @code{'breakpoint}. If you'd like the convenient | |
3004 electric debug shortcuts available also when run-time errors are | |
3005 encountered, set to @code{t}. | |
3006 | |
3007 @defopt idlwave-shell-automatic-electric-debug (@code{'breakpoint}) | |
3008 Whether to enter electric debug mode automatically when a breakpoint | |
3009 or run-time error is encountered, and then disable it in all buffers | |
3010 when the $MAIN$ level is reached (either through normal program | |
3011 execution, or retall). In addition to @code{nil} for never, and | |
3012 @code{t} for both breakpoints and errors, this can be | |
3013 @code{'breakpoint} (the default) to enable it only at breakpoint | |
3014 halts. | |
3015 @end defopt | |
3016 | |
3017 @defopt idlwave-shell-electric-zap-to-file (@code{t}) | |
3018 If set, when entering electric debug mode, select the window displaying | |
3019 the file where point is stopped. This takes point away from the shell | |
3020 window, but is useful for immediate stepping, etc. | |
3021 @end defopt | |
3022 | |
3023 @ifhtml | |
47440
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
3024 <A NAME="EXAMINE"></A> |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
3025 @end ifhtml |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3026 @node Examining Variables, Custom Expression Examination, Debugging IDL Programs, The IDLWAVE Shell |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3027 @section Examining Variables |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3028 @cindex @code{PRINT} expressions |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3029 @cindex @code{HELP}, on expressions |
88155 | 3030 @cindex Expressions, printing & help |
3031 @cindex Examining expressions | |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3032 @cindex Printing expressions |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3033 @cindex Mouse binding to print expressions |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3034 |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3035 @kindex C-c C-d C-p |
88155 | 3036 Do you find yourself repeatedly typing, |
3037 e.g. @code{print,n_elements(x)}, and similar statements to remind | |
3038 yourself of the type/size/structure/value/etc. of variables and | |
3039 expressions in your code or at the command line? IDLWAVE has a suite | |
3040 of special commands to automate these types of variable or expression | |
3041 examinations. They work by sending statements to the shell formatted | |
3042 to include the indicated expression. | |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3043 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3044 These examination commands can be used in the shell or buffer at any |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3045 time (as long as the shell is running), and are very useful when |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3046 execution is stopped in a buffer due to a triggered breakpoint or error, |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3047 or while composing a long command in the IDLWAVE shell. In the latter |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3048 case, the command is sent to the shell and its output is visible, but |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3049 point remains unmoved in the command being composed --- you can inspect |
88155 | 3050 the contituents of a command you're building without interrupting the |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3051 process of building it! You can even print arbitrary expressions from |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3052 older input or output further up in the shell window --- any expression, |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3053 variable, number, or function you see can be examined. |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3054 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3055 If the variable @code{idlwave-shell-separate-examine-output} is |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3056 non-@code{nil} (the default), all examine output will be sent to a |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3057 special @file{*Examine*} buffer, rather than the shell. The output of |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3058 prior examine commands is saved. In this buffer @key{c} clears the |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3059 contents, and @key{q} hides the buffer. |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3060 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3061 The two most basic examine commands are bound to @kbd{C-c C-d C-p}, to |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3062 print the expression at point, and @kbd{C-c C-d ?}, to invoke help on |
88155 | 3063 this expression@footnote{Available as @kbd{p} and @kbd{?} in Electric |
3064 Debug Mode (@pxref{Electric Debug Mode})}. The expression at point is | |
3065 either an array expression or a function call, or the contents of a | |
3066 pair of parentheses. The selected expression is highlighted, and | |
3067 simultaneously the resulting output is highlighted in the shell. | |
3068 Calling the above commands with a prefix argument will use the current | |
3069 region as expression instead of using the one at point. Two prefix | |
3070 arguments (@kbd{C-u C-u C-c C-d C-p}) will prompt for an expression. | |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3071 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3072 For added speed and convenience, there are mouse bindings which allow |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3073 you to click on expressions and examine their values. Use |
46534
9059071c4fa9
Updated with patches from 1.8-1.17
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46530
diff
changeset
|
3074 @kbd{S-Mouse-2} to print an expression and @kbd{C-M-Mouse-2} to invoke |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3075 help (i.e. you need to hold down @key{META} and @key{CONTROL} while |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3076 clicking with the middle mouse button). If you simply click, the |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3077 nearest expression will be selected in the same manner as described |
88155 | 3078 above. You can also @emph{drag} the mouse in order to highlight |
3079 exactly the specific expression or sub-expression you want to examine. | |
3080 For custom expression examination, and the powerful customizable | |
3081 pop-up examine selection, @xref{Custom Expression Examination}. | |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3082 |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3083 @cindex Printing expressions, on calling stack |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3084 @cindex Restrictions for expression printing |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3085 The same variable inspection commands work both in the IDL Shell and |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3086 IDLWAVE buffers, and even for variables at higher levels of the calling |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3087 stack. For instance, if you're stopped at a breakpoint in a routine, |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3088 you can examine the values of variables and expressions inside its |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3089 calling routine, and so on, all the way up through the calling stack. |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3090 Simply step up the stack, and print variables as you see them |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3091 (@pxref{Walking the Calling Stack}, for information on stepping back |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3092 through the calling stack). The following restrictions apply for all |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3093 levels except the current: |
27600 | 3094 |
3095 @itemize @bullet | |
3096 @item | |
3097 Array expressions must use the @samp{[ ]} index delimiters. Identifiers | |
3098 with a @samp{( )} will be interpreted as function calls. | |
3099 @item | |
3100 @cindex ROUTINE_NAMES, IDL procedure | |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3101 N.B.: printing values of expressions on higher levels of the calling |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3102 stack uses the @emph{unsupported} IDL routine @code{ROUTINE_NAMES}, |
88155 | 3103 which may or may not be available in future versions of IDL. Caveat |
3104 Examinor. | |
27600 | 3105 @end itemize |
3106 | |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3107 @defopt idlwave-shell-expression-face |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3108 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
|
3109 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
|
3110 the expression printed by IDL. |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3111 @end defopt |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3112 |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3113 @defopt idlwave-shell-output-face |
88155 | 3114 The face for @code{idlwave-shell-output-overlay}. |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3115 Allows to choose the font, color and other properties for the most |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3116 recent output of IDL when examining an expression." |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3117 @end defopt |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3118 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3119 @defopt idlwave-shell-separate-examine-output (@code{t}) |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3120 If non-@code{nil}, re-direct the output of examine commands to a special |
88155 | 3121 @file{*Examine*} buffer, instead of in the shell itself. |
27600 | 3122 @end defopt |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3123 |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3124 @node Custom Expression Examination, , Examining Variables, The IDLWAVE Shell |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3125 @section Custom Expression Examination |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3126 @cindex Expressions, custom examination |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3127 @cindex Custom expression examination |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3128 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3129 The variety of possible variable and expression examination commands is |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3130 endless (just look, for instance, at the keyword list to |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3131 @code{widget_info()}). Rather than attempt to include them all, IDLWAVE |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3132 provides two easy methods to customize your own commands, with a special |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3133 mouse examine command, and two macros for generating your own examine |
88155 | 3134 key and mouse bindings. |
3135 | |
3136 The most powerful and flexible mouse examine command of all is | |
3137 available on @kbd{C-S-Mouse-2}. Just as for all the other mouse | |
3138 examine commands, it permits click or drag expression selection, but | |
3139 instead of sending hard-coded commands to the shell, it pops-up a | |
3140 customizable selection list of examine functions to choose among, | |
3141 configured with the @code{idlwave-shell-examine-alist} | |
3142 variable@footnote{In Electric Debug Mode (@pxref{Electric Debug | |
3143 Mode}), the key @kbd{x} provides a single-character shortcut interface | |
3144 to the same examine functions for the expression at point or marked by | |
3145 the region.}. This variable is a list of key-value pairs (an | |
3146 @emph{alist} in Emacs parlance), where the key gives a name to be | |
3147 shown for the examine command, and the value is the command strings | |
3148 itself, in which the text @code{___} (three underscores) will be | |
3149 replaced by the selected expression before being sent to the shell. | |
3150 An example might be key @code{Structure Help} with value | |
3151 @code{help,___,/STRUCTURE}. In that case, you'd be prompted with | |
3152 @emph{Structure Help}, which might send something like | |
3153 @code{help,var,/STRUCTURE} to the shell for output. | |
3154 @code{idlwave-shell-examine-alist} comes configured by default with a | |
3155 large list of examine commands, but you can easily customize it to add | |
3156 your own. | |
3157 | |
3158 In addition to configuring the functions available to the pop-up mouse | |
3159 command, you can easily create your own customized bindings to inspect | |
3160 expressions using the two convenience macros | |
3161 @code{idlwave-shell-examine} and @code{idlwave-shell-mouse-examine}. | |
3162 These create keyboard or mouse-based custom inspections of variables, | |
3163 sharing all the same properties of the built-in examine commands. | |
3164 Both functions take a single string argument sharing the syntax of the | |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3165 @code{idlwave-shell-examine-alist} values, e.g.: |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3166 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3167 @lisp |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3168 (add-hook 'idlwave-shell-mode-hook |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3169 (lambda () |
88155 | 3170 (idlwave-shell-define-key-both [s-down-mouse-2] |
3171 (idlwave-shell-mouse-examine | |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3172 "print, size(___,/DIMENSIONS)")) |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3173 (idlwave-shell-define-key-both [f9] (idlwave-shell-examine |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3174 "print, size(___,/DIMENSIONS)")) |
88155 | 3175 (idlwave-shell-define-key-both [f10] (idlwave-shell-examine |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3176 "print,size(___,/TNAME)")) |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3177 (idlwave-shell-define-key-both [f11] (idlwave-shell-examine |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3178 "help,___,/STRUCTURE")))) |
88155 | 3179 @end lisp |
3180 | |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3181 @noindent Now pressing @key{f9}, or middle-mouse dragging with the |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3182 @key{SUPER} key depressed, will print the dimensions of the nearby or |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3183 highlighted expression. Pressing @key{f10} will give the type string, |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3184 and @key{f11} will show the contents of a nearby structure. As you can |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3185 see, the possibilities are only marginally finite. |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3186 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3187 @defopt idlwave-shell-examine-alist |
88155 | 3188 An alist of examine commands in which the keys name the command and |
3189 are displayed in the selection pop-up, and the values are custom IDL | |
3190 examine command strings to send, after all instances of @code{___} | |
3191 (three underscores) are replaced by the indicated expression. | |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3192 @end defopt |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3193 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3194 |
88155 | 3195 @node Acknowledgements, Sources of Routine Info, The IDLWAVE Shell, Top |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3196 @chapter Acknowledgements |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3197 @cindex Acknowledgements |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3198 @cindex Maintainer, of IDLWAVE |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3199 @cindex Authors, of IDLWAVE |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3200 @cindex Contributors, to IDLWAVE |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3201 @cindex Email address, of Maintainer |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3202 @cindex Thanks |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3203 |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3204 @noindent |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3205 The main contributors to the IDLWAVE package have been: |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3206 |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3207 @itemize @minus |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3208 @item |
34432
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
3209 @uref{mailto:chase@@att.com, @b{Chris Chase}}, the original author. |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
3210 Chris wrote @file{idl.el} and @file{idl-shell.el} and maintained them |
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
3211 for several years. |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3212 |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3213 @item |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3214 @uref{mailto:dominik@@astro.uva.nl, @b{Carsten Dominik}} was in charge |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3215 of the package from version 3.0, during which time he overhauled almost |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3216 everything, modernized IDLWAVE with many new features, and developed the |
41745 | 3217 manual. |
3218 | |
88155 | 3219 @item |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3220 @uref{mailto:jdsmith@@as.arizona.edu, @b{J.D. Smith}}, the current |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3221 maintainer, as of version 4.10, helped shape object method completion |
88155 | 3222 and most new features introduced in versions 4.x, and added |
3223 significant new capabilities for versions 5.x. | |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3224 @end itemize |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3225 |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3226 @noindent |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3227 The following people have also contributed to the development of IDLWAVE |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3228 with patches, ideas, bug reports and suggestions. |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3229 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3230 @itemize @minus |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3231 @item |
88155 | 3232 Ulrik Dickow <dickow__at__nbi.dk> |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3233 @item |
88155 | 3234 Eric E. Dors <edors__at__lanl.gov> |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3235 @item |
88155 | 3236 Stein Vidar H. Haugan <s.v.h.haugan__at__astro.uio.no> |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3237 @item |
88155 | 3238 David Huenemoerder <dph__at__space.mit.edu> |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3239 @item |
88155 | 3240 Kevin Ivory <Kevin.Ivory__at__linmpi.mpg.de> |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3241 @item |
88155 | 3242 Dick Jackson <dick__at__d-jackson.com> |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3243 @item |
88155 | 3244 Xuyong Liu <liu__at__stsci.edu> |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3245 @item |
88155 | 3246 Simon Marshall <Simon.Marshall__at__esrin.esa.it> |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3247 @item |
88155 | 3248 Craig Markwardt <craigm__at__cow.physics.wisc.edu> |
34432
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
3249 @item |
88155 | 3250 Laurent Mugnier <mugnier__at__onera.fr> |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3251 @item |
88155 | 3252 Lubos Pochman <lubos__at__rsinc.com> |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3253 @item |
88155 | 3254 Bob Portmann <portmann__at__al.noaa.gov> |
47440
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
3255 @item |
88155 | 3256 Patrick M. Ryan <pat__at__jaameri.gsfc.nasa.gov> |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3257 @item |
88155 | 3258 Marty Ryba <ryba__at__ll.mit.edu> |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3259 @item |
88155 | 3260 Phil Williams <williams__at__irc.chmcc.org> |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3261 @item |
88155 | 3262 Phil Sterne <sterne__at__dublin.llnl.gov> |
3263 @item | |
3264 Paul Sorenson <aardvark62__at__msn.com> | |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3265 @end itemize |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3266 |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3267 @noindent |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3268 Thanks to everyone! |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3269 |
88155 | 3270 @node Sources of Routine Info, HTML Help Browser Tips, Acknowledgements, Top |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3271 @appendix Sources of Routine Info |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3272 |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3273 @cindex Sources of routine information |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3274 In @ref{Routine Info} and @ref{Completion} we showed how IDLWAVE |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3275 displays the calling sequence and keywords of routines, and completes |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3276 routine names and keywords. For these features to work, IDLWAVE must |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3277 know about the accessible routines. |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3278 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3279 @menu |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3280 * Routine Definitions:: Where IDL Routines are defined. |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3281 * Routine Information Sources:: So how does IDLWAVE know about... |
88155 | 3282 * Catalogs:: |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3283 * Load-Path Shadows:: Routines defined in several places |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3284 * Documentation Scan:: Scanning the IDL Manuals |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3285 @end menu |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3286 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3287 @node Routine Definitions, Routine Information Sources, Sources of Routine Info, Sources of Routine Info |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3288 @appendixsec Routine Definitions |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3289 @cindex Routine definitions |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3290 @cindex IDL variable @code{!PATH} |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3291 @cindex @code{!PATH}, IDL variable |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3292 @cindex @code{CALL_EXTERNAL}, IDL routine |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3293 @cindex @code{LINKIMAGE}, IDL routine |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3294 @cindex External routines |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3295 |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3296 @noindent Routines which can be used in an IDL program can be defined in |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3297 several places: |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3298 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3299 @enumerate |
88155 | 3300 @item |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3301 @emph{Builtin routines} are defined inside IDL itself. The source |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3302 code of such routines is not available. |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3303 @item |
47440
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
3304 Routines which are @emph{part of the current program}, are defined in a |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
3305 file explicitly compiled by the user. This file may or may not be |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
3306 located on the IDL search path. |
88155 | 3307 @item |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3308 @emph{Library routines} are defined in files located on IDL's search |
47440
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
3309 path, and will not need to be manually compiled. When a library routine |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
3310 is called for the first time, IDL will find the source file and compile |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
3311 it dynamically. A special sub-category of library routines are the |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3312 @emph{system routines} distributed with IDL, and usually available in |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3313 the @file{lib} subdirectory of the IDL distribution. |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3314 @item |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3315 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
|
3316 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
|
3317 or included as dynamically loaded modules (DLMs). Currently IDLWAVE |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3318 cannot provide routine info and completion for such external routines. |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3319 @end enumerate |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3320 |
88155 | 3321 @node Routine Information Sources, Catalogs, Routine Definitions, Sources of Routine Info |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3322 @appendixsec Routine Information Sources |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3323 @cindex Routine info sources |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3324 @cindex Builtin list of routines |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3325 @cindex Updating routine info |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3326 @cindex Scanning buffers for routine info |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3327 @cindex Buffers, scanning for routine info |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3328 @cindex Shell, querying for routine info |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3329 |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3330 @noindent To maintain the most comprehensive information about all IDL |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3331 routines on a system, IDLWAVE collects data from many sources: |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3332 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3333 @enumerate |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3334 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3335 @item |
88155 | 3336 It has a @emph{builtin list} with information about the routines IDL |
3337 ships with. IDLWAVE @value{VERSION} is distributed with a list of | |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3338 @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
|
3339 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
|
3340 by scanning the IDL manuals and is stored in the file |
88155 | 3341 @file{idlw-rinfo.el}. @xref{Documentation Scan}, for information on |
3342 how to regenerate this file for new versions of IDL. | |
3343 | |
3344 @item | |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3345 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
|
3346 routine definitions. This is done automatically when routine |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3347 information or completion is first requested by the user. Each new |
88155 | 3348 buffer and each buffer saved after making changes is also scanned. The |
3349 command @kbd{C-c C-i} (@code{idlwave-update-routine-info}) can be used | |
3350 at any time to rescan all buffers. | |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3351 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3352 @item |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3353 If you have an IDLWAVE-Shell running in the Emacs session, IDLWAVE will |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3354 @emph{query the shell} for compiled routines and their arguments. This |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3355 happens automatically when routine information or completion is first |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3356 requested by the user, and each time an Emacs buffer is compiled with |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3357 @kbd{C-c C-d C-c}. Though rarely necessary, the command @kbd{C-c C-i} |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3358 (@code{idlwave-update-routine-info}) can be used to update the shell |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3359 routine data. |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3360 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3361 @item |
88155 | 3362 Many popular libraries are distributed with routine information |
3363 already scanned into @emph{library catalogs} (@pxref{Library | |
3364 Catalogs}). These per-directory catalog files can also be built by | |
3365 the user with the supplied @file{idlwave_catalog} tool. | |
3366 | |
3367 @item | |
3368 IDLWAVE can scan selected directories of source files and store the | |
3369 result in a single @emph{user catalog} file which will be | |
3370 automatically loaded just like @file{idlw-rinfo.el}. @xref{User | |
3371 Catalog}, for information on how to scan files in this way. | |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3372 @end enumerate |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3373 |
88155 | 3374 Loading routine and catalog information can be a time consuming process, |
3375 especially over slow networks. Depending on the system and network | |
3376 configuration it could take up to 30 seconds. In order to minimize the | |
3377 wait time upon your first completion or routine info command in a | |
3378 session, IDLWAVE uses Emacs idle time to do the initialization in six | |
3379 steps, yielding to user input in between. If this gets into your way, | |
3380 set the variable @code{idlwave-init-rinfo-when-idle-after} to 0 (zero). | |
3381 The more routines documented in library and user catalogs, the slower | |
3382 the loading will be, so reducing this number can help alleviate any long | |
3383 load times. | |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3384 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3385 @defopt idlwave-init-rinfo-when-idle-after (@code{10}) |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3386 Seconds of idle time before routine info is automatically initialized. |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3387 @end defopt |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3388 |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3389 @defopt idlwave-scan-all-buffers-for-routine-info (@code{t}) |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3390 Non-@code{nil} means scan all buffers for IDL programs when updating |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3391 info. |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3392 @end defopt |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3393 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3394 @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
|
3395 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
|
3396 @end defopt |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3397 |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3398 @defopt idlwave-auto-routine-info-updates |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3399 Controls under what circumstances routine info is updated automatically. |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3400 @end defopt |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3401 |
88155 | 3402 @ifhtml |
3403 <A NAME="CATALOGS"></A> | |
3404 @end ifhtml | |
3405 @node Catalogs, Load-Path Shadows, Routine Information Sources, Sources of Routine Info | |
3406 @appendixsec Catalogs | |
3407 @cindex Catalogs | |
3408 | |
3409 @emph{Catalogs} are files containing scanned information on individual | |
3410 routines, including arguments and keywords, calling sequence, file path, | |
3411 class and procedure vs. function type, etc. They represent a way of | |
3412 extending the internal built-in information available for IDL system | |
3413 routines (@pxref{Routine Info}) to other source collections. | |
3414 | |
3415 Starting with version 5.0, there are two types of catalogs available | |
3416 with IDLWAVE. The traditional @emph{user catalog} and the newer | |
3417 @emph{library catalogs}. Although they can be used interchangeably, the | |
3418 library catalogs are more flexible, and preferred. There are few | |
3419 occasions when a user catalog might be preferred --- read below. Both | |
3420 types of catalogs can coexist without causing problems. | |
3421 | |
3422 To facilitate the catalog systems, IDLWAVE stores information it gathers | |
3423 from the shell about the IDL search paths, and can write this | |
3424 information out automatically, or on-demand (menu @code{Debug->Save Path | |
3425 Info}). On systems with no shell from which to discover the path | |
3426 information (e.g. Windows), a library path must be specified in | |
3427 @code{idlwave-library-path} to allow library catalogs to be located, and | |
3428 to setup directories for user catalog scan (@pxref{User Catalog} for | |
3429 more on this variable). | |
3430 | |
3431 @defopt idlwave-auto-write-path (@code{t}) | |
3432 Write out information on the !PATH and !DIR paths from IDL automatically | |
3433 when they change and when the Shell is closed. These paths are needed | |
3434 to locate library catalogs. | |
3435 @end defopt | |
3436 | |
3437 @defopt idlwave-library-path | |
3438 IDL library path for Windows and MacOS. Not needed under Unix/MacOSX. | |
3439 @end defopt | |
3440 | |
3441 @defopt idlwave-system-directory | |
3442 The IDL system directory for Windows and MacOS. Not needed under | |
3443 Unix/MacOSX (obtained from the Shell). | |
3444 @end defopt | |
3445 | |
3446 @defopt idlwave-config-directory (@file{~/.idlwave}) | |
3447 Default path where IDLWAVE saves configuration information and any | |
3448 user catalog. | |
3449 @end defopt | |
3450 | |
3451 @menu | |
3452 * Library Catalogs:: | |
3453 * User Catalog:: | |
3454 @end menu | |
3455 | |
3456 @ifhtml | |
3457 <A NAME="LIBRARY_CATALOGS"></A> | |
3458 @end ifhtml | |
3459 @node Library Catalogs, User Catalog, Catalogs, Catalogs | |
3460 @appendixsubsec Library Catalogs | |
3461 @cindex @file{.idlwave_catalog} | |
3462 @cindex Library catalogs | |
3463 @cindex @code{idlwave_catalog} | |
3464 | |
3465 Library catalogs are files named @file{.idlwave_catalog} stored in | |
3466 directories containing @code{.pro} routine files. They are discovered | |
3467 on the IDL search path and loaded automatically when routine information | |
3468 is read. Each catalog file documents the routines found in that | |
3469 directory --- one catalog per directory. Every catalog has a library | |
3470 name associated with it (e.g. @emph{AstroLib}). This name will be shown | |
3471 briefly when the catalog is found, and in the routine info of routines | |
3472 it documents. | |
3473 | |
3474 Many popular libraries of routines are shipped with IDLWAVE catalog | |
3475 files by default, and so will be automatically discovered. Library | |
3476 catalogs are scanned externally to Emacs using a tool provided with | |
3477 IDLWAVE. Each catalog can be re-scanned independently of any other. | |
3478 Catalogs can easily be made available system-wide with a common source | |
3479 repository, providing uniform routine information, and lifting the | |
3480 burden of scanning from the user (who may not even know they're using a | |
3481 scanned catalog). Since all catalogs are independent, they can be | |
3482 re-scanned automatically to gather updates, e.g. in a @file{cron} job. | |
3483 Scanning is much faster than with the built-in user catalog method. One | |
3484 minor disadvantage: the entire IDL search path is scanned for catalog | |
3485 files every time IDLWAVE starts up, which might be slow over a network. | |
3486 | |
3487 A Perl tool to create library catalogs is distributed with IDLWAVE: | |
3488 @code{idlwave_catalog}. It can be called quite simply: | |
3489 @example | |
3490 idlwave_catalog MyLib | |
3491 @end example | |
3492 | |
3493 @noindent This would scan all directories recursively beneath the current and | |
3494 populate them with @file{.idlwave_catalog} files, tagging the routines | |
3495 found with the name library ``MyLib''. The full usage information: | |
3496 | |
3497 @example | |
3498 Usage: idlwave_catalog [-l] [-v] [-d] [-s] [-f] [-h] libname | |
3499 libname - Unique name of the catalog (4 or more alphanumeric | |
3500 characters). | |
3501 -l - Scan local directory only, otherwise recursively | |
3502 catalog all directories at or beneath this one. | |
3503 -v - Print verbose information. | |
3504 -d - Instead of scanning, delete all .idlwave_catalog files | |
3505 here or below. | |
3506 -s - Be silent. | |
3507 -f - Force overwriting any catalogs found with a different | |
3508 library name. | |
3509 -h - Print this usage. | |
3510 @end example | |
3511 | |
3512 To re-load the library catalogs on the IDL path, force a system routine | |
3513 info update using a single prefix to @code{idlwave-update-routine-info}: | |
3514 @kbd{C-u C-c C-i}. | |
3515 | |
3516 @defopt idlwave-use-library-catalogs (@code{t}) | |
3517 Whether to search for and load library catalogs. Only disable if | |
3518 performance is a problem and the catalogs are not needed. | |
3519 @end defopt | |
3520 | |
3521 @node User Catalog, , Library Catalogs, Catalogs | |
3522 @appendixsubsec User Catalog | |
3523 @cindex User catalog | |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3524 @cindex IDL library routine info |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3525 @cindex Windows |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3526 @cindex MacOS |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3527 @cindex IDL variable @code{!DIR} |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3528 @cindex @code{!DIR}, IDL variable |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3529 |
88155 | 3530 The user catalog is the old routine catalog system. It is produced |
3531 within Emacs, and stored in a single file in the user's home directory | |
3532 (@file{.idlwave/idlusercat.el} by default). Although library catalogs | |
3533 are more flexible, there may be reasons to prefer a user catalog | |
3534 instead, including: | |
3535 | |
3536 @itemize @bullet | |
3537 @item The scan is internal to Emacs, so you don't need a working Perl | |
3538 installation, as you do for library catalogs. | |
3539 @item Can be used to scan directories for which the user has no write | |
3540 privileges. | |
3541 @item Easy widget-based path selection. | |
3542 @end itemize | |
3543 | |
3544 However, no routine info is available in the user catalog by default; | |
3545 the user must actively complete a scan. In addition, this type of | |
3546 catalog is all or nothing: if a single routine changes, the entire | |
3547 catalog must be rescanned to update it. Creating the user catalog is | |
3548 also much slower than scanning library catalogs. | |
3549 | |
3550 You can scan any of the directories on the currently known path. Under | |
3551 Windows and MacOS (not OSX), you need to specify the IDL search path in | |
3552 the variable @code{idlwave-library-path}, and the location of the IDL | |
3553 directory (the value of the @code{!DIR} system variable) in the variable | |
3554 @code{idlwave-system-directory}, like this@footnote{The initial @samp{+} | |
3555 leads to recursive expansion of the path, just like in IDL}: | |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3556 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3557 @lisp |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3558 (setq idlwave-library-path |
88155 | 3559 '("+c:/RSI/IDL56/lib/" "+c:/user/me/idllibs")) |
3560 (setq idlwave-system-directory "c:/RSI/IDL56/") | |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3561 @end lisp |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3562 |
88155 | 3563 @noindent Under GNU and UNIX, these values will be automatically gathered from |
3564 the IDLWAVE shell. | |
3565 | |
3566 The command @kbd{M-x idlwave-create-user-catalog-file} (or the menu item | |
3567 @samp{IDLWAVE->Routine Info->Select Catalog Directories} can then be | |
3568 used to create a user catalog. It brings up a widget in which you can | |
3569 select some or all directories on the search path. Directories which | |
3570 already contain a library catalog are marked with @samp{[LIB]}, and need | |
3571 not be scanned (although there is no harm if you do so, other than the | |
3572 additional memory used for the duplication). | |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3573 |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3574 After selecting directories, click on the @w{@samp{[Scan & Save]}} |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3575 button in the widget to scan all files in the selected directories and |
88155 | 3576 write out the resulting routine information. In order to update the |
3577 library information using the directory selection, call the command | |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3578 @code{idlwave-update-routine-info} with a double prefix argument: |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3579 @w{@kbd{C-u C-u C-c C-i}}. This will rescan files in the previously |
88155 | 3580 selected directories, write an updated version of the user catalog file |
3581 and rebuild IDLWAVE's internal lists. If you give three prefix | |
3582 arguments @w{@kbd{C-u C-u C-u C-c C-i}}, updating will be done with a | |
3583 background job@footnote{Unix systems only, I think.}. You can continue | |
3584 to work, and the library catalog will be re-read when it is ready. If | |
3585 you find you need to update the user catalog often, you should consider | |
3586 building a library catalog for your routines instead (@pxref{Library | |
3587 Catalogs}). | |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3588 |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3589 @defopt idlwave-special-lib-alist |
88155 | 3590 Alist of regular expressions matching special library directories for |
3591 labeling in routine-info display. | |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3592 @end defopt |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3593 |
88155 | 3594 @node Load-Path Shadows, Documentation Scan, Catalogs, Sources of Routine Info |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3595 @appendixsec Load-Path Shadows |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3596 @cindex Load-path shadows |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3597 @cindex Shadows, load-path |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3598 @cindex Duplicate routines |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3599 @cindex Multiply defined routines |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3600 @cindex Routine definitions, multiple |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3601 @cindex Application, testing for shadowing |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3602 @cindex Buffer, testing for shadowing |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3603 |
88155 | 3604 IDLWAVE can compile a list of routines which are (re-)defined in more |
3605 than one file. Since one definition will hide (shadow) the others | |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3606 depending on which file is compiled first, such multiple definitions are |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3607 called "load-path shadows". IDLWAVE has several routines to scan for |
34432
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
3608 load path shadows. The output is placed into the special buffer |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3609 @file{*Shadows*}. The format of the output is identical to the source |
34432
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
3610 section of the routine info buffer (@pxref{Routine Info}). The |
88155 | 3611 different definitions of a routine are ordered by @emph{likelihood of |
3612 use}. So the first entry will be most likely the one you'll get if an | |
3613 unsuspecting command uses that routine. Before listing shadows, you | |
3614 should make sure that routine info is up-to-date by pressing @kbd{C-c | |
3615 C-i}. Here are the different routines (also available in the Menu | |
3616 @samp{IDLWAVE->Routine Info}): | |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3617 |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3618 @table @asis |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3619 @item @kbd{M-x idlwave-list-buffer-load-path-shadows} |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3620 This commands checks the names of all routines defined in the current |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3621 buffer for shadowing conflicts with other routines accessible to |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3622 IDLWAVE. The command also has a key binding: @kbd{C-c C-b} |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3623 @item @kbd{M-x idlwave-list-shell-load-path-shadows}. |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3624 Checks all routines compiled under the shell for shadowing. This is |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3625 very useful when you have written a complete application. Just compile |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3626 the application, use @code{RESOLVE_ALL} to compile any routines used by |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3627 your code, update the routine info inside IDLWAVE with @kbd{C-c C-i} and |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3628 then check for shadowing. |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3629 @item @kbd{M-x idlwave-list-all-load-path-shadows} |
34432
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
3630 This command checks all routines accessible to IDLWAVE for conflicts. |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3631 @end table |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3632 |
88155 | 3633 For these commands to work fully you need to scan the entire load path |
3634 in either a user or library catalog. Also, IDLWAVE should be able to | |
3635 distinguish between the system library files (normally installed in | |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3636 @file{/usr/local/rsi/idl/lib}) and any site specific or user specific |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3637 files. Therefore, such local files should not be installed inside the |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3638 @file{lib} directory of the IDL directory. This is also advisable for |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3639 many other reasons. |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3640 |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3641 @cindex Windows |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3642 @cindex MacOS |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3643 @cindex IDL variable @code{!DIR} |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3644 @cindex @code{!DIR}, IDL variable |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3645 Users of Windows and MacOS also must set the variable |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3646 @code{idlwave-system-directory} to the value of the @code{!DIR} system |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3647 variable in IDL. IDLWAVE appends @file{lib} to the value of this |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3648 variable and assumes that all files found on that path are system |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3649 routines. |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3650 |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3651 Another way to find out if a specific routine has multiple definitions |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3652 on the load path is routine info display (@pxref{Routine Info}). |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3653 |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3654 @node Documentation Scan, , Load-Path Shadows, Sources of Routine Info |
88155 | 3655 @appendixsec Documentation Scan |
3656 @cindex @file{get_html_rinfo} | |
27186
eb645a473bf8
New version is consistent with the changed names.
Carsten Dominik <dominik@science.uva.nl>
parents:
26960
diff
changeset
|
3657 @cindex @file{idlw-rinfo.el} |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3658 @cindex Scanning the documentation |
27186
eb645a473bf8
New version is consistent with the changed names.
Carsten Dominik <dominik@science.uva.nl>
parents:
26960
diff
changeset
|
3659 @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
|
3660 |
88155 | 3661 IDLWAVE derives its knowledge about system routines from the IDL |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3662 manuals. The file @file{idlw-rinfo.el} contains the routine information |
88155 | 3663 for the IDL system routines, and links to relevant sections of the HTML |
3664 documentation. The Online Help feature of IDLWAVE requires HTML | |
3665 versions of the IDL manuals to be available. | |
3666 | |
3667 The HTML files and related images can be produced from the | |
3668 @file{idl.chm} HTMLHelp file distributed with IDL using the free | |
3669 Microsoft HTML Help Workshop. If you are lucky, the maintainer of | |
3670 IDLWAVE will always have access to the newest version of IDL and | |
3671 provide updates. The IDLWAVE distribution also contains the Perl | |
3672 program @file{get_html_rinfo} which constructs the | |
3673 @file{idlw-rinfo.el} file by scanning the HTML documents produced from | |
3674 the IDL documentation. Instructions on how to use | |
3675 @file{get_html_rinfo} are in the program itself. | |
3676 | |
3677 @node HTML Help Browser Tips, Configuration Examples, Sources of Routine Info, Top | |
3678 @appendix HTML Help Browser Tips | |
3679 @cindex Browser Tips | |
3680 | |
3681 There are a wide variety of possible browsers to use for displaying | |
3682 the online HTML help available with IDLWAVE (starting with version | |
3683 5.0). Since IDLWAVE runs on a many different system types, a single | |
3684 browser configuration is not possible, but choices abound. | |
3685 | |
3686 Unfortunately, the HTML manuals decompiled from the original | |
3687 source contain formatting structures which Netscape 4.x does not | |
3688 handle well, though they are still readable. A much better choice is | |
3689 Mozilla, or one of the Mozilla-derived browsers such as | |
3690 @uref{http://galeon.sourceforge.net/,Galeon} (GNU/Linux), | |
3691 @uref{http://www.mozilla.org/projects/camino/,Camino} (MacOSX), or | |
3692 @uref{http://www.mozilla.org/projects/firebird/,Firebird} (all | |
3693 platforms). Newer versions of Emacs provide a browser-function choice | |
3694 @code{browse-url-gnome-moz} which uses the Gnome-configured browser. | |
3695 | |
3696 Note that the HTML files decompiled from Microsoft Help sources | |
3697 contain specific references to the @samp{Symbol} font, which by default | |
3698 is not permitted in normal encodings (it's invalid, technically). Though | |
3699 it only impacts a few symbols, you can trick Mozilla-based browsers into | |
3700 recognizing @samp{Symbol} by following the directions | |
3701 @uref{http://hutchinson.belmont.ma.us/tth/Xfonts.html, here}. With this | |
3702 fix in place, HTML help pages look almost identical to their PDF | |
3703 equivalents (yet can be bookmarked, browsed as history, searched, etc.). | |
3704 | |
3705 @noindent Individual platform recommendations: | |
3706 | |
3707 @itemize @bullet | |
3708 @item Windows: The native Microsoft HTMLHelp browser is preferred, | |
3709 with even better results using the free | |
3710 @uref{http://www.keyworks.net/keyhh.htm,@code{KEYHH}} program to | |
3711 permit IDL help to be targetted to a single window. To use HTMLHelp, | |
3712 specify @code{idlwave-help-use-hh} as @code{'hh} or @code{'keyhh}. | |
3713 One bonus: since IDL is shipped with the @file{idl.chm} help file, you | |
3714 don't need to download the HTML help package. @xref{Help with HTML | |
3715 Documentation}. | |
3716 @item Unix/MacOSX: The @uref{http://www.w3m.org,@code{w3m}} browser | |
3717 and its associated | |
3718 @uref{http://emacs-w3m.namazu.org/,@code{emacs-w3m}} emacs mode | |
3719 provide in-buffer browsing with image display, and excellent speed and | |
3720 formatting. Both the Emacs mode and the browser itself must be | |
3721 downloaded separately. To use this browser, include | |
3722 | |
3723 @lisp | |
3724 (setq idlwave-help-browser-function 'w3m-browse-url) | |
3725 @end lisp | |
3726 | |
3727 in your @file{.emacs}. Setting a few other nice @code{w3m} options | |
3728 cuts down on screen clutter: | |
3729 | |
3730 @lisp | |
3731 (setq w3m-use-tab nil | |
3732 w3m-use-header-line nil | |
3733 w3m-use-toolbar nil) | |
3734 @end lisp | |
3735 | |
3736 If you use a dedicated frame for help, you might want to add the | |
3737 following, to get consistent behavior with the @kbd{q} key: | |
3738 | |
3739 @lisp | |
3740 ;; Close my help window when w3m closes. | |
3741 (defadvice w3m-close-window (after idlwave-close activate) | |
3742 (if (boundp 'idlwave-help-frame) | |
3743 (idlwave-help-quit))) | |
3744 @end lisp | |
3745 | |
3746 Note that you can open the file in an external browser from within | |
3747 @code{w3m} using @kbd{M}. | |
3748 @end itemize | |
3749 | |
3750 @node Configuration Examples, Windows and MacOS, HTML Help Browser Tips, Top | |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3751 @appendix Configuration Examples |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3752 @cindex Configuration examples |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3753 @cindex Example configuration |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3754 @cindex @file{.emacs} |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3755 @cindex Default settings, of options |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3756 @cindex Interview, with the maintainer |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3757 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3758 @noindent |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3759 @b{Question:} You have all these complicated configuration options in |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3760 your package, but which ones do @emph{you} as the maintainer actually |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3761 set in your own configuration? |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3762 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3763 @noindent |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3764 @b{Answer:} Not many, beyond custom key bindings. I set most defaults |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3765 the way that seems best. However, the default settings do not turn on |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3766 features which: |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3767 |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3768 @itemize @minus |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3769 @item |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3770 are not self-evident (i.e. too magic) when used by an unsuspecting user. |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3771 @item |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3772 are too intrusive. |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3773 @item |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3774 will not work properly on all Emacs installations. |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3775 @item |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3776 break with widely used standards. |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3777 @item |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3778 use function or other non-standard keys. |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3779 @item |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3780 are purely personal customizations, like additional key bindings, and |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3781 library names. |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3782 @end itemize |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3783 |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3784 @noindent To see what I mean, here is the @emph{entire} configuration |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3785 the old maintainer had in his @file{.emacs}: |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3786 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3787 @lisp |
34432
538246e4d1bc
Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
30009
diff
changeset
|
3788 (setq idlwave-shell-debug-modifiers '(control shift) |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3789 idlwave-store-inquired-class t |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3790 idlwave-shell-automatic-start t |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3791 idlwave-main-block-indent 2 |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3792 idlwave-init-rinfo-when-idle-after 2 |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3793 idlwave-help-dir "~/lib/emacs/idlwave" |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3794 idlwave-special-lib-alist '(("/idl-astro/" . "AstroLib") |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3795 ("/jhuapl/" . "JHUAPL-Lib") |
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3796 ("/dominik/lib/idl/" . "MyLib"))) |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3797 @end lisp |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3798 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3799 However, if you are an Emacs power-user and want IDLWAVE to work |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3800 completely differently, you can change almost every aspect of it. Here |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3801 is an example of a much more extensive configuration of IDLWAVE. The |
29773
bdbce902ea81
Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents:
29713
diff
changeset
|
3802 user is King! |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3803 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3804 @example |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3805 ;;; Settings for IDLWAVE mode |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3806 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3807 (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
|
3808 (setq idlwave-main-block-indent 3) |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3809 (setq idlwave-end-offset -3) |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3810 (setq idlwave-continuation-indent 1) |
88155 | 3811 (setq idlwave-begin-line-comment "^;[^;]") ; Leave ";" but not ";;" |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3812 ; anchored at start of line. |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3813 (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
|
3814 (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
|
3815 (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
|
3816 (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
|
3817 ; (with abbrevs only) |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3818 (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
|
3819 (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
|
3820 (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
|
3821 (setq idlwave-abbrev-move t) ; Allow abbrevs to move point |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3822 (setq idlwave-query-class '((method-default . nil) ; No query for method |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3823 (keyword-default . nil); or keyword completion |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3824 ("INIT" . t) ; except for these |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3825 ("CLEANUP" . t) |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3826 ("SETPROPERTY" .t) |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3827 ("GETPROPERTY" .t))) |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3828 |
88155 | 3829 ;; Using w3m for help (must install w3m and emacs-w3m) |
3830 (autoload 'w3m-browse-url "w3m" "Interface for w3m on Emacs." t) | |
3831 (setq idlwave-help-browser-function 'w3m-browse-url | |
3832 w3m-use-tab nil ; no tabs, location line, or toolbar | |
3833 w3m-use-header-line nil | |
3834 w3m-use-toolbar nil) | |
3835 | |
3836 ;; Close my help window or frame when w3m closes with `q' | |
3837 (defadvice w3m-close-window (after idlwave-close activate) | |
3838 (if (boundp 'idlwave-help-frame) | |
3839 (idlwave-help-quit))) | |
3840 | |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3841 ;; 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
|
3842 (add-hook 'idlwave-mode-hook |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3843 (lambda () |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3844 (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
|
3845 ;; Run other functions here |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3846 (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
|
3847 (idlwave-auto-fill-mode 0) ; Turn off auto filling |
88155 | 3848 (setq idlwave-help-browser-function 'browse-url-w3) |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3849 |
46534
9059071c4fa9
Updated with patches from 1.8-1.17
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46530
diff
changeset
|
3850 ;; Pad with 1 space (if -n is used then make the |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3851 ;; 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
|
3852 ;; instead of 1. |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3853 (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
|
3854 (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
|
3855 (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
|
3856 (idlwave-action-and-binding "&" '(idlwave-surround 1 1)) |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3857 |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3858 ;; 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
|
3859 (idlwave-action-and-binding "," '(idlwave-surround nil 1)) |
27600 | 3860 (idlwave-action-and-binding "&" '(idlwave-surround 1 1)) |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3861 |
27600 | 3862 ;; Pad only after `->', remove any space before the arrow |
3863 (idlwave-action-and-binding "->" '(idlwave-surround 0 -1 nil 2)) | |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3864 |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3865 ;; Set some personal bindings |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3866 ;; (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
|
3867 (local-set-key "," 'self-insert-command) |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3868 (local-set-key [f5] 'idlwave-shell-break-here) |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3869 (local-set-key [f6] 'idlwave-shell-clear-current-bp) |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3870 |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3871 ;; 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
|
3872 ;; 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
|
3873 ;; 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
|
3874 (local-set-key "\n" 'idlwave-newline) |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3875 ;; (local-set-key "\C-j" 'idlwave-newline) ; My preference. |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3876 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3877 ;; Some personal abbreviations |
88155 | 3878 (define-abbrev idlwave-mode-abbrev-table |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3879 (concat idlwave-abbrev-start-char "wb") "widget_base()" |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3880 (idlwave-keyword-abbrev 1)) |
88155 | 3881 (define-abbrev idlwave-mode-abbrev-table |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3882 (concat idlwave-abbrev-start-char "on") "obj_new()" |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3883 (idlwave-keyword-abbrev 1)) |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3884 )) |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3885 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3886 ;;; Settings for IDLWAVE SHELL mode |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3887 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3888 (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
|
3889 (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
|
3890 (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
|
3891 (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
|
3892 (setq idlwave-shell-process-name "wave") |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3893 (setq idlwave-shell-use-toolbar nil) ; No toolbar |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3894 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3895 ;; Most shell interaction settings can be done from the shell-mode-hook. |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3896 (add-hook 'idlwave-shell-mode-hook |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3897 (lambda () |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3898 ;; Set up some custom key and mouse examine commands |
88155 | 3899 (idlwave-shell-define-key-both [s-down-mouse-2] |
3900 (idlwave-shell-mouse-examine | |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3901 "print, size(___,/DIMENSIONS)")) |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3902 (idlwave-shell-define-key-both [f9] (idlwave-shell-examine |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3903 "print, size(___,/DIMENSIONS)")) |
88155 | 3904 (idlwave-shell-define-key-both [f10] (idlwave-shell-examine |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3905 "print,size(___,/TNAME)")) |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3906 (idlwave-shell-define-key-both [f11] (idlwave-shell-examine |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3907 "help,___,/STRUCTURE")))) |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3908 @end example |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
3909 |
47440
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
3910 @ifhtml |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
3911 <A NAME="WIN_MAC"></A> |
0e5a022947e9
Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46918
diff
changeset
|
3912 @end ifhtml |
88155 | 3913 @node Windows and MacOS, Troubleshooting, Configuration Examples, Top |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3914 @appendix Windows and MacOS |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3915 @cindex Windows |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3916 @cindex MacOS |
88155 | 3917 @cindex MacOSX |
3918 | |
3919 IDLWAVE was developed on a UNIX system. However, thanks to the | |
3920 portability of Emacs, much of IDLWAVE does also work under different | |
3921 operating systems like Windows (with NTEmacs or NTXEmacs) or MacOS. | |
3922 | |
3923 The only real problem is that there is no command-line | |
3924 version of IDL for Windows or MacOS(<=9) with which IDLWAVE can | |
3925 interact. As a result, the IDLWAVE Shell | |
3926 does not work and you have to rely on IDLDE to run and debug your | |
3927 programs. However, editing IDL source files with Emacs/IDLWAVE works | |
3928 with all bells and whistles, including routine info, completion and fast | |
3929 online help. Only a small amount of additional information must be | |
3930 specified in your @file{.emacs} file: the path names which, on a UNIX | |
3931 system, are automatically gathered by talking to the IDL program. | |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3932 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3933 Here is an example of the additional configuration needed for a Windows |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3934 system. I am assuming that IDLWAVE has been installed in |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3935 @w{@samp{C:\Program Files\IDLWAVE}} and that IDL is installed in |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3936 @w{@samp{C:\RSI\IDL55}}. |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3937 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3938 @lisp |
88155 | 3939 ;; location of the lisp files (needed if IDLWAVE is not part of |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3940 ;; the X/Emacs installation) |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3941 (setq load-path (cons "c:/program files/IDLWAVE" load-path)) |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3942 |
88155 | 3943 ;; The location of the IDL library files, both standard and your own. |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3944 ;; note that the initial "+" expands the path recursively |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3945 (setq idlwave-library-path |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3946 '("+c:/RSI/IDL55/lib/" "+c:/user/me/idllibs" )) |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3947 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3948 ;; location of the IDL system directory (try "print,!DIR") |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3949 (setq idlwave-system-directory "c:/RSI/IDL55/") |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3950 |
88155 | 3951 ;; specify using the HTMLHelp documentation for online help, with the |
3952 ;; KEYHH helper routine (Windows only) | |
3953 (setq idlwave-use-hh 'keyhh) | |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3954 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3955 ;; file in which to store the user catalog info |
88155 | 3956 (setq idlwave-user-catalog-file "c:/IDLWAVE/idlcat.el") |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3957 @end lisp |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3958 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3959 @noindent Furthermore, Windows sometimes tries to outsmart you --- make |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3960 sure you check the following things: |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3961 |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3962 @itemize @bullet |
88155 | 3963 @item When you download the IDLWAVE distribution, make sure you save the |
3964 file under the names @file{idlwave.tar.gz}. | |
46527
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3965 @item M-TAB switches among running programs --- use Esc-TAB |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3966 instead. |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3967 @item Other issues as yet unnamed... |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3968 @end itemize |
a687c07c44a6
Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
41745
diff
changeset
|
3969 |
88155 | 3970 Windows users who'd like to make use of IDLWAVE's context-aware HTML |
3971 help can skip the browser and use the HTMLHelp functionality directly. | |
3972 @xref{Help with HTML Documentation}. | |
3973 | |
3974 @ifhtml | |
3975 <A NAME="TROUBLE"></A> | |
3976 @end ifhtml | |
3977 @node Troubleshooting, Index, Windows and MacOS, Top | |
3978 @appendix Troubleshooting | |
3979 @cindex Troubleshooting | |
3980 | |
3981 Although IDLWAVE usually installs and works without difficulty, a few | |
3982 common problems and their solutions are documented below. | |
3983 | |
3984 @enumerate | |
3985 | |
3986 @item @strong{Whenever an IDL error occurs or a breakpoint is hit, I get | |
3987 errors or strange behavior when I try to type anything into some of my | |
3988 IDLWAVE buffers.} | |
3989 | |
3990 This is a @emph{feature}, not an error. You're in @emph{Electric | |
3991 Debug Mode} (@pxref{Electric Debug Mode}). You should see | |
3992 @code{*Debugging*} in the mode-line. The buffer is read-only and all | |
3993 debugging and examination commands are available as single keystrokes; | |
3994 @kbd{C-?} lists these shortcuts. Use @kbd{q} to quit the mode, and | |
3995 customize the variable @code{idlwave-shell-automatic-electric-debug} | |
3996 if you prefer not to enter electric debug on breakpoints@dots{} but | |
3997 you really should try it before you disable it! You can also | |
3998 customize this variable to enter debug mode when errors are | |
3999 encountered too. | |
4000 | |
4001 @item @strong{I get errors like @samp{Searching for program: no such | |
4002 file or directory, idl} when attempting to start the IDL shell.} | |
4003 | |
4004 IDLWAVE needs to know where IDL is in order to run it as a process. | |
4005 By default, it attempts to invoke it simply as @samp{idl}, which | |
4006 presumes such an executable is on your search path. You need to | |
4007 ensure @samp{idl} is on your @samp{$PATH}, or specify the full | |
4008 pathname to the idl program with the variable | |
4009 @code{idlwave-shell-explicit-file-name}. Note that you may need to | |
4010 set your shell search path in two places when running Emacs as an Aqua | |
4011 application with MacOSX; see the next topic. | |
4012 | |
4013 @item @strong{IDLWAVE is disregarding my @samp{IDL_PATH} which I set | |
4014 under MacOSX} | |
4015 | |
4016 If you run Emacs directly as an Aqua application, rather than from the | |
4017 console shell, the environment is set not from your usual shell | |
4018 configuration files (e.g. @file{.cshrc}), but from the file | |
4019 @file{~/.MacOSX/environment.plist}. Either include your path settings | |
4020 there, or start Emacs and IDLWAVE from the shell. | |
4021 | |
4022 @item @strong{I get errors like @samp{Symbol's function is void: | |
4023 overlayp} when trying to start the shell in XEmacs} | |
4024 | |
4025 You don't have the @samp{fsf-compat} package installed, which IDLWAVE | |
4026 needs to run under XEmacs. Install it and, if necessary, insert | |
4027 @code{(require 'overlay)} in your @file{.emacs}. | |
4028 | |
4029 @item @strong{I'm getting errors like @samp{Symbol's value as variable is void: | |
4030 cl-builtin-gethash} on completion or routine info.} | |
4031 | |
4032 This error arises if you upgraded Emacs from 20.x to 21.x without | |
4033 re-installing IDLWAVE. Old Emacs and new Emacs are not byte-compatible | |
4034 in compiled lisp files. Presumably, you kept the original .elc files in | |
4035 place, and this is the source of the error. If you recompile (or just | |
4036 "make; make install") from source, it should resolve this problem. | |
4037 Another option is to recompile the @file{idlw*.el} files by hand using | |
4038 @kbd{M-x byte-compile-file}. | |
4039 | |
4040 @item @strong{@kbd{M-@key{TAB}} doesn't complete words, it switches | |
4041 windows on my desktop.} | |
4042 | |
4043 Your system is trapping @kbd{M-@key{TAB}} and using it for its own | |
4044 nefarious purposes: Emacs never sees the keystrokes. On many Unix | |
4045 systems, you can reconfigure your window manager to use another key | |
4046 sequence for switching among windows. Another option is to use the | |
4047 equivalent sequence @kbd{@key{ESC}-@key{TAB}}. | |
4048 | |
4049 @item @strong{When stopping at breakpoints or errors, IDLWAVE does not | |
4050 seem to highlight the relevant line in the source.} | |
4051 | |
4052 IDLWAVE scans for error and halt messages and highlights the stop | |
4053 location in the correct file. However, if you've changed the system | |
4054 variable @samp{!ERROR_STATE.MSG_PREFIX}, it is unable to parse these | |
4055 message correctly. Don't do that. | |
4056 | |
4057 @item @strong{IDLWAVE doesn't work correctly when using ENVI.} | |
4058 | |
4059 Though IDLWAVE was not written with ENVI in mind, it works just fine | |
4060 with it, as long as you update the prompt it's looking for (@samp{IDL> | |
4061 } by default). You can do this with the variable | |
4062 @code{idlwave-shell-prompt-pattern} (@pxref{Starting the Shell}), e.g., | |
4063 in your @file{.emacs}: | |
4064 | |
4065 @lisp | |
4066 (setq idlwave-shell-prompt-pattern "^\\(ENVI\\|IDL\\)> ") | |
4067 @end lisp | |
4068 | |
4069 @item @strong{Attempts to set breakpoints fail: no breakpoint is | |
4070 indicated in the IDLWAVE buffer.} | |
4071 | |
4072 IDL changed its breakpoint reporting format starting with IDLv5.5. The | |
4073 first version of IDLWAVE to support the new format is IDLWAVE v4.10. If | |
4074 you have an older version and are using IDL >v5.5, you need to upgrade, | |
4075 and/or make sure your recent version of IDLWAVE is being found on the | |
4076 Emacs load-path (see the next entry). You can list the version being | |
4077 used with @kbd{C-h v idlwave-mode-version @key{RET}}. | |
4078 | |
4079 @item @strong{I installed a new version of IDLWAVE, but the old | |
4080 version is still being used} or @strong{IDLWAVE works, but when I | |
4081 tried to install the optional modules @file{idlw-roprompt.el} or | |
4082 @file{idlw-complete-structtag}, I get errors like @samp{Cannot open | |
4083 load file}}. | |
4084 | |
4085 The problem is that your Emacs is not finding the version of IDLWAVE you | |
4086 installed. Many Emacsen come with an older bundled copy of IDLWAVE | |
4087 (e.g. v4.7 for Emacs 21.x), which is likely what's being used instead. | |
4088 You need to make sure your Emacs @emph{load-path} contains the directory | |
4089 where IDLWAVE is installed (@file{/usr/local/share/emacs/site-lisp}, by | |
4090 default), @emph{before} Emacs' default search directories. You can | |
4091 accomplish this by putting the following in your @file{.emacs}: | |
4092 | |
4093 @lisp | |
4094 (setq load-path (cons "/usr/local/share/emacs/site-lisp" load-path)) | |
4095 @end lisp | |
4096 | |
4097 @noindent You can check on your load-path value using @kbd{C-h v | |
4098 load-path @key{RET}}. | |
4099 | |
4100 @item @strong{IDLWAVE is screwing up the formatting of my @file{.idl} files.} | |
4101 | |
4102 Actually, this isn't IDLWAVE at all, but @samp{idl-mode}, an unrelated | |
4103 programming mode for CORBA's Interface Definition Language (you should | |
4104 see @samp{(IDL)}, not @samp{(IDLWAVE)} in the mode-line). One | |
4105 solution: don't name your file @file{.idl}, but rather @file{.pro}. | |
4106 Another solution: make sure @file{.idl} files load IDLWAVE instead of | |
4107 @samp{idl-mode} by adding the following to your @file{.emacs}: | |
4108 | |
4109 @lisp | |
4110 (setcdr (rassoc 'idl-mode auto-mode-alist) 'idlwave-mode) | |
4111 @end lisp | |
4112 | |
4113 @item @strong{The routine info for my local routines is out of date!} | |
4114 | |
4115 IDLWAVE collects routine info from various locations (@pxref{Routine | |
4116 Information Sources}). Routines in files visited in a buffer or | |
4117 compiled in the shell should be up to date. For other routines, the | |
4118 information is only as current as the most recent scan. If you have a | |
4119 rapidly changing set of routines, and you'd like the latest routine | |
4120 information to be available for it, one powerful technique makes use of | |
4121 the library catalog tool, @samp{idlwave_catalog}. Simply add a line to | |
4122 your @samp{cron} file (@samp{crontab -e} will let you edit this on some | |
4123 systems), like this: | |
4124 | |
4125 @example | |
4126 45 3 * * 1-5 (cd /path/to/myidllib; /path/to/idlwave_catalog MyLib) | |
4127 @end example | |
4128 | |
4129 @noindent where @samp{MyLib} is the name of your library. This will | |
4130 rescan all @file{.pro} files at or below @file{/path/to/myidllib} every | |
4131 week night at 3:45am. You can even scan site-wide libraries with this | |
4132 method, and the most recent information will be available to all users. | |
4133 | |
4134 @item @strong{All the Greek-font characters in the HTML help are | |
4135 displayed as Latin characters!} | |
4136 | |
4137 Unfortunately, the HTMLHelp files attempt to switch to | |
4138 @samp{Symbol} font to display Greek characters, which is not really an | |
4139 permitted method for doing this in HTML. There is a "workaround" for | |
4140 many browsers: @xref{HTML Help Browser Tips}. | |
4141 | |
4142 @item @strong{In the shell, my long commands are truncated at 256 characters!} | |
4143 | |
4144 This actually happens when running IDL in an XTerm as well. There are | |
4145 a couple of work arounds: @code{define_key,/control,'^d'} (e.g. in | |
4146 your @file{$IDL_STARTUP} file) will disable the @samp{EOF} character | |
4147 and give you a 512 character limit. You won't be able to use | |
4148 @key{C-d} to quit the shell, however. Another possibility is | |
4149 @code{!EDIT_INPUT=0}, which gives you an @emph{infinite} limit (OK, a | |
4150 memory-bounded limit), but disables the processing of background | |
4151 widget events (those with @code{/NO_BLOCK} passed to @code{XManager}). | |
4152 | |
4153 @end enumerate | |
4154 | |
4155 @node Index, , Troubleshooting, Top | |
26960
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
4156 @unnumbered Index |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
4157 @printindex cp |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
4158 |
733eba22afe2
TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff
changeset
|
4159 @bye |
88155 | 4160 |
4161 @ignore | |
4162 arch-tag: f1d73958-1423-4127-b8aa-f7b953d64492 | |
4163 @end ignore |