annotate man/idlwave.texi @ 46680:02cffb8517c3

*** empty log message ***
author Richard M. Stallman <rms@gnu.org>
date Thu, 25 Jul 2002 03:20:36 +0000
parents 9059071c4fa9
children 82d113655734
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1 \input texinfo @c -*-texinfo-*-
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2 @c %**start of header
46530
2e11b210c13b Fixed filename.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46527
diff changeset
3 @setfilename ../info/idlwave
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
4 @settitle IDLWAVE User Manual
46534
9059071c4fa9 Updated with patches from 1.8-1.17
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46530
diff changeset
5 @dircategory Emacs
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
6 @direntry
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
7 * IDLWAVE: (idlwave). Major mode and shell for IDL files.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
8 @end direntry
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
9 @synindex ky cp
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
10 @syncodeindex vr cp
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
11 @syncodeindex fn cp
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
12 @set VERSION 4.14
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
13 @set EDITION 4.14
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
14 @set IDLVERSION 5.5
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
15 @set NSYSROUTINES 1322
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
16 @set NSYSKEYWORDS 5952
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
17 @set DATE June 2002
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
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
19 @set AUTHOR-EMAIL dominik@@astro.uva.nl
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
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
22 @set IDLWAVE-HOMEPAGE http://idlwave.org/
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
23 @c %**end of header
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
24 @finalout
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
25
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
26 @ifinfo
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
27 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
28 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
29
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
30 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
31 @value{VERSION}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
32
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
33 Copyright @copyright{} 1999, 2000, 2001, 2002 Free Software Foundation,
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
34 Inc.
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
35
46534
9059071c4fa9 Updated with patches from 1.8-1.17
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46530
diff changeset
36 Permission is granted to copy, distribute and/or modify this document
9059071c4fa9 Updated with patches from 1.8-1.17
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46530
diff changeset
37 under the terms of the GNU Free Documentation License, Version 1.1 or
9059071c4fa9 Updated with patches from 1.8-1.17
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46530
diff changeset
38 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
39 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
40 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
41 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
42 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
43
9059071c4fa9 Updated with patches from 1.8-1.17
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46530
diff changeset
44 (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
45 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
46 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
47
9059071c4fa9 Updated with patches from 1.8-1.17
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46530
diff changeset
48 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
49 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
50 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
51 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
52 @end ifinfo
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
53
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
54 @titlepage
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
55 @title IDLWAVE User Manual
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
56 @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
57 @subtitle Edition @value{EDITION}, @value{DATE}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
58
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
59 @author by Carsten Dominik & J.D. Smith
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
60 @page
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
61 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
62 IDLWAVE version @value{VERSION}, @value{DATE}.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
63 @sp 2
46534
9059071c4fa9 Updated with patches from 1.8-1.17
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46530
diff changeset
64 Copyright @copyright{} 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
9059071c4fa9 Updated with patches from 1.8-1.17
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46530
diff changeset
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
46534
9059071c4fa9 Updated with patches from 1.8-1.17
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46530
diff changeset
67 Permission is granted to copy, distribute and/or modify this document
9059071c4fa9 Updated with patches from 1.8-1.17
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46530
diff changeset
68 under the terms of the GNU Free Documentation License, Version 1.1 or
9059071c4fa9 Updated with patches from 1.8-1.17
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46530
diff changeset
69 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
70 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
71 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
72 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
73 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
74
9059071c4fa9 Updated with patches from 1.8-1.17
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46530
diff changeset
75 (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
76 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
77 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
78
9059071c4fa9 Updated with patches from 1.8-1.17
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46530
diff changeset
79 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
80 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
81 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
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
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
92 IDLWAVE is a package which supports editing source for the
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
93 Interactive Data Language (IDL), and running IDL as an inferior
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
94 shell.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
95
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
96 @end ifnottex
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
97
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
98 @menu
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
99 * Introduction:: What IDLWAVE is and what it's not
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
100 * 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
101 * Getting Started:: Tutorial
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
102 * The IDLWAVE Major Mode:: The mode to edit IDL programs
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
103 * The IDLWAVE Shell:: The mode to run IDL as an inferior program
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
104 * Installation:: How to Install or Upgrade
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
105 * Acknowledgements:: Who did what
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
106 * Sources of Routine Info:: How does IDLWAVE know about routine XYZ
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
107 * 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
108 * Windows and MacOS:: What still works, and how
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
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
116 * Lesson I -- Development Cycle::
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
117 * Lesson II -- Customization::
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
118 * Lesson III -- Library 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
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
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
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
144 Completion
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
145
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
146 * Case of Completed Words:: CaseOFcomPletedWords
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
147 * Object Method Completion and Class Ambiguity:: obj->Method, what?
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
148 * 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
149 * 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
150
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
151 Actions
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
152
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
153 * Block Boundary Check:: Is the END correct
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
154 * Padding Operators:: Enforcing space around `=' etc
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
155 * Case Changes:: Enforcing upper case keywords
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 The IDLWAVE Shell
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
158
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
159 * 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
160 * Using the Shell:: Interactively working with the Shell
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
161 * Debugging IDL Programs:: Compilation/Debugging
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
162 * Examining Variables::
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
163 * Custom Expression Examination::
26960
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 Debugging IDL Programs
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
166
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
167 * Compiling Programs:: Compiling buffers under the shell
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
168 * Breakpoints and Stepping:: Deciding where to stop and look
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
169 * Walking the Calling Stack:: From where was this routine called?
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
170
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
171 Installation
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
172
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
173 * Installing IDLWAVE:: How to install the distribution
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
174 * Installing Online Help:: Where to get the additional files needed
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
175 * Upgrading from idl.el:: Necessary configuration changes
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
176
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
177 Sources of Routine Info
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
178
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
179 * Routine Definitions:: Where IDL Routines are defined.
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
180 * Routine Information Sources:: So how does IDLWAVE know about...
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
181 * Library Catalog:: Scanning the Libraries for Routine Info
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
182 * Load-Path Shadows:: Routines defined in several places
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
183 * Documentation Scan:: Scanning the IDL Manuals
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
184
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
185 @end detailmenu
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
186 @end menu
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
187
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
188 @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
189 @chapter Introduction
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
190 @cindex Introduction
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
191 @cindex CORBA (Common Object Request Broker Architecture)
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
192 @cindex Interface Definition Language
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
193 @cindex Interactive Data Language
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
194 @cindex cc-mode.el
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
195 @cindex @file{idl.el}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
196 @cindex @file{idl-shell.el}
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
197 @cindex Feature overview
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
198
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
199 IDLWAVE is a package which supports editing source files for the
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
200 Interactive Data Language (IDL@footnote{IDL is a registered trademark of
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
201 Research Systems, Inc., a Kodak Company}), and for running IDL as an
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
202 inferior shell@footnote{Note that this package has nothing to do with
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
203 the Interface Definition Language, part of the Common Object Request
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
204 Broker Architecture (CORBA)}. It can also be used for editing source
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
205 files for the related WAVE/CL language, but with only limited
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
206 support. Note that this package has nothing to do with the Interface
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
207 Definition Language, part of the Common Object Request Broker
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
208 Architecture (CORBA).
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
209
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
210 IDLWAVE consists of two main parts: a major mode for editing IDL source
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
211 files files (@code{idlwave-mode}) and a mode for running the IDL program
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
212 as an inferior shell (@code{idlwave-shell-mode}). Although one mode can
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
213 be used without the other, both work together closely to form a complete
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
214 development environment. Here is a brief summary of what IDLWAVE does:
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
215
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
216 @itemize @bullet
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
217 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
218 Code indentation and formatting.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
219 @item
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
220 Three level syntax highlighting support.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
221 @item
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
222 Context-sensitive display of calling sequences and keywords for more
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
223 than 1000 native IDL routines, extendible to any number of additional
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
224 routines in your local IDL libraries.
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
225 @item
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
226 Name space conflict search, with likelihood ranking.
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
227 @item
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
228 Fast, context-sensitive online help.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
229 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
230 Context sensitive completion of routine names and keywords.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
231 @item
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
232 Easy insertion of code templates.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
233 @item
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
234 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
235 standards.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
236 @item
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
237 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
238 @item
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
239 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
240 @item
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
241 Documentation support.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
242 @item
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
243 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
244 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
245 IDL source buffers.
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 Compilation, execution and interactive debugging of programs directly
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
248 from the source buffer.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
249 @item
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
250 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
251 inspection, etc.
26960
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 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
254 @item
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
255 And much, much more...
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
256 @end itemize
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
257
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
258 @ifnottex
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
259 @cindex Screenshots
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
260 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
261
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
262 @itemize @bullet
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
263 @item
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
264 @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
265 @item
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
266 @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
267 @item
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
268 @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
269 @item
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
270 @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
271 @item
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
272 @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
273 stopped at a breakpoint}
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
274 @end itemize
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
275 @end ifnottex
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
276
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
277 IDLWAVE is the successor to the @file{idl.el} and @file{idl-shell.el}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
278 files written by Chris Chase. The modes and files had to be renamed
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
279 because of a name space conflict with CORBA's @code{idl-mode}, defined in
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
280 Emacs in the file @file{cc-mode.el}. If you have been using the old
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
281 files, check @ref{Upgrading from idl.el} for information on how to
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
282 switch.
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
283
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
284 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
285 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
286 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
287 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
288 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
289 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
290 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
291 appendix.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
292
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
293 @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
294 @chapter IDLWAVE in a Nutshell
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
295 @cindex Summary of important commands
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
296 @cindex IDLWAVE in a Nutshell
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
297 @cindex Nutshell, IDLWAVE in a
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
298
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
299 @subheading Editing IDL Programs
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
300
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
301 @multitable @columnfractions .15 .85
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
302 @item @key{TAB}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
303 @tab Indent the current line relative to context.
40705
421e0a91a1d1 Replace M-C- with C-M-
Eli Zaretskii <eliz@gnu.org>
parents: 39268
diff changeset
304 @item @kbd{C-M-\}
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
305 @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
306 @item @kbd{C-u @key{TAB}}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
307 @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
308 @item @kbd{M-@key{RET}}
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
309 @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
310 @item @kbd{M-q}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
311 @tab Fill the current comment paragraph.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
312 @item @kbd{C-c ?}
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
313 @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
314 at point.
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
315 @item @kbd{M-?}
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
316 @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
317 @item @kbd{M-@key{TAB}}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
318 @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
319 @item @kbd{C-c C-i}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
320 @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
321 @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
322 @tab Visit the source code of a procedure/function.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
323 @item @kbd{C-c C-h}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
324 @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
325 @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
326 @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
327 @end multitable
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
328
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
329 @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
330
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
331 @multitable @columnfractions .15 .85
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
332 @item @kbd{C-c C-s}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
333 @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
334 @item @kbd{M-p}
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
335 @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
336 @item @kbd{M-n}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
337 @tab Cycle forward.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
338 @item @kbd{M-@key{TAB}}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
339 @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
340 @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
341 @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
342 @item @kbd{C-c C-d C-x}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
343 @tab Goto next syntax error.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
344 @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
345 @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
346 @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
347 @tab Clear the nearest breakpoint.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
348 @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
349 @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
350 @end multitable
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
351
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
352 @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
353 @lisp
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
354 ;; Change the indentation preferences
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
355 (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
356 idlwave-block-indent 2 ; default 4
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
357 idlwave-end-offset -2) ; default -4
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
358 ;; 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
359 (setq idlwave-init-rinfo-when-idle-after 2)
27600
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
360 ;; Pad some operators with spaces
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
361 (setq idlwave-do-actions t
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
362 idlwave-surround-by-blank t)
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
363 ;; Syntax Highlighting
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
364 (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
365 ;; Automatically start the shell when needed
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
366 (setq idlwave-shell-automatic-start t)
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
367 ;; 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
368 (setq idlwave-shell-debug-modifiers '(control shift))
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
369 ;; Specify the online help files' location.
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
370 (setq idlwave-help-directory "~/.idlwave")
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
371 @end lisp
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
372
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
373 @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
374 @chapter Getting Started (Tutorial)
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
375 @cindex Quick-Start
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
376 @cindex Tutorial
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
377 @cindex Getting Started
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
378
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
379 @menu
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
380 * Lesson I -- Development Cycle::
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
381 * Lesson II -- Customization::
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
382 * Lesson III -- Library Catalog::
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
383 @end menu
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
384
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
385 @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
386 @section Lesson I: Development Cycle
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
387
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
388 The purpose of this tutorial is to guide you through a very basic
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
389 development cycle using IDLWAVE. We will paste a simple program into a
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
390 buffer and use the shell to compile, debug and run it. On the way we
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
391 will use many of the important IDLWAVE commands. Note however that
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
392 there are many more capabilities in IDLWAVE than covered here, which can
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
393 be discovered by reading the entire manual.
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
394
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
395 It is assumed that you have access to Emacs or XEmacs with the full
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
396 IDLWAVE package including online help (@pxref{Installation}). We also
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
397 assume that you are familiar with Emacs and can read the nomenclature of
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
398 key presses in Emacs (in particular, @kbd{C} stands for @key{CONTROL}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
399 and @kbd{M} for @key{META} (often the @key{ALT} key carries this
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
400 functionality)).
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
401
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
402 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
403
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
404 @example
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
405 @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
406 @end example
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
407
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
408 A buffer for this file will pop up, and it should be in IDLWAVE mode, as
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
409 shown in the mode line just below the editing window. Also, the menu
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
410 bar should contain entries @samp{IDLWAVE} and @samp{Debug}.
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
411
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
412 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
413 @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
414
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
415 @example
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
416 function daynr,d,m,y
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
417 ;; 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
418 ;; works 1901-2099.
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
419 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
420 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
421 m1 = m + delta*12 + 1
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
422 y1 = y * delta
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
423 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
424 end
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
425
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
426 function weekday,day,month,year
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
427 ;; compute weekday number for date
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
428 nr = daynr(day,month,year)
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
429 return, nr mod 7
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
430 end
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 pro plot_wday,day,month
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
433 ;; 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
434 years = 2000,+indgen(10)
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
435 wdays = intarr(10)
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
436 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
437 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
438 end
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
439 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
440 end
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
441 @end example
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
442
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
443 The indentation probably looks funny, since it's different from the
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
444 settings you use, so use the @key{TAB} key in each line to automatically
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
445 line it up (or more quickly @emph{select} the entire buffer with
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
446 @kbd{C-x h}, and indent the whole region with @kbd{C-M-\}). Notice how
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
447 different syntactical elements are highlighted in different colors, if
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
448 you have set up support for font-lock.
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
449
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
450 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
451 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
452 @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
453 changes the generic @code{end} to the specific @code{endfor}
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
454 automatically. Now place the cursor in any line you would like to split
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
455 and press @kbd{M-@key{RET}}. The line is split at the cursor position,
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
456 with the continuation @samp{$} and indentation all taken care of. Use
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
457 @kbd{C-/} to undo the last change.
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
458
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
459 The procedure @code{plot_wday} is supposed to plot the weekday of a
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
460 given date for the first 10 years of the 21st century. As in most code,
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
461 there are a few bugs, which we are going to use IDLWAVE to help us fix.
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
462
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
463 First, let's launch the IDLWAVE shell. You do this with the command
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
464 @kbd{C-c C-s}. The Emacs window will split and display IDL running in a
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
465 shell interaction buffer. Type a few commands like @code{print,!PI} to
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
466 convince yourself that you can work there just as well as in a terminal,
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
467 or the IDLDE. Use the arrow keys to cycle through your command history.
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
468 Are we having fun now?
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
469
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
470 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
471 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
472 @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
473 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
474 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
475 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
476 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
477 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
478 see the three routines compile.
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
479
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
480 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
481 1st. We could type the full command ourselves, but why do that? Go
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
482 back to the shell window, type @samp{plot_} and hit @key{TAB}. After a
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
483 bit of a delay (while IDLWAVE initializes its routine info database, if
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
484 necessary), the window will split to show all procedures it knows
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
485 starting with that string, and @w{@code{plot_wday}} should be one of
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
486 them. Saving the buffer alerted IDLWAVE about this new routine. Click
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
487 with the middle mouse button on @code{plot_wday} and it will be copied
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
488 to the shell buffer, or if you prefer, add @samp{w} to @samp{plot_} to
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
489 make it unambiguous, hit @key{TAB} again, and the full routine name will
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
490 be completed. Now provide the two arguments:
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
491
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
492 @example
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
493 plot_wday,1,1
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
494 @end example
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
495
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
496 and press @key{RET}. This fails with an error message telling you the
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
497 @code{YT} keyword to plot is ambiguous. What are the allowed keywords
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
498 again? Go back to the source window and put the cursor into the `plot'
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
499 line, and press @kbd{C-c ?}. This shows the routine info window for the
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
500 plot routine, which contains a list of keywords, along with the argument
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
501 list. Oh, we wanted @code{YTITLE}. Fix that up. Recompile with
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
502 @kbd{C-c C-d C-c}. Jump back into the shell with @kbd{C-c C-s}, press
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
503 the @key{UP} arrow to recall the previous command and execute again.
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
504
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
505 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
506 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
507 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
508 plot line after a comma (where you'd normally type a keyword), and hit
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
509 @kbd{M-@key{Tab}}. A long list of plot's keywords appears. Aha, there
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
510 it is, @code{PSYM}. Middle click to insert it. An @samp{=} sign is
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
511 included for you too. Now what were the values of @code{PSYM} supposed
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
512 to be? With the cursor on or after the keyword, press @kbd{M-?} for
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
513 online help (alternatively, you could have right clicked on the colored
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
514 keyword itself in the completion list). The online help window will pop
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
515 up showing the documentation for the @code{PYSM} keyword. OK, let's use
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
516 diamonds=4. Fix this, recompile (you know the command by now: @kbd{C-c
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
517 C-d C-c}, go back to the shell (if it's vanished, you know the command
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
518 to recall it by now: @kbd{C-c C-s}) and execute again. Now things look
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
519 pretty good.
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
520
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
521 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
522
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
523 @example
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
524 plot_wday,1,4
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
525 @end example
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
526
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
527 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
528 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
529 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
530 the @samp{return, d+...} line and press @kbd{C-c C-d C-b}. IDL sets a
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
531 breakpoint (as you see in the shell window), and the line is highlighted
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
532 in some way. Back to the shell buffer, re-execute the previous command.
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
533 IDL stops at the line with the breakpoint. Now hold down the SHIFT key
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
534 and click with the middle mouse button on a few variables there:
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
535 @samp{d}, @samp{y}, @samp{m}, @samp{y1}, etc. Maybe @code{d} isn't the
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
536 correct type. CONTROL-SHIFT middle-click on it for help. Well, it's an
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
537 integer, so that's not the problem. Aha, @samp{y1} is zero, but it
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
538 should be the year, depending on delta. Shift click @samp{delta} to see
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
539 that it's 0. Below, we see the offending line: @samp{y1=y*delta...} the
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
540 multiplication should have been a minus sign! So fix the line to read:
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
541
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
542 @example
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
543 y1 = y - delta
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
544 @end example
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
545
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
546 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
547 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
548 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
549 sequence of weekdays repeats.
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 @node Lesson II -- Customization, Lesson III -- Library Catalog, Lesson I -- Development Cycle, Getting Started
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
552 @section Lesson II: Customization
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
553
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
554 Emacs is probably the most customizable piece of software available, and
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
555 it would be a shame if you did not make use of this and adapt IDLWAVE to
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
556 your own preferences. Customizing Emacs or IDLWAVE is accomplished by
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
557 setting Lisp variables in the @file{.emacs} file in your home directory
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
558 --- but do not be dismayed; for the most part, you can just copy and work
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
559 from the examples given here.
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
560
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
561 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
562 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
563 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
564 @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
565
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
566 @lisp
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
567 (setq idlwave-reserved-word-upcase t)
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
568 @end lisp
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
569
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
570 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
571 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
572 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
573 @samp{IF}, @samp{begin} to @samp{BEGIN}. If you don't like this
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
574 behavior, remove the option again from your @file{.emacs} file.
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
575
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
576 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
577 example, some like to indent the main block of an IDL program from the
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
578 margin, different from the conventions used by RSI, and use only 3
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
579 spaces as indentation between @code{BEGIN} and @code{END}. Try the
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
580 following lines in @file{.emacs}:
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
581
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
582 @lisp
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
583 (setq idlwave-main-block-indent 2)
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
584 (setq idlwave-block-indent 3)
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
585 (setq idlwave-end-offset -3)
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
586 @end lisp
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
587
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
588 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
589 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
590 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
591 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
592 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
593 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
594 throughout this manual.
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
595
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
596 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
597 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
598 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
599 @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
600 Group}. Here you'll be presented with all the various variables grouped
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
601 into categories. You can navigate the hierarchy (e.g. Idlwave Code
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
602 Formatting->Idlwave Main Block Indent), read about the variables, change
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
603 them, and `Save for Future Sessions'. Few of these variables need
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
604 customization, but you can exercise considerable control over IDLWAVE's
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
605 functionality with them.
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
606
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
607 You may also find the key bindings used for the debugging commands too
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
608 long and complicated. Often we have heard such complaints, ``Do I
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
609 really have to type @kbd{C-c C-d C-c} to run a simple command?'' Due to
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
610 Emacs rules and conventions, shorter bindings cannot be set by default,
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
611 but you can enable them. First, there is a way to assign all debugging
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
612 commands in a single sweep to other combinations. The only problem is
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
613 that we have to use something which Emacs does not need for other
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
614 important commands. One good option is to execute debugging commands by
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
615 holding down @key{CONTROL} and @key{SHIFT} while pressing a single
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
616 character: @kbd{C-S-b} for setting a breakpoint, @kbd{C-S-c} for
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
617 compiling the current source file, @kbd{C-S-a} for deleting all
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
618 breakpoints. You can enable this with:
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
619
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
620 @lisp
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
621 (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
622 @end lisp
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
623
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
624 @noindent If you have a special keyboard with, for example, a
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
625 @key{HYPER} 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
626
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
627 @lisp
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
628 (setq idlwave-shell-debug-modifiers '(hyper))
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
629 @end lisp
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
630
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
631 @noindent to get compilation on @kbd{H-c}. Often, a modifier key like
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
632 @key{HYPER} or @key{SUPER} is bound or can be bound to an otherwise
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
633 unused key -- consult your system documentation.
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
634
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
635 You can also assign specific commands to keys. This you must do in the
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
636 @emph{mode-hook}, a special function which is run when a new buffer gets
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
637 set up. Keybindings can only be done when the buffer exists. The
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
638 possibilities for key customization are endless. Here we set function
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
639 keys f5-f8 to common debugging commands.
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
640
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
641 @lisp
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
642 ;; First for the source buffer
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
643 (add-hook 'idlwave-mode-hook
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
644 (lambda ()
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
645 (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
646 (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
647 (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
648 (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
649 ;; Then for the shell buffer
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
650 (add-hook 'idlwave-shell-mode-hook
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
651 (lambda ()
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
652 (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
653 (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
654 (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
655 (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
656 @end lisp
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
657
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
658 @node Lesson III -- Library Catalog, , Lesson II -- Customization, Getting Started
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
659 @section Lesson III: Library Catalog
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
660
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
661 We have already used the routine info display in the first part of this
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
662 tutorial. This was the key @kbd{C-c ?} which displays information about
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
663 the IDL routine near the cursor position. Wouldn't it be nice
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
664 to have the same available for your own library routines and for the
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
665 huge amount of code in major extension libraries like JHUPL or the
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
666 IDL-Astro library? To do this, you must give IDLWAVE a chance to study
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
667 these routines first. We call this @emph{Building the library catalog}.
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
668
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
669 From the IDLWAVE entry in the menu bar, select @code{Routine Info/Select
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
670 Catalog Directories}. If necessary, start the shell first with @kbd{C-c
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
671 C-s} (@pxref{Starting the Shell}). IDLWAVE will find out about the IDL
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
672 @code{!PATH} variable and offer a list of directories on the path.
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
673 Simply select them all (or whichever you want) and click on the
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
674 @samp{Scan&Save} button. Then go for a cup of coffee while IDLWAVE
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
675 collects information for each and every IDL routine on your search path.
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
676 All this information is written to the file @file{.idlcat} in your home
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
677 directory and will from now one be automatically loaded whenever you use
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
678 IDLWAVE. You may find it necessary to rebuild the catalog on occasion
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
679 as your local libraries change. Try to use routine info (@kbd{C-c ?})
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
680 or completion (@kbd{M-@key{TAB}}) while on any routine or partial routine
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
681 name you know to be located in the library. E.g., if you have scanned
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
682 the IDL-Astro library:
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
683
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
684 @example
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
685 a=readf@key{M-<TAB>}
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
686 @end example
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
687
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 expands to `readfits('. Then try
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
690
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
691 @example
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
692 a=readfits(@key{C-c ?}
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
693 @end example
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
694
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
695 and you get:
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
696
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
697 @example
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
698 Usage: Result = READFITS(filename, header, heap)
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
699 ...
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
700 @end example
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
701
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
702 I hope you made it until here. Now you are set to work with IDLWAVE.
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
703 On the way you will want to change other things, and to learn more about
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
704 the possibilities not discussed in this short tutorial. Read the
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
705 manual, look at the documentation strings of interesting variables (with
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
706 @kbd{C-h v idlwave<-variable-name> @key{RET}}) and ask the remaining
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
707 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
708
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
709 @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
710 @chapter The IDLWAVE Major Mode
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
711 @cindex IDLWAVE major mode
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
712 @cindex Major mode, @code{idlwave-mode}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
713
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
714 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
715 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
716 them.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
717
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
718 @menu
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
719 * Code Formatting:: Making code look nice
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
720 * Routine Info:: Calling Sequence and Keyword List
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
721 * 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
722 * 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
723 * Routine Source:: Finding routines, the easy way
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
724 * 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
725 * Code Templates:: Frequent code constructs
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
726 * Abbreviations:: Abbreviations for common commands
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
727 * Actions:: Changing case, Padding, End checking
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
728 * Doc Header:: Inserting a standard header
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
729 * 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
730 * 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
731 @end menu
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
732
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
733 @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
734 @section Code Formatting
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
735 @cindex Code formatting
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
736 @cindex Formatting, of code
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
737
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
738 @menu
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
739 * Code Indentation:: Reflecting the logical structure
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
740 * Continued Statement Indentation::
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
741 * 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
742 * Continuation Lines:: Splitting statements over lines
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
743 * Syntax Highlighting:: Font-lock support
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
744 * 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
745 @end menu
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
746
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
747 The IDL language, with it's early roots in FORTRAN, modern
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
748 implementation in C, and liberal borrowing of features of many vector
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
749 languages along its 25+ year history, has inherited an unusual mix of
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
750 syntax elements. Left to his or her own devices, a novice IDL
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
751 programmer will often conjure code which is very difficult to read and
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
752 impossible to adapt. Much can be gleaned from studying available IDL
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
753 code libraries for coding style pointers, but, due to the variety of IDL
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
754 syntax elements, replicating this style can be challenging at best.
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
755 Luckily, IDLWAVE understands the structure IDL code very well, and takes
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
756 care of almost all formatting issues for you. After configuring it to
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
757 match your coding standards, you can rely on it to help keep your code
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
758 neat and organized.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
759
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
760 @cindex Foreign code, adapting
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
761 @cindex Indentation, of foreign code
40705
421e0a91a1d1 Replace M-C- with C-M-
Eli Zaretskii <eliz@gnu.org>
parents: 39268
diff changeset
762 @kindex C-M-\
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
763 To re-indent a larger portion of code (e.g. when working with foreign code
40705
421e0a91a1d1 Replace M-C- with C-M-
Eli Zaretskii <eliz@gnu.org>
parents: 39268
diff changeset
764 written with different conventions), use @kbd{C-M-\}
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
765 (@code{indent-region}) after marking the relevant code. Useful marking
40705
421e0a91a1d1 Replace M-C- with C-M-
Eli Zaretskii <eliz@gnu.org>
parents: 39268
diff changeset
766 commands are @kbd{C-x h} (the entire file) or @kbd{C-M-h} (the
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
767 current subprogram). @xref{Actions}, for information how to impose
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
768 additional formatting conventions on foreign code.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
769
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
770 @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
771 @subsection Code Indentation
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
772 @cindex Code indentation
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
773 @cindex Indentation
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
774
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
775 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
776 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
777 @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
778 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
779 @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
780 continuation lines.
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
781
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
782 @defopt idlwave-main-block-indent (@code{0})
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
783 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
784 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
785 unit.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
786 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
787
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
788 @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
789 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
790 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
791 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
792
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
793 @defopt idlwave-end-offset (@code{-4})
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
794 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
795 @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
796 BEGIN lines.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
797 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
798
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
799 @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
800 @subsection Continued Statement Indentation
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
801 @cindex Indentation, continued statement
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
802 @cindex Continued statement indentation
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
803 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
804 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
805 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
806 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
807 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
808 (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
809 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
810 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
811 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
812 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
813 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
814 punctuation. An example:
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
815
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
816 @example
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
817 function foo, a, b, $
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
818 c, d
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
819 bar = sin( a + b + $
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
820 c + d)
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
821 end
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
822 @end example
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
823 @noindent
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
824
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
825 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
826 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
827 sides of an assignment:
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
828
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
829 @example
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
830 function thisfunctionnameisverylongsoitwillleavelittleroom, a, b, $
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
831 c, d
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
832 @end example
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
833
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
834 You can instruct IDLWAVE when to use this special continuation
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
835 indentation by setting the variable
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
836 @code{idlwave-max-extra-continuation-indent}, which specifies the
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
837 maximum additional indentation beyond the basic indent to be tolerated,
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
838 otherwise defaulting to fixed-offset from the enclosing indent (the size
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
839 of which offset is set in @code{idlwave-continuation-indent}). Also,
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
840 since the indentation level is somewhat dynamic in continued statements
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
841 with special continuation indentation, especially if
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
842 @code{idlwave-max-extra-continuation-indent} is small, the key @kbd{C-u
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
843 @key{TAB}} will re-indent all lines in the current statement. Note that
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
844 @code{idlwave-indent-to-open-paren}, if non-nil, overrides the
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
845 @code{idlwave-max-extra-continuation-indent} limit, for parentheses
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
846 only, forcing them always to line up.
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
847
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
848
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
849 @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
850 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
851 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
852
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
853 @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
854 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
855 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
856 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
857 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
858 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
859 line, outside of nested parentheses statements.
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
860 @end defopt
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
861
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
862 @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
863 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
864 parenthesis, regardless of whether the
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
865 @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
866 @end defopt
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
867
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
868 @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
869 @subsection Comment Indentation
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
870 @cindex Comment indentation
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
871 @cindex Hanging paragraphs
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
872 @cindex Paragraphs, filling
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
873 @cindex Paragraphs, hanging
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
874
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
875 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
876 Comment lines are indented as follows:
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
877
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
878 @multitable @columnfractions .1 .90
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
879 @item @code{;;;}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
880 @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
881 unchanged.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
882 @item @code{;;}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
883 @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
884 @item @code{;}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
885 @tab Lines starting with a single semicolon are indent to a minimum column.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
886 @end multitable
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
887
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
888 @noindent
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
889 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
890
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
891 @defopt idlwave-no-change-comment
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
892 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
893 changed.
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
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
896 @defopt idlwave-begin-line-comment
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
897 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
898 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
899
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
900 @defopt idlwave-code-comment
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
901 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
902 IDL code.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
903 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
904
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
905 @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
906 @subsection Continuation Lines and Filling
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
907 @cindex Continuation lines
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
908 @cindex Line splitting
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
909 @cindex String splitting
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
910 @cindex Splitting, of lines
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
911
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
912 @kindex M-@key{RET}
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
913 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
914 @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
915 @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
916 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
917 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
918 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
919 concatenation operator is used.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
920
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
921 @cindex Filling
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
922 @cindex @code{auto-fill-mode}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
923 @cindex Hanging paragraphs
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
924 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
925 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
926 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
927 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
928 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
929 @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
930 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
931
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
932 @example
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
933 @group
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
934 ;=================================
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
935 ; x - an array containing
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
936 ; lots of interesting numbers.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
937 ;
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
938 ; y - another variable where
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
939 ; a hanging paragraph is used
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
940 ; to describe it.
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
941 ;=================================
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
942 @end group
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
943 @end example
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
944
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
945 @kindex M-q
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
946 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
947 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
948 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
949 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
950
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
951 @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
952 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
953 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
954
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
955 @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
956 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
957 operator.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
958 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
959
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
960 @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
961 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
962 @samp{+}.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
963 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
964
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
965 @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
966 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
967 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
968 line of the paragraph.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
969 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
970
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
971 @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
972 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
973 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
974 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
975
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
976 @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
977 Non-@code{nil} means use last match on line for
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
978 @code{idlwave-indent-regexp}.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
979 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
980
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
981 @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
982 @subsection Syntax Highlighting
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
983 @cindex Syntax highlighting
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
984 @cindex Highlighting of syntax
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
985 @cindex Font lock
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
986
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
987 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
988 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
989 (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
990 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
991 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
992 @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
993
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
994 @lisp
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
995 (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
996 @end lisp
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
997
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
998 @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
999 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
1000 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
1001 for highlighting using the variable
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1002 @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
1003
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1004 @defopt idlwave-default-font-lock-items
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1005 Items which should be fontified on the default fontification level
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1006 2.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1007 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1008
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1009 @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
1010 @subsection Octals and Highlighting
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1011 @cindex Syntax highlighting, Octals
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1012 @cindex Highlighting of syntax, Octals
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1013
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1014 A rare syntax highlighting problem results from the extremely
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1015 unfortunate notation for octal numbers in IDL: @code{"123}. This
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1016 unpaired quotation mark is very difficult to parse, given that it can be
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1017 mixed on a single line with any number of strings. Emacs will
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1018 incorrectly identify this as a string, and the highlighting of following
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1019 lines of code can be distorted, since the string is never terminated.
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1020
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1021 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
1022 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
1023
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1024 @example
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1025 string("305B) + $ ;" <--- for font-lock
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1026 ' is an Angstrom.'
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1027 @end example
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1028
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1029 @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
1030 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
1031
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1032 @example
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1033 string('305'OB) + ' is an Angstrom.'
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1034 @end example
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1035
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1036 @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
1037 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
1038
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1039 @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
1040 @section Routine Info
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1041 @cindex Routine info
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1042 @cindex Updating routine info
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1043 @cindex Scanning buffers for routine info
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1044 @cindex Buffers, scanning for routine info
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1045 @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
1046
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1047 @kindex C-c C-i
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1048 IDL comes bundled with more than one thousand procedures, functions and
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1049 object methods, and large libraries typically contain hundreds or even
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1050 thousands more. This large command set makes it difficult to remember
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1051 the calling sequence and keywords for routines you use, but IDLWAVE can
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1052 help. It builds up routine information using a wide variety of sources:
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1053 IDLWAVE in fact knows far more about the routines on your system than
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1054 IDL itself. It maintains a list of all built-in routines, with calling
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1055 sequences and keywords@footnote{This list is created by scanning the IDL
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1056 manuals and might contain (very few) errors. Please report any errors
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1057 to the maintainer, so that they can be fixed.}. It also scans Emacs
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1058 buffers and library files for routine definitions, and queries the
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1059 IDLWAVE-Shell for information about routines currently compiled there.
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1060 This information is updated automatically, and so should usually be
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1061 current. To force a global update and refresh the routine information,
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1062 use @kbd{C-c C-i} (@code{idlwave-update-routine-info}).
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1063
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1064 @kindex C-c ?
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1065 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
1066 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
1067 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
1068 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
1069 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
1070
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1071 @example
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1072 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
1073 | | | | | | | |
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1074 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
1075 @end example
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1076
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1077 @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
1078 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
1079 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
1080 described, while positions 5 and 6 will investigate the @samp{sin}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1081 function.
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1082
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1083 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
1084 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
1085 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
1086 @samp{->} operator (@pxref{Object Method Completion and Class
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1087 Ambiguity}), or by having been explicity included in the call
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1088 (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
1089
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1090 @cindex Calling sequences
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1091 @cindex Keywords of a routine
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1092 @cindex Routine source information
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1093 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
1094 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
1095
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1096 @example
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1097 Usage: XMANAGER, NAME, ID
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1098 Keywords: BACKGROUND CATCH CLEANUP EVENT_HANDLER GROUP_LEADER
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1099 JUST_REG MODAL NO_BLOCK
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1100 Source: SystemLib [CSB] /soft1/idl53/lib/xmanager.pro
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1101 @end example
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1102
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1103 @cindex Categories, of routines
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1104 @cindex Load-path shadows
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1105 @cindex Shadows, load-path
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1106 @cindex IDL variable @code{!PATH}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1107 @cindex @code{!PATH}, IDL variable
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1108 @cindex IDL variable @code{!DIR}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1109 @cindex @code{!DIR}, IDL variable
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1110
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1111 If a definition of this routine exists in several files accessible to
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1112 IDLWAVE, several @samp{Source} lines will point to the different files.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1113 This may indicate that your routine is shadowing a library routine,
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1114 which may or may not be what you want (@pxref{Load-Path Shadows}). The
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1115 information about the calling sequence and keywords is derived from the
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1116 first source listed. Library routines are supported only if you have
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1117 scanned your local IDL libraries (@pxref{Library Catalog}). The source
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1118 entry consists of a @emph{source category}, a set of @emph{flags} and
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1119 the path to the @emph{source file}. The following categories exist:
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1120
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1121 @multitable @columnfractions .15 .85
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1122 @item @i{System}
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1123 @tab A system routine of unknown origin. When the system library has
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1124 been scanned (@pxref{Library Catalog}), this category will automatically
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1125 split into the next two.
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1126 @item @i{Builtin}
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1127 @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
1128 @item @i{SystemLib}
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1129 @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
1130 @item @i{Obsolete}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1131 @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
1132 @item @i{Library}
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1133 @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
1134 @item @i{Other}
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1135 @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
1136 @item @i{Unresolved}
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1137 @tab An otherwise unkown routine the shell lists as unresolved
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1138 (referenced, but not compiled).
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1139 @end multitable
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1140
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1141 You can create additional categories based on the routine's filepath
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1142 with the variable @code{idlwave-special-lib-alist}. This is useful for
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1143 easy discrimination of various libraries, or even versions of the same
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1144 library.
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1145
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1146 @cindex Flags, in routine info
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1147 @cindex Duplicate routines
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1148 @cindex Multiply defined routines
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1149 @cindex Routine definitions, multiple
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1150 The flags @code{[CSB]} indicate the source of the information IDLWAVE
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1151 has regarding the file: from a library catalog (@w{@code{[C--]}},
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1152 @pxref{Library Catalog}), from the IDL Shell (@w{@code{[-S-]}}) or from
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1153 an Emacs buffer (@w{@code{[--B]}}). Combinations are possible (a
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1154 compiled library routine visited in a buffer might read
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1155 @w{@code{[CSB]}}). If a file contains multiple definitions of the same
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1156 routine, the file name will be prefixed with @samp{(Nx)} where @samp{N}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1157 is the number of definitions.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1158
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1159 @cindex Online Help from the routine info buffer
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1160 @cindex Active text, in routine info
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1161 @cindex Inserting keywords, from routine info
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1162 @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
1163 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
1164 (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
1165 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
1166 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
1167
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1168 @multitable @columnfractions 0.15 0.85
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1169 @item @i{Usage}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1170 @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
1171 button on the @i{Usage:} line will access the help for the
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1172 routine (@pxref{Online Help}).
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1173 @item @i{Keyword}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1174 @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
1175 @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
1176 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
1177 @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
1178 clicking also adds the initial @samp{/}.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1179 @item @i{Source}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1180 @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
1181 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
1182 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
1183 @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
1184 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
1185 window.
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
1186 @item @i{Classes}
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
1187 @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
1188 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
1189 @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
1190 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
1191 exists there.
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1192 @end multitable
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1193
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1194 @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
1195 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
1196 fit the content.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1197 @end defopt
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1198
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1199 @defopt idlwave-special-lib-alist
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1200 Alist of regular expressions matching special library directories.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1201 @end defopt
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1202
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1203 @defopt idlwave-rinfo-max-source-lines (@code{5})
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1204 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
1205 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1206
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 @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
1209 @section Online Help
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1210
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1211 @cindex Online Help
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1212 @cindex @file{idlw-help.txt}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1213 @cindex @file{idlw-help.el}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1214 @cindex IDL manual, ASCII version
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1215 @cindex Installing online help
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1216 @cindex Online Help, Installation
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1217 @cindex Speed, of online help
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1218 For IDL system routines, RSI provides extensive documentation. IDLWAVE
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1219 can access an ASCII version of this documentation very quickly and
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1220 accurately. This is @emph{much} faster than using the IDL online help
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1221 application, because usually IDLWAVE gets you to the right place in the
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1222 docs directly, without any additional browsing and scrolling. For this
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1223 online help to work, an ASCII version of the IDL documentation, which is
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1224 not part of the standalone IDLWAVE distribution, is required. The
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1225 necessary help files can be downloaded from
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1226 @uref{@value{IDLWAVE-HOMEPAGE}, the maintainers webpage}. The text
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1227 extracted from the PDF files is fine for normal documentation
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1228 paragraphs, but graphics and multiline equations will not be well
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1229 formatted. See also @ref{Documentation Scan}.
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1230
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1231 @cindex Updated online help
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1232 @cindex Online help, updates
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1233 @cindex @code{<NEW>..</NEW>}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1234 Occasionally RSI releases a synopsis of new features in an IDL release,
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1235 without simultaneously updating the documentation files, instead
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1236 preferring a @i{What's New} document which describes the changes. These
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1237 updates are incorporated directly into the IDLWAVE online help, and are
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1238 delimited in @code{<NEW>..</NEW>} blocks.
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1239
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1240 @cindex Source code, as online help
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1241 @cindex DocLib header, as online help
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1242 For routines which are not documented in the IDL manual (for example
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1243 your own routines), the source code is used as help text. If the
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1244 requested information can be found in a (more or less) standard DocLib
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1245 file header, IDLWAVE shows the header (scrolling down to appropriate
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1246 keywords). Otherwise the routine definition statement
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1247 (@code{pro}/@code{function}) is shown.
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1248
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1249 @kindex M-?
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1250 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
1251 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
1252 @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
1253 locations are recognized context for help:
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1254
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1255 @cindex Context, for online help
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1256 @multitable @columnfractions .25 .75
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1257 @item @i{Routine name}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1258 @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
1259 @item @i{Keyword Parameter}
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1260 @tab A keyword parameter of a routine.
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1261 @item @i{System Variable}
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1262 @tab System variables like @code{!DPI}.
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1263 @item @i{IDL Statement}
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1264 @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
1265 @item @i{Class name}
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1266 @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
1267 @item @i{Class Init}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1268 @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
1269 @item @i{Executive Command}
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1270 @tab An executive command like @code{.RUN}. Mostly useful in the shell.
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1271 @item @i{Default}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1272 @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
1273 @end multitable
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1274
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1275 @cindex @code{OBJ_NEW}, special online help
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1276 Note that the @code{OBJ_NEW} function is special in that the help
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1277 displayed depends on the cursor position: If the cursor is on the
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1278 @samp{OBJ_NEW}, this function is described. If it is on the class name
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1279 inside the quotes, the documentation for the class is pulled up. If the
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1280 cursor is @emph{after} the class name, anywhere in the argument list,
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1281 the documentation for the corresponding @code{Init} method and its
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1282 keywords is targeted.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1283
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1284 @noindent Apart from source buffers, there are two more places from
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1285 which online help can be accessed.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1286
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1287 @itemize @bullet
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1288 @item
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1289 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
1290 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
1291 corresponding help (@pxref{Routine Info}).
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1292 @item
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1293 When using completion and Emacs pops up a window with possible
46534
9059071c4fa9 Updated with patches from 1.8-1.17
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46530
diff changeset
1294 completions, clicking with @kbd{Mouse-3} on a completion item invokes
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1295 help on that item (@pxref{Completion}).
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1296 @end itemize
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1297 @noindent
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1298 In both cases, a blue face indicates that the item is documented in the
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1299 IDL manual, but an attempt will be made to visit non-blue items directly
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1300 in the originating source file.
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1301
46534
9059071c4fa9 Updated with patches from 1.8-1.17
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46530
diff changeset
1302 @cindex Help application, key bindings
9059071c4fa9 Updated with patches from 1.8-1.17
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46530
diff changeset
1303 @cindex Key bindings, in help application
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1304 The help window is normally displayed in a separate frame. The
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1305 following commands can be used to navigate inside the help system:
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1306
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1307 @multitable @columnfractions .15 .85
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1308 @item @kbd{@key{SPACE}}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1309 @tab Scroll forward one page.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1310 @item @kbd{@key{RET}}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1311 @tab Scroll forward one line.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1312 @item @kbd{@key{DEL}}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1313 @tab Scroll back one page.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1314 @item @kbd{n, p}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1315 @tab Browse to the next or previous topic (in physical sequence).
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1316 @item @kbd{b, f}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1317 @tab Move back and forward through the help topic history.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1318 @item @kbd{c}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1319 @tab Clear the history.
46534
9059071c4fa9 Updated with patches from 1.8-1.17
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46530
diff changeset
1320 @item @kbd{Mouse-2}
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1321 @tab Follow a link. Active links are displayed in a different font.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1322 Items under @i{See Also} are active, and classes have links to their
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1323 methods and back.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1324 @item @kbd{o}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1325 @tab Open a topic. The topic can be selected with completion.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1326 @item @kbd{*}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1327 @tab Load the whole help file into Emacs, for global text searches.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1328 @item @kbd{q}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1329 @tab Kill the help window.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1330 @end multitable
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1331
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1332 @sp 1
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1333 @noindent When the help text is a source file, the following commands
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1334 are also available:
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1335
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1336 @multitable @columnfractions .15 .85
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1337 @item @kbd{h}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1338 @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
1339 as help.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1340 @item @kbd{H}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1341 @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
1342 @item @kbd{.} @r{(Dot)}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1343 @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
1344 @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
1345 item in the DocLib header.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1346 @item @kbd{F}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1347 @tab Fontify the buffer like source code. See the variable @code{idlwave-help-fontify-source-code}.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1348 @end multitable
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1349
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1350 @defopt idlwave-help-directory
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1351 The directory where idlw-help.txt and idlw-help.el are stored.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1352 @end defopt
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1353
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1354 @defopt idlwave-help-use-dedicated-frame (@code{t})
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1355 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
1356 @end defopt
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1357
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1358 @defopt idlwave-help-frame-parameters
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1359 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
1360 @end defopt
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1361
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1362 @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
1363 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
1364 @end defopt
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1365
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1366 @defopt idlwave-extra-help-function
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1367 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
1368 @end defopt
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1369
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1370 @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
1371 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
1372 @end defopt
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1373
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1374 @defopt idlwave-help-source-try-header (@code{t})
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1375 Non-@code{nil} means try to find help in routine header when displaying source
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1376 file.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1377 @end defopt
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1378
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1379 @defopt idlwave-help-link-face
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1380 The face for links in IDLWAVE online help.
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1381 @end defopt
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1382
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1383 @defopt idlwave-help-activate-links-aggressively (@code{t})
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1384 Non-@code{nil} means make all possible links in help window active.
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
1385 @end defopt
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
1386
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1387 @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
1388 @section Completion
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1389 @cindex Completion
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1390 @cindex Keyword completion
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1391 @cindex Method completion
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1392 @cindex Object method completion
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1393 @cindex Class name completion
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1394 @cindex Function name completion
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1395 @cindex Procedure name completion
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1396
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1397 @kindex M-@key{TAB}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1398 @kindex C-c C-i
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1399 IDLWAVE offers completion for class names, routine names, keywords,
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1400 system variables, class structure tags, regular structure tags and file
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1401 names. As in many programming modes, completion is bound to
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1402 @kbd{M-@key{TAB}} (or @kbd{@key{TAB}} in the IDLWAVE Shell ---
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1403 @pxref{Using the Shell}). Completion uses exactly the same internal
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1404 information as routine info, so when necessary (rarely) it can be
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1405 updated with @kbd{C-c C-i} (@code{idlwave-update-routine-info}).
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1406
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1407 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
1408 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
1409 @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
1410 position marked with a @samp{_}:
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1411
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1412 @example
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1413 plo_ @r{Procedure}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1414 x = a_ @r{Function}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1415 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
1416 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
1417 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
1418 obj -> a_ @r{Object method (procedure)}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1419 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
1420 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
1421 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
1422 pro A_ @r{Class name}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1423 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
1424 !v_ @r{System variable}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1425 !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
1426 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
1427 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
1428 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
1429 @end example
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1430
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1431 @cindex Completion, ambiguity
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1432 @cindex Completion, forcing function name
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1433 The only place where completion is ambiguous is procedure/function
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1434 @emph{keywords} versus @emph{functions}. After @samp{plot,x_}, IDLWAVE
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1435 will always assume a keyword to plot. You can force completion of a
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1436 function name at such a location with a prefix arg: @kbd{C-u
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1437 M-@key{TAB}}.
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1438
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1439 @cindex Scrolling the @file{*Completions*} window
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1440 @cindex Completion, scrolling
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1441 @cindex Completion, Online Help
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1442 @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
1443 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
1444 @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
1445 @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
1446 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
1447 item. Items for which system online help (from the IDL manual) is
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1448 available will be displayed in a different font (e.g. colored blue).
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1449 For other items, the corresponding source code or DocLib header will be
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1450 used as the help text.
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1451
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1452 @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
1453 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
1454 completed keywords.
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1455 @end defopt
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1456
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1457 @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
1458 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
1459 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
1460 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
1461 @end defopt
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1462
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1463 @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
1464 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
1465 completion.
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1466 @end defopt
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1467
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1468 @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
1469 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
1470 available.
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1471 @end defopt
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1472
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1473 @menu
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1474 * Case of Completed Words:: CaseOFcomPletedWords
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1475 * Object Method Completion and Class Ambiguity:: obj->Method, what?
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1476 * 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
1477 * Structure Tag Completion:: Completing state.Tag
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1478 @end menu
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1479
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1480 @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
1481 @subsection Case of Completed Words
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1482 @cindex Case of completed words
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1483 @cindex Mixed case completion
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1484 The case of the completed words is determined by what is already in the
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1485 buffer. When the partial word being completed is all lower case, the
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1486 completion will be lower case as well. If at least one character is
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1487 upper case, the string will be completed in upper case or mixed case.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1488 The default is to use upper case for procedures, functions and keywords,
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1489 and mixed case for object class names and methods, similar to the
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1490 conventions in the IDL manuals. These defaults can be changed with the
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1491 variable @code{idlwave-completion-case}. For instance, to enable
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1492 mixed-case completion for routines in addition to classes and methods,
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1493 you need an entry such as @code{routine . preserve} in that variable.
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1494 To enable total control over the case of completed items, independent of
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1495 buffer context, set @code{idlwave-completion-force-default-case} to
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1496 non-@code{nil}.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1497
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1498 @defopt idlwave-completion-case
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1499 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
1500 of completed words.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1501 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1502
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1503 @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
1504 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
1505 @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
1506 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
1507 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
1508 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1509
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1510 @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
1511 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
1512 completion.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1513 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1514
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1515 @node Object Method Completion and Class Ambiguity, Class and Keyword Inheritance, Case of Completed Words, Completion
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1516 @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
1517 @cindex Object methods
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1518 @cindex Class ambiguity
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1519 @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
1520 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
1521 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
1522 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
1523 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
1524 @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
1525 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
1526 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
1527 @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
1528 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
1529 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
1530 where appropriate.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1531
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1532 @cindex Forcing class query.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1533 @cindex Class query, forcing
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1534 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
1535 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
1536 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
1537 @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
1538 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
1539 common methods for which the number of completing keywords would be too
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1540 large (e.g. @code{Init}). After you have specified the class for a
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1541 particular statement (e.g. when completing the method), IDLWAVE can
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1542 remember it for the rest of the editing session. Subsequent completions
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1543 in the same statement (e.g. keywords) can then reuse this class
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1544 information. This works by placing a text property on the method
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1545 invocation operator @samp{->}, after which the operator will be shown in
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1546 a different face. This is not enabled by default --- the variable
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1547 @code{idlwave-store-inquired-class} 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
1548
27600
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
1549 @defopt idlwave-completion-show-classes (@code{1})
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1550 Non-@code{nil} means show classes in @file{*Completions*} buffer when
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1551 completing object methods and keywords.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1552 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1553
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1554 @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
1555 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
1556 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1557
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1558 @defopt idlwave-query-class (@code{nil})
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1559 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
1560 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1561
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1562 @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
1563 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
1564 @samp{->}.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1565 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1566
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1567 @defopt idlwave-class-arrow-face
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1568 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
1569 text property.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1570 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1571
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1572 @node Class and Keyword Inheritance, Structure Tag Completion, Object Method Completion and Class Ambiguity, Completion
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1573 @subsection Class and Keyword Inheritance
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1574 @cindex Inheritance, class
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1575 @cindex Keyword inheritance
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1576 @cindex Inheritance, keyword
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1577
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1578 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
1579 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
1580 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
1581 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
1582 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
1583 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
1584 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
1585 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
1586 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
1587 @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
1588
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1589 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
1590 @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
1591 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
1592 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
1593 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
1594 @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
1595 @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
1596
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1597 IDLWAVE can accomodate this special synergy between class and keyword
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1598 inheritance: if @code{_EXTRA} or @code{_REF_EXTRA} are detected among a
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1599 method's keyword parameters, all keywords of superclass versions of the
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1600 method being considered are included in completion. The completion
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1601 buffer will label keywords based on their originating class. The
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1602 variable @code{idlwave-keyword-class-inheritance} can be used to
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1603 configure which methods have keyword inheritance treated in this simple,
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1604 class-driven way. By default, only @code{Init} and
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1605 @code{(Get|Set)Property} are.
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 @defopt idlwave-support-inheritance (@code{t})
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1608 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
1609 @end defopt
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1610
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1611 @defopt idlwave-keyword-class-inheritance
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1612 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
1613 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
1614 @end defopt
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1615
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1616 @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
1617 @subsection Structure Tag Completion
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1618 @cindex Completion, structure tag
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1619 @cindex Structure tag completion
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1620
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1621 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
1622 (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
1623 routines. It is very convenient to be able to complete structure tags,
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1624 in the same way as for instance variables of the @samp{self} object
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1625 (@pxref{Object Method Completion and Class Ambiguity}). Add-in code for
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1626 structure tag completion is available in the form of a loadable
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1627 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
1628 structures is highly ambiguous (much more so than @samp{self}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1629 completion), so @code{idlw-complete-structtag} makes an unusual and
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1630 specific assumption: the exact same variable name is used to refer to
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1631 the structure in all parts of the program. So, if you consistently
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1632 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
1633 (e.g. @samp{state}), structure tags which are read from its definition
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1634 can be used for completion.
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1635
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1636 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
1637 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
1638
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1639 @lisp
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1640 (add-hook 'idlwave-load-hook
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1641 (lambda () (require 'idlw-complete-structtag)))
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1642 @end lisp
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1643
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1644 @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
1645 @section Routine Source
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1646 @cindex Routine source file
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1647 @cindex Module source file
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1648 @cindex Source file, of a routine
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1649 @kindex C-c C-v
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1650 In addition to clicking on a @i{Source:} line in the routine info
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1651 window, there is another way to find the source file of a routine. The
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1652 command @kbd{C-c C-v} (@code{idlwave-find-module}) asks for a module
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1653 name, offering the same default as @code{idlwave-routine-info} would
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1654 have used, taken from nearby buffer contents. In the minibuffer,
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1655 specify a complete routine name (including any class part). IDLWAVE
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1656 will display the source file in another window, positioned at the
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1657 routine in question.
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1658
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1659 @cindex Buffers, killing
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1660 @cindex Killing autoloaded buffers
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1661 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
1662 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
1663 sometimes created. The special command @kbd{C-c C-k}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1664 (@code{idlwave-kill-autoloaded-buffers}) can be used to remove these
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1665 buffers.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1666
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1667 @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
1668 @section Resolving Routines
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1669 @cindex @code{RESOLVE_ROUTINE}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1670 @cindex Compiling library modules
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1671 @cindex Routines, resolving
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1672
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1673 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
1674 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
1675 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
1676 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
1677
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1678 @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
1679 of IDLWAVE's routine info collecting functions. A better way is to
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
1680 scan (parts of) the library (@pxref{Library Catalog}). Routine info on
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1681 library modules will then be available without the need to compile the
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1682 modules first, and even without a running shell.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1683
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1684 @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
1685 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
1686
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1687 @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
1688 @section Code Templates
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1689 @cindex Code templates
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1690 @cindex Templates
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1691
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1692 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
1693 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
1694
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1695 @multitable @columnfractions .15 .85
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1696 @item @kbd{C-c C-c}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1697 @tab @code{CASE} statement template
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1698 @item @kbd{C-c C-f}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1699 @tab @code{FOR} loop template
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1700 @item @kbd{C-c C-r}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1701 @tab @code{REPEAT} loop template
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1702 @item @kbd{C-c C-w}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1703 @tab @code{WHILE} loop template
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1704 @end multitable
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1705
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1706 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
1707 (@pxref{Abbreviations}).
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1708
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1709 @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
1710 @section Abbreviations
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1711 @cindex Abbreviations
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1712
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1713 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
1714 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
1715 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
1716 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
1717 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
1718 @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
1719 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
1720 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
1721 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
1722
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1723 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
1724 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
1725 idlwave-list-abbrevs}.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1726
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1727 Template abbreviations:
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1728
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1729 @multitable @columnfractions .15 .85
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1730 @item @code{\pr}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1731 @tab @code{PROCEDURE} template
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1732 @item @code{\fu}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1733 @tab @code{FUNCTION} template
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1734 @item @code{\c}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1735 @tab @code{CASE} statement template
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1736 @item @code{\f}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1737 @tab @code{FOR} loop template
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1738 @item @code{\r}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1739 @tab @code{REPEAT} loop template
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1740 @item @code{\w}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1741 @tab @code{WHILE} loop template
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1742 @item @code{\i}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1743 @tab @code{IF} statement template
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1744 @item @code{\elif}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1745 @tab @code{IF-ELSE} statement template
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1746 @end multitable
27600
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
1747
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1748 String abbreviations:
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1749
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1750 @multitable @columnfractions .15 .85
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1751 @item @code{\ap}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1752 @tab @code{arg_present()}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1753 @item @code{\b}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1754 @tab @code{begin}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1755 @item @code{\cb}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1756 @tab @code{byte()}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1757 @item @code{\cc}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1758 @tab @code{complex()}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1759 @item @code{\cd}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1760 @tab @code{double()}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1761 @item @code{\cf}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1762 @tab @code{float()}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1763 @item @code{\cl}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1764 @tab @code{long()}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1765 @item @code{\co}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1766 @tab @code{common}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1767 @item @code{\cs}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1768 @tab @code{string()}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1769 @item @code{\cx}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1770 @tab @code{fix()}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1771 @item @code{\e}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1772 @tab @code{else}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1773 @item @code{\ec}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1774 @tab @code{endcase}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1775 @item @code{\ee}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1776 @tab @code{endelse}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1777 @item @code{\ef}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1778 @tab @code{endfor}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1779 @item @code{\ei}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1780 @tab @code{endif else if}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1781 @item @code{\el}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1782 @tab @code{endif else}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1783 @item @code{\en}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1784 @tab @code{endif}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1785 @item @code{\er}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1786 @tab @code{endrep}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1787 @item @code{\es}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1788 @tab @code{endswitch}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1789 @item @code{\ew}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1790 @tab @code{endwhile}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1791 @item @code{\g}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1792 @tab @code{goto,}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1793 @item @code{\h}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1794 @tab @code{help,}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1795 @item @code{\ik}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1796 @tab @code{if keyword_set() then}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1797 @item @code{\iap}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1798 @tab @code{if arg_present() then}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1799 @item @code{\ine}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1800 @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
1801 @item @code{\inn}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1802 @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
1803 @item @code{\k}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1804 @tab @code{keyword_set()}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1805 @item @code{\n}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1806 @tab @code{n_elements()}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1807 @item @code{\np}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1808 @tab @code{n_params()}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1809 @item @code{\oi}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1810 @tab @code{on_ioerror,}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1811 @item @code{\or}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1812 @tab @code{openr,}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1813 @item @code{\ou}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1814 @tab @code{openu,}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1815 @item @code{\ow}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1816 @tab @code{openw,}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1817 @item @code{\p}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1818 @tab @code{print,}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1819 @item @code{\pt}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1820 @tab @code{plot,}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1821 @item @code{\re}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1822 @tab @code{read,}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1823 @item @code{\rf}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1824 @tab @code{readf,}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1825 @item @code{\rt}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1826 @tab @code{return}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1827 @item @code{\ru}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1828 @tab @code{readu,}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1829 @item @code{\s}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1830 @tab @code{size()}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1831 @item @code{\sc}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1832 @tab @code{strcompress()}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1833 @item @code{\sl}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1834 @tab @code{strlowcase()}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1835 @item @code{\sm}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1836 @tab @code{strmid()}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1837 @item @code{\sn}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1838 @tab @code{strlen()}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1839 @item @code{\sp}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1840 @tab @code{strpos()}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1841 @item @code{\sr}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1842 @tab @code{strtrim()}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1843 @item @code{\st}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1844 @tab @code{strput()}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1845 @item @code{\su}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1846 @tab @code{strupcase()}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1847 @item @code{\t}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1848 @tab @code{then}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1849 @item @code{\u}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1850 @tab @code{until}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1851 @item @code{\wc}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1852 @tab @code{widget_control,}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1853 @item @code{\wi}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1854 @tab @code{widget_info()}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1855 @item @code{\wu}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1856 @tab @code{writeu,}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1857 @end multitable
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1858
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1859 @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
1860 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
1861 convenience function @code{idlwave-define-abbrev}:
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1862
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1863 @lisp
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1864 (add-hook 'idlwave-mode-hook
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1865 (lambda ()
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1866 (idlwave-define-abbrev "wb" "widget_base()"
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1867 (idlwave-keyword-abbrev 1))
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1868 (idlwave-define-abbrev "ine" "IF N_Elements() EQ 0 THEN"
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1869 (idlwave-keyword-abbrev 11))))
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1870 @end lisp
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1871
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1872 Notice how the abbreviation (here @emph{wb}) and its expansion
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1873 (@emph{widget_base()}) are given as argument, and the single argument to
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1874 @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
1875 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
1876 parentheses).
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 The abbreviations are expanded in upper or lower case, depending upon
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1879 the variables @code{idlwave-abbrev-change-case} and (for reserved word
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1880 templates) @code{idlwave-reserved-word-upcase} (@pxref{Case Changes}).
27600
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
1881
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
1882 @defopt idlwave-abbrev-start-char (@code{"\"})
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1883 A single character string used to start abbreviations in abbrev
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1884 mode.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1885 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1886
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1887 @defopt idlwave-abbrev-move (@code{t})
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1888 Non-@code{nil} means the abbrev hook can move point, e.g. to end up
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1889 between the parenthesis of a function call.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1890 @end defopt
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 @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
1893 @section Actions
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1894 @cindex Actions
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1895 @cindex Coding standards, enforcing
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1896
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1897 @emph{Actions} are special commands which are executed automatically
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1898 while you write code in order to check the structure of the program or
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1899 to enforce coding standards. Most actions which have been implemented
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1900 in IDLWAVE are turned off by default, assuming that the average user
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1901 wants her code the way she writes it. But if you are a lazy typist and
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1902 want your code to adhere to certain standards, actions can be
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1903 helpful.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1904
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
1905 Actions can be applied in three ways:
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1906
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1907 @itemize @bullet
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1908 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1909 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
1910 @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
1911 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
1912 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
1913 case.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1914 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1915 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
1916 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
1917 must be non-@code{nil}.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1918 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1919 @cindex Foreign code, adapting
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1920 @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
1921 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
1922 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
1923 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
1924 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
1925 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
1926 indentation of the code.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1927 @end itemize
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1928
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1929 @defopt idlwave-do-actions (@code{nil})
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1930 Non-@code{nil} means performs actions when indenting.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1931 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1932
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1933 @menu
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1934 * Block Boundary Check:: Is the END correct
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1935 * Padding Operators:: Enforcing space around `=' etc
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1936 * Case Changes:: Enforcing upper case keywords
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1937 @end menu
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1938
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1939 @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
1940 @subsection Block Boundary Check
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1941 @cindex Block boundary check
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1942 @cindex @code{END} type checking
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1943 @cindex @code{END}, automatic insertion
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1944 @cindex @code{END}, expanding
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1945 @cindex Block, closing
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1946 @cindex Closing a block
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1947
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1948 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
1949 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
1950 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
1951 @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
1952 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
1953
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1954 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
1955 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
1956 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
1957 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
1958
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1959 @defopt idlwave-show-block (@code{t})
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1960 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
1961 @code{idlwave-show-begin}.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1962 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1963
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
1964 @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
1965 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
1966 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1967
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1968 @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
1969 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
1970 @end defopt
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1971
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1972 @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
1973 @subsection Padding Operators
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1974 @cindex Padding operators with spaces
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1975 @cindex Operators, padding with spaces
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
1976 @cindex Space, around operators
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1977
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1978 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
1979 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
1980 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
1981 @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
1982 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
1983 @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
1984 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
1985 @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
1986 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
1987 in @file{.emacs}
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1988
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1989 @lisp
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1990 (add-hook 'idlwave-mode-hook
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1991 (lambda ()
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1992 (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
1993 (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
1994 (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
1995 @end lisp
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1996
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
1997 @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
1998 Non-@code{nil} means enable @code{idlwave-surround}. If non-@code{nil},
27600
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
1999 @samp{=}, @samp{<}, @samp{>}, @samp{&}, @samp{,}, @samp{->} are
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2000 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
2001 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2002
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2003 @defopt idlwave-pad-keyword (@code{t})
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2004 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
2005 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2006
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2007 @node Case Changes, , Padding Operators, Actions
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2008 @subsection Case Changes
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2009 @cindex Case changes
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2010 @cindex Upcase, enforcing for reserved words
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2011 @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
2012
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2013 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
2014 abbreviations by customizing the variables
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2015 @code{idlwave-abbrev-change-case} and
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2016 @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
2017 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
2018 your @file{.emacs} file:
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2019
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2020 @lisp
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2021 (add-hook 'idlwave-mode-hook
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2022 (lambda ()
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2023 ;; Capitalize system vars
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2024 (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
2025 ;; Capitalize procedure name
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2026 (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
2027 '(capitalize-word 1) t)
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2028 ;; Capitalize common block name
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2029 (idlwave-action-and-binding "\\<common\\>[ \t]+\\<"
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2030 '(capitalize-word 1) t)))
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2031 @end lisp
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2032
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2033 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
2034 @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
2035 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
2036 @ref{Completion}.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2037
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2038 @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
2039 Non-@code{nil} means all abbrevs will be forced to either upper or lower
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2040 case. Legal values are @code{nil}, @code{t}, and @code{down}.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2041 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2042
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2043 @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
2044 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
2045 expansion.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2046 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2047
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2048
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2049 @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
2050 @section Documentation Header
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2051 @cindex Documentation header
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2052 @cindex DocLib header
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2053 @cindex Modification timestamp
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2054 @cindex Header, for file documentation
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2055 @cindex Timestamp, in doc header.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2056 @cindex Changelog, in doc header.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2057
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2058 @kindex C-c C-h
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2059 @kindex C-c C-m
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2060 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
2061 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
2062 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
2063 @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
2064 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
2065 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
2066 timestamp.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2067
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2068 @defopt idlwave-file-header
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2069 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
2070 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2071
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2072 @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
2073 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
2074 of file.
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2075 @end defopt
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2076
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2077 @defopt idlwave-timestamp-hook
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2078 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
2079 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2080
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2081 @defopt idlwave-doc-modifications-keyword
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2082 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
2083 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2084
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2085 @defopt idlwave-doclib-start
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2086 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
2087 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2088
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2089 @defopt idlwave-doclib-end
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2090 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
2091 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2092
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2093 @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
2094 @section Motion Commands
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2095 @cindex Motion commands
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2096 @cindex Program structure, moving through
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2097 @cindex Code structure, moving through
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2098 @cindex @file{Func-menu}, XEmacs package
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2099 @cindex @file{Imenu}, Emacs package
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2100 @cindex Function definitions, jumping to
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2101 @cindex Procedure definitions, jumping to
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2102
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2103 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
2104 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
2105 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
2106 @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
2107
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2108 @lisp
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2109 (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
2110 @end lisp
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2111
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2112 @cindex @file{Speedbar}, Emacs package
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2113
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2114 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
2115 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
2116 definitions. See @code{Tools->Display Speedbar}.
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2117
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2118 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
2119 IDL program:
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 @multitable @columnfractions .15 .85
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2122 @item @kbd{C-M-a}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2123 @tab Beginning of subprogram
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2124 @item @kbd{C-M-e}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2125 @tab End of subprogram
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2126 @item @kbd{C-c @{}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2127 @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
2128 @item @kbd{C-c @}}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2129 @tab End of block (stay inside the block)
40705
421e0a91a1d1 Replace M-C- with C-M-
Eli Zaretskii <eliz@gnu.org>
parents: 39268
diff changeset
2130 @item @kbd{C-M-n}
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2131 @tab Forward block (on same level)
40705
421e0a91a1d1 Replace M-C- with C-M-
Eli Zaretskii <eliz@gnu.org>
parents: 39268
diff changeset
2132 @item @kbd{C-M-p}
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2133 @tab Backward block (on same level)
40705
421e0a91a1d1 Replace M-C- with C-M-
Eli Zaretskii <eliz@gnu.org>
parents: 39268
diff changeset
2134 @item @kbd{C-M-d}
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2135 @tab Down block (enters a block)
40705
421e0a91a1d1 Replace M-C- with C-M-
Eli Zaretskii <eliz@gnu.org>
parents: 39268
diff changeset
2136 @item @kbd{C-M-u}
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2137 @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
2138 @item @kbd{C-c C-n}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2139 @tab Next Statement
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2140 @end multitable
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2141
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2142
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2143 @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
2144 @section Miscellaneous Options
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2145 @cindex Hooks
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2146
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2147 @defopt idlwave-help-application
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2148 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
2149 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2150
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2151 @defopt idlwave-startup-message (@code{t})
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2152 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
2153 is first called.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2154 @end defopt
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 @defopt idlwave-mode-hook
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2157 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
2158 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2159
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2160 @defopt idlwave-load-hook
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2161 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
2162 @end defopt
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
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2165
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2166 @node The IDLWAVE Shell, Installation, The IDLWAVE Major Mode, Top
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2167 @chapter The IDLWAVE Shell
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2168 @cindex IDLWAVE shell
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2169 @cindex Major mode, @code{idlwave-shell-mode}
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2170 @cindex IDL, as Emacs subprocess
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2171 @cindex Subprocess of Emacs, IDL
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2172 @cindex Comint, Emacs package
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2173 @cindex Windows
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2174 @cindex MacOS
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2175
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2176 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
2177 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
2178 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
2179 interactively, to compile and run IDL programs in Emacs buffers and to
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2180 debug these programs. The IDLWAVE shell is built upon @file{comint}, an
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2181 Emacs packages which handles the communication with the IDL program.
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2182 Unfortunately IDL for Windows and MacOS do not have command-prompt
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2183 versions and thus do not allow the interaction with
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2184 Emacs@footnote{Please inform the maintainer if you come up with a way to
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2185 make the IDLWAVE shell work on these systems.} --- so the IDLWAVE shell
46534
9059071c4fa9 Updated with patches from 1.8-1.17
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46530
diff changeset
2186 currently only works under GNU and Unix.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2187
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2188 @menu
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2189 * 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
2190 * Using the Shell:: Interactively working with the Shell
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2191 * Debugging IDL Programs:: Compilation/Debugging
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2192 * Examining Variables::
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2193 * Custom Expression Examination::
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2194 @end menu
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2195
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2196 @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
2197 @section Starting the Shell
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2198 @cindex Starting the shell
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2199 @cindex Shell, starting
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2200 @cindex Dedicated frame, for shell buffer
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2201 @cindex Frame, for shell buffer
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2202 @cindex Subprocess of Emacs, IDL
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2203
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2204 @kindex C-c C-s
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2205 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
2206 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
2207 @kbd{C-c C-s}. It creates a buffer @file{*idl*} which is used to
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2208 interact with the shell. If the shell is already running, @kbd{C-c C-s}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2209 will simple switch to the shell buffer. The command @kbd{C-c C-l}
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2210 (@code{idlwave-shell-recenter-shell-window}) displays the shell window
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2211 without selecting it. The shell can also be started automatically when
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2212 another command tries to send a command to it. To enable auto start,
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2213 set the variable @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
2214
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2215 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
2216 @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
2217 @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
2218 window, configure the variable
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2219 @code{idlwave-shell-use-dedicated-frame}.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2220
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2221 To launch a quick IDLWAVE shell directly from a shell prompt without an
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2222 IDLWAVE buffer (e.g., as a replacement for running inside an xterm),
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2223 define an alias with the following content:
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2224
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2225 @example
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2226 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
2227 @end example
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2228
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2229 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
2230 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
2231
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2232 @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
2233 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
2234 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2235
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2236 @defopt idlwave-shell-command-line-options
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2237 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
2238 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2239
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2240 @defopt idlwave-shell-prompt-pattern
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2241 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
2242 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2243
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2244 @defopt idlwave-shell-process-name
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2245 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
2246 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2247
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2248 @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
2249 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
2250 running.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2251 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2252
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2253 @defopt idlwave-shell-initial-commands
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2254 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
2255 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2256
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2257 @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
2258 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
2259 @end defopt
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2260
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2261 @defopt idlwave-shell-command-history-file (@file{~/.idlwhist})
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2262 The file in which the command history of the idlwave shell is saved.
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2263 @end defopt
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2264
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2265 @defopt idlwave-shell-use-dedicated-frame (@code{nil})
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2266 Non-@code{nil} means IDLWAVE should use a special frame to display
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2267 shell buffer.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2268 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2269
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2270 @defopt idlwave-shell-frame-parameters
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2271 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
2272 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2273
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2274 @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
2275 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
2276 window.
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2277 @end defopt
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2278
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2279 @defopt idlwave-shell-temp-pro-prefix
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2280 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
2281 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2282
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2283 @cindex Hooks
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2284 @defopt idlwave-shell-mode-hook
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2285 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
2286 @end defopt
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 @node Using the Shell, Debugging IDL Programs, Starting the Shell, The IDLWAVE Shell
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2289 @section Using the Shell
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2290 @cindex Comint
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2291 @cindex Shell, basic commands
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2292
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2293 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
2294 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
2295 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
2296 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
2297 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
2298 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
2299 @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
2300 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
2301 commands:
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2302
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2303 @multitable @columnfractions .12 .88
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
2304 @item @key{UP}
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
2305 @tab Cycle backwards in input history
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
2306 @item @key{DOWN}
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
2307 @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
2308 @item @kbd{M-p}
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
2309 @tab Cycle backwards in input history @emph{matching input}
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2310 @item @kbd{M-n}
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
2311 @tab Cycle forwards in input history @emph{matching input}
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2312 @item @kbd{M-r}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2313 @tab Previous input matching a regexp
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2314 @item @kbd{M-s}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2315 @tab Next input that matches a regexp
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2316 @item @kbd{return}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2317 @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
2318 @item @kbd{C-c C-a}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2319 @tab Beginning of line; skip prompt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2320 @item @kbd{C-c C-u}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2321 @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
2322 @item @kbd{C-c C-w}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2323 @tab Kill word before cursor
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2324 @item @kbd{C-c C-c}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2325 @tab Send ^C
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2326 @item @kbd{C-c C-z}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2327 @tab Send ^Z
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2328 @item @kbd{C-c C-\}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2329 @tab Send ^\
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2330 @item @kbd{C-c C-o}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2331 @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
2332 @item @kbd{C-c C-r}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2333 @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
2334 @item @kbd{C-c C-l}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2335 @tab List input history
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2336 @end multitable
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2337
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2338 In addition to these standard @file{comint} commands,
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2339 @code{idlwave-shell-mode} provides many of the commands which simplify
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2340 writing IDL code, including abbreviations, online help, and completion.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2341 See @ref{Routine Info} and @ref{Online Help} and @ref{Completion} for more
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2342 information on these commands.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2343
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2344 @cindex Completion, in the shell
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2345 @cindex Routine info, in the shell
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2346 @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
2347 @multitable @columnfractions .12 .88
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2348 @item @kbd{@key{TAB}}
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2349 @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
2350 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
2351 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
2352 (@code{idlwave-shell-complete}).
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2353 @item @kbd{M-@key{TAB}}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2354 @tab Same as @key{TAB}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2355 @item @kbd{C-c ?}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2356 @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
2357 @item @kbd{M-?}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2358 @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
2359 @item @kbd{C-c C-i}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2360 @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
2361 (@code{idlwave-update-routine-info})
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2362 @item @kbd{C-c C-v}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2363 @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
2364 @item @kbd{C-c =}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2365 @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
2366 @end multitable
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2367
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
2368 @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
2369 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
2370 history like xterm.
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
2371 @end defopt
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
2372
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2373 @defopt idlwave-shell-comint-settings
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2374 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
2375 @end defopt
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2376
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2377 @defopt idlwave-shell-file-name-chars
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2378 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
2379 completion.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2380 @end defopt
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2381
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
2382 @defopt idlwave-shell-graphics-window-size
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
2383 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
2384 @end defopt
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
2385
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2386 @cindex Input mode
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2387 @cindex Character input mode (Shell)
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2388 @cindex Line input mode (Shell)
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2389 @cindex Magic spells, for input mode
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2390 @cindex Spells, magic
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2391 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
2392 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
2393 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
2394 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
2395 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
2396 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
2397 (@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
2398 (@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
2399 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
2400 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
2401 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
2402 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
2403 automatic switches of the input mode.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2404
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2405 @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
2406 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
2407 output.
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2408 @end defopt
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2409
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2410 @defopt idlwave-shell-input-mode-spells
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2411 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
2412 modes.
26960
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
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2415 @node Debugging IDL Programs, Examining Variables, Using the Shell, The IDLWAVE Shell
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2416 @section Debugging IDL Programs
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2417 @cindex Debugging
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2418 @cindex Keybindings for debugging
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2419 @cindex Toolbar
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2420
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2421 @kindex C-c C-d
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2422 Programs can be compiled, run, and debugged directly from the source
46534
9059071c4fa9 Updated with patches from 1.8-1.17
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46530
diff changeset
2423 buffer in Emacs. The IDLWAVE shell installs key bindings both in the
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2424 shell buffer and in all IDL code buffers of the current Emacs session.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2425 On Emacs versions which support this, it also installs a debugging
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2426 toolbar. The display of the toolbar can be toggled with @kbd{C-c C-d
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2427 C-t} (@code{idlwave-shell-toggle-toolbar}).
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2428
46534
9059071c4fa9 Updated with patches from 1.8-1.17
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46530
diff changeset
2429 The debugging key bindings are by default on the prefix key @kbd{C-c
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2430 C-d}, so for example setting a breakpoint is done with @kbd{C-c C-d
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
2431 C-b}, compiling a source file with @kbd{C-c C-d C-c}. If you find this
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2432 too much work, you can add bindings for one or more modifier keys which
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2433 is not used by other commands. For example, if you write in
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2434 @file{.emacs}:
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
2435
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
2436 @lisp
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
2437 (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
2438 @end lisp
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
2439
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2440 @noindent a breakpoint can 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
2441 @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
2442 source file will be on @kbd{C-S-c}, deleting a breakpoint @kbd{C-S-d},
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
2443 etc. In the remainder of this chapter we will assume that the @kbd{C-c
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
2444 C-d} bindings are active, but each of these bindings will have an
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2445 equivalent single-keypress shortcut if modifiers are given in the
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2446 @code{idlwave-shell-debug-modifiers} variable (see @pxref{Lesson II --
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2447 Customization}).
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2448
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2449 @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
2450 The prefix key for the debugging map
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2451 @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
2452 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2453
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2454 @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
2455 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
2456 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
2457 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2458
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
2459 @defopt idlwave-shell-debug-modifiers (@code{nil})
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2460 List of modifier keys to use for additional binding of debugging
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2461 commands in the shell and source buffers.
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
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2464 @defopt idlwave-shell-use-toolbar (@code{t})
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2465 Non-@code{nil} means use the debugging toolbar in all IDL related
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2466 buffers.
26960
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
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2469
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2470 @menu
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2471 * Compiling Programs:: Compiling buffers under the shell
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2472 * Breakpoints and Stepping:: Deciding where to stop and look
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2473 * Walking the Calling Stack:: From where was this routine called?
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2474 @end menu
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2475
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2476 @node Compiling Programs, Breakpoints and Stepping, Debugging IDL Programs, Debugging IDL Programs
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2477 @subsection Compiling Programs
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2478 @cindex Compiling programs
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2479 @cindex Programs, compiling
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2480 @cindex Default command line, executing
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2481 @cindex Executing a default command line
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2482
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2483 @kindex C-c C-d C-c
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2484 In order to compile the current buffer under the IDLWAVE shell, press
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2485 @kbd{C-c C-d C-c} (@code{idlwave-save-and-run}). This first saves the
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2486 current buffer and then sends the command @samp{.run path/to/file} to the
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2487 shell. You can also execute @kbd{C-c C-d C-c} from the shell buffer, in
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2488 which case the most recently compiled buffer will be saved and
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2489 re-compiled.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2490
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2491 When developing or debugging a program, it is often necessary to execute
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2492 the same command line many times. A convenient way to do this is
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2493 @kbd{C-c C-d C-y} (@code{idlwave-shell-execute-default-command-line}).
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2494 This command first resets IDL from a state of interrupted execution by
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2495 closing all files and returning to the main interpreter level. Then a
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2496 default command line is send to the shell. To edit the default command
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2497 line, call @code{idlwave-shell-execute-default-command-line} with a
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2498 prefix argument: @kbd{C-u C-c C-d C-y}.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2499
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2500 @defopt idlwave-shell-mark-stop-line (@code{t})
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2501 Non-@code{nil} means mark the source code line where IDL is currently
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2502 stopped. The value specifies the preferred method. Legal values are
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2503 @code{nil}, @code{t}, @code{arrow}, and @code{face}.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2504 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2505
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2506 @defopt idlwave-shell-overlay-arrow (@code{">"})
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2507 The overlay arrow to display at source lines where execution halts, if
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2508 configured in @code{idlwave-shell-mark-stop-line}.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2509 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2510
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2511 @defopt idlwave-shell-stop-line-face
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2512 The face which highlights the source line where IDL is stopped, if
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2513 configured in @code{idlwave-shell-mark-stop-line}.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2514 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2515
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2516 @node Breakpoints and Stepping, Walking the Calling Stack, Compiling Programs, Debugging IDL Programs
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2517 @subsection Breakpoints and Stepping
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2518 @cindex Breakpoints
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2519 @cindex Stepping
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2520 @cindex Execution, controlled
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 @kindex C-c C-d C-b
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2523 @kindex C-c C-d C-b
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2524 You can set breakpoints and step through a program with IDLWAVE.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2525 Setting a breakpoint in the current line of the source buffer is done
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2526 with @kbd{C-c C-d C-b} (@code{idlwave-shell-break-here}). With a prefix
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2527 arg of 1 (i.e. @kbd{C-1 C-c C-d C-b}, the breakpoint gets a @code{/ONCE}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2528 keyword, meaning that it will be deleted after first use. With a
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2529 numeric prefix greater than one, the breakpoint will only be active the
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2530 @code{nth} time it is hit. To clear the breakpoint in the current line,
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2531 use @kbd{C-c C-d C-d} (@code{idlwave-clear-current-bp}). When executed
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2532 from the shell window, the breakpoint where IDL is currently stopped
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2533 will be deleted. To clear all breakpoints, use @kbd{C-c C-d C-a}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2534 (@code{idlwave-clear-all-bp}). Breakpoint lines are highlighted in the
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2535 source code.
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2536
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2537 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
2538 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
2539 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
2540 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
2541 @kbd{C-c C-d C-h} to continue execution to the line at the cursor and
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2542 @kbd{C-c C-d C-r} to continue execution. Here is a summary of the
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2543 breakpoint and stepping commands:
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2544
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2545 @multitable @columnfractions .23 .77
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2546 @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
2547 @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
2548 @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
2549 @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
2550 @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
2551 @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
2552 @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
2553 @tab Clear all breakpoints (@code{idlwave-shell-clear-all-bp})
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2554 @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
2555 @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
2556 @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
2557 @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
2558 @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
2559 @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
2560 @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
2561 @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
2562 @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
2563 @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
2564 @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
2565 @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
2566 @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
2567 @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
2568 @item @kbd{C-c C-d C-r}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2569 @tab Continue execution to next breakpoint (@code{idlwave-shell-cont})
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2570 @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
2571 @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
2572 @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
2573 @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
2574 @end multitable
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2575
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2576 @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
2577 Non-@code{nil} means mark breakpoints in the source file buffers. The
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2578 value indicates the preferred method. Legal values are @code{nil},
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2579 @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
2580 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2581
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2582 @defopt idlwave-shell-breakpoint-face
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2583 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
2584 @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
2585 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2586
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2587 @node Walking the Calling Stack, , Breakpoints and Stepping, Debugging IDL Programs
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2588 @subsection Walking the Calling Stack
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2589 @cindex Calling stack, walking
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2590
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2591 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
2592 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
2593 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
2594 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
2595 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
2596 (@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
2597 (@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
2598 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
2599 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
2600 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
2601 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
2602 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
2603 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
2604 higher calling stack levels.
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2605
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2606 @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
2607 @section Examining Variables
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2608 @cindex @code{PRINT} expressions
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2609 @cindex @code{HELP}, on expressions
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2610 @cindex Expressions, printing
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2611 @cindex Expressions, help
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2612 @cindex Printing expressions
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2613 @cindex Mouse binding to print expressions
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2614
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2615 @kindex 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
2616 Do you find yourself repeatedly typing, e.g. @code{print,n_elements(x)},
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2617 and similar statements to remind yourself of the
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2618 type/size/structure/value/etc. of variables and expressions in your code
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2619 or at the command line? IDLWAVE has a suite of special commands to
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2620 automate these types of variables or expression examinations. They work
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2621 by sending statements to the shell formatted to include the indicated
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2622 expression.
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2623
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2624 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
2625 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
2626 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
2627 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
2628 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
2629 point remains unmoved in the command being composed --- you can inspect
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2630 the contituents of a command you're building without interrupting the
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2631 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
2632 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
2633 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
2634
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2635 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
2636 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
2637 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
2638 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
2639 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
2640
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2641 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
2642 print the expression at point, and @kbd{C-c C-d ?}, to invoke help on
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2643 this expression. The expression at point is either an array expression
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2644 or a function call, or the contents of a pair of parentheses. The
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2645 selected expression is highlighted, and simultaneously the resulting
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2646 output is highlighted in the shell. Calling the above commands with a
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2647 prefix argument will prompt for an expression instead of using the one
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2648 at point. Two prefix arguments (@kbd{C-u C-u C-c C-d C-p}) will use the
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2649 current region as expression.
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2650
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2651 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
2652 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
2653 @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
2654 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
2655 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
2656 nearest expression will be selected in the same manner as described
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2657 above. You can also @emph{drag} the mouse in order to highlight exactly
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2658 a specific expression or sub-expression to be examined. For custom
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2659 expression examination, and the customizable pop-up examine selection,
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2660 @xref{Custom Expression Examination}.
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2661
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2662 @cindex Printing expressions, on calling stack
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2663 @cindex Restrictions for expression printing
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2664 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
2665 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
2666 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
2667 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
2668 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
2669 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
2670 (@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
2671 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
2672 levels except the current:
27600
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
2673
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
2674 @itemize @bullet
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
2675 @item
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
2676 Array expressions must use the @samp{[ ]} index delimiters. Identifiers
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
2677 with a @samp{( )} will be interpreted as function calls.
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
2678 @item
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
2679 @cindex ROUTINE_NAMES, IDL procedure
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2680 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
2681 stack uses the @emph{unsupported} IDL routine @code{ROUTINE_NAMES},
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2682 which may or may not be available in future versions of IDL.
27600
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
2683 @end itemize
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
2684
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2685 @defopt idlwave-shell-expression-face
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2686 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
2687 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
2688 the expression printed by IDL.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2689 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2690
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2691 @defopt idlwave-shell-output-face
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2692 The face for @code{idlwave-shell-output-overlay}.
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2693 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
2694 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
2695 @end defopt
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2696
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2697 @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
2698 If non-@code{nil}, re-direct the output of examine commands to a special
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2699 @file{*Examine*} buffer, instead of in the shell itself.
27600
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
2700 @end defopt
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2701
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2702 @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
2703 @section Custom Expression Examination
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2704 @cindex Expressions, custom examination
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2705 @cindex Custom expression examination
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2706
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2707 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
2708 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
2709 @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
2710 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
2711 mouse examine command, and two macros for generating your own examine
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2712 bindings.
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2713
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2714 The most powerful and flexible mouse examine command is available on
46534
9059071c4fa9 Updated with patches from 1.8-1.17
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46530
diff changeset
2715 @kbd{C-S-Mouse-2}. Just as for all the other mouse examine commands, it
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2716 permits click or drag expression selection, but instead of sending
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2717 hard-coded commands to the shell, it pops-up a customizable selection
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2718 list of examine functions to choose among, configured with the
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2719 @code{idlwave-shell-examine-alist} variable. This variable is a list of
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2720 key-value pairs (an @emph{alist} in Emacs parlance), where the keys name
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2721 the command, and the values are the command strings, in which the text
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2722 @code{___} (three underscores) will be replaced by the selected
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2723 expression before being sent to the shell. An example might be key
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2724 @code{Structure Help} with value @code{help,___,/STRUCTURE}.
46534
9059071c4fa9 Updated with patches from 1.8-1.17
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46530
diff changeset
2725 @code{idlwave-shell-examine-alist} comes by default with a large list of
9059071c4fa9 Updated with patches from 1.8-1.17
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46530
diff changeset
2726 examine commands, but can be easily customized to add more.
9059071c4fa9 Updated with patches from 1.8-1.17
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46530
diff changeset
2727
9059071c4fa9 Updated with patches from 1.8-1.17
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46530
diff changeset
2728 In addition to the pop-up mouse command, you can easily create your own
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2729 customized bindings to inspect expressions using the two convenience
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2730 macros @code{idlwave-shell-inspect} and
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2731 @code{idlwave-shell-mouse-inspect}. These create keyboard or
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2732 mouse-based custom inspections of variables, sharing all the same
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2733 properties of the built-in examine commands. Both functions take a
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2734 single string argument sharing the syntax of the
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2735 @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
2736
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2737 @lisp
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2738 (add-hook 'idlwave-shell-mode-hook
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2739 (lambda ()
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2740 (idlwave-shell-define-key-both [s-down-mouse-2]
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2741 (idlwave-shell-mouse-examine
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2742 "print, size(___,/DIMENSIONS)"))
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2743 (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
2744 "print, size(___,/DIMENSIONS)"))
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2745 (idlwave-shell-define-key-both [f10] (idlwave-shell-examine
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2746 "print,size(___,/TNAME)"))
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2747 (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
2748 "help,___,/STRUCTURE"))))
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2749 @end lisp
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2750
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2751 @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
2752 @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
2753 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
2754 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
2755 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
2756
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2757 @defopt idlwave-shell-examine-alist
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2758 An alist of examine commands in which the keys name the command and are
46534
9059071c4fa9 Updated with patches from 1.8-1.17
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46530
diff changeset
2759 displayed in the selection pop-up, and the values are custom IDL examine
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2760 command strings to send, after all instances of @code{___} are replaced
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2761 by the indicated expression.
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2762 @end defopt
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2763
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2764
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2765 @node Installation, Acknowledgements, The IDLWAVE Shell, Top
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2766 @chapter Installation
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2767 @cindex Installation
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2768
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2769 @menu
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2770 * Installing IDLWAVE:: How to install the distribution
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2771 * Installing Online Help:: Where to get the additional files needed
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2772 * Upgrading from idl.el:: Necessary configuration changes
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2773 @end menu
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2774
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2775 @node Installing IDLWAVE, Installing Online Help, Installation, Installation
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2776 @section Installing IDLWAVE
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2777
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2778 @cindex FTP site
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2779 @cindex URL, homepage for IDLWAVE
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2780 @cindex Homepage for IDLWAVE
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2781 @cindex IDLWAVE, homepage
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2782 @cindex XEmacs package IDLWAVE
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2783 @cindex Emacs, distributed with IDLWAVE
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2784 @cindex Copyright, of IDL manual
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2785 IDLWAVE is part of Emacs 21.1 and later. It is also an XEmacs package
27600
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
2786 and can be installed from
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2787 @uref{ftp://ftp.xemacs.org/pub/xemacs/packages/,the XEmacs ftp site}
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2788 with the normal package management system on XEmacs 21. These
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2789 pre-installed versions should work out-of-the-box. However, the files
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2790 required for online help are not distributed with XEmacs/Emacs and have
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2791 to be installed separately@footnote{Due to copyright reasons, the ASCII
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2792 version of the IDL manual cannot be distributed under the GPL.}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2793 (@pxref{Installing Online Help}).
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2794
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2795 You can also download IDLWAVE and install it yourself from
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2796 @uref{@value{IDLWAVE-HOMEPAGE}, the maintainers webpage}. Follow the
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2797 instructions in the INSTALL file.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2798
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2799 @node Installing Online Help, Upgrading from idl.el, Installing IDLWAVE, Installation
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2800 @section Installing Online Help
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2801 @cindex Installing online help
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2802 @cindex Online Help, Installation
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2803
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2804 If you want to use the online help display, two additional files (an
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2805 ASCII version of the IDL documentation and a topics/code file) must be
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2806 installed. These files can also be downloaded from
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2807 @uref{@value{IDLWAVE-HOMEPAGE}, the maintainers webpage}. You need to
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2808 place the files somewhere on your system and tell IDLWAVE where they are
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2809 with
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2810
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2811 @lisp
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2812 (setq idlwave-help-directory "/path/to/help/files/")
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2813 @end lisp
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2814
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2815 @node Upgrading from idl.el, , Installing Online Help, Installation
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2816 @section Upgrading from the old @b{@file{idl.el}} file
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2817 @cindex Upgrading from old @b{@file{idl.el}}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2818 @cindex Renaming old variables
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2819 @cindex Old variables, renaming
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2820 @kindex M-@key{TAB}
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2821
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2822 If you have been using the old @file{idl.el} and @file{idl-shell.el}
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2823 files and would like to use IDLWAVE, you need to update your
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2824 customization in @file{.emacs}.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2825
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2826 @enumerate
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2827 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2828 Change all variable and function prefixes from @samp{idl-} to @samp{idlwave-}.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2829 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2830 Remove the now invalid @code{autoload} and @code{auto-mode-alist} forms
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2831 pointing to the @file{idl.el} and @file{idl-shell.el} files. Install
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2832 the new autoload forms.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2833 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2834 If you have been using the hook function recommended in earlier versions
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2835 to get a separate frame for the IDL shell, remove that command from your
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2836 @code{idlwave-shell-mode-hook}. Instead, set the variable
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2837 @code{idlwave-shell-use-dedicated-frame} with
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2838 @lisp
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2839 (setq idlwave-shell-use-dedicated-frame t)
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2840 @end lisp
27600
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
2841 @item
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2842 The key sequence @kbd{M-@key{TAB}} no longer inserts a TAB character.
46534
9059071c4fa9 Updated with patches from 1.8-1.17
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46530
diff changeset
2843 Like in many other Emacs modes, @kbd{M-@key{TAB}} now does
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2844 completion. Inserting a TAB has therefore been moved to
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2845 @kbd{C-@key{TAB}}. On a character based terminal you can also use
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2846 @kbd{C-c @key{SPC}}.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2847 @end enumerate
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2848
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2849 @node Acknowledgements, Sources of Routine Info, Installation, Top
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2850 @chapter Acknowledgements
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2851 @cindex Acknowledgements
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2852 @cindex Maintainer, of IDLWAVE
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2853 @cindex Authors, of IDLWAVE
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2854 @cindex Contributors, to IDLWAVE
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2855 @cindex Email address, of Maintainer
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2856 @cindex Thanks
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2857
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2858 @noindent
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2859 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
2860
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2861 @itemize @minus
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2862 @item
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
2863 @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
2864 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
2865 for several years.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2866
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2867 @item
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2868 @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
2869 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
2870 everything, modernized IDLWAVE with many new features, and developed the
41745
1061224d9cb0 Update maintainer.
Eli Zaretskii <eliz@gnu.org>
parents: 40705
diff changeset
2871 manual.
1061224d9cb0 Update maintainer.
Eli Zaretskii <eliz@gnu.org>
parents: 40705
diff changeset
2872
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2873 @item
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2874 @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
2875 maintainer, as of version 4.10, helped shape object method completion
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2876 and most new features introduced in versions 4.x.
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2877 @end itemize
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2878
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2879 @noindent
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2880 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
2881 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
2882
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2883 @itemize @minus
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2884 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2885 Ulrik Dickow <dickow@@nbi.dk>
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2886 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2887 Eric E. Dors <edors@@lanl.gov>
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2888 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2889 Stein Vidar H. Haugan <s.v.h.haugan@@astro.uio.no>
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2890 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2891 David Huenemoerder <dph@@space.mit.edu>
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2892 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2893 Kevin Ivory <Kevin.Ivory@@linmpi.mpg.de>
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2894 @item
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2895 Dick Jackson <dick@@d-jackson.com>
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2896 @item
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2897 Xuyong Liu <liu@@stsci.edu>
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2898 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2899 Simon Marshall <Simon.Marshall@@esrin.esa.it>
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2900 @item
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
2901 Craig Markwardt <craigm@@cow.physics.wisc.edu>
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
2902 @item
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2903 Laurent Mugnier <mugnier@@onera.fr>
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2904 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2905 Lubos Pochman <lubos@@rsinc.com>
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2906 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2907 Patrick M. Ryan <pat@@jaameri.gsfc.nasa.gov>
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2908 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2909 Marty Ryba <ryba@@ll.mit.edu>
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2910 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2911 Phil Williams <williams@@irc.chmcc.org>
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2912 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2913 Phil Sterne <sterne@@dublin.llnl.gov>
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2914 @end itemize
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2915
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2916 @noindent
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2917 Thanks to everyone!
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2918
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2919 @node Sources of Routine Info, Configuration Examples, Acknowledgements, Top
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2920 @appendix Sources of Routine Info
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2921
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2922 @cindex Sources of routine information
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2923 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
2924 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
2925 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
2926 know about the accessible routines.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2927
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2928 @menu
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2929 * Routine Definitions:: Where IDL Routines are defined.
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2930 * Routine Information Sources:: So how does IDLWAVE know about...
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
2931 * Library Catalog:: Scanning the Libraries for Routine Info
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2932 * Load-Path Shadows:: Routines defined in several places
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2933 * 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
2934 @end menu
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2935
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2936 @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
2937 @appendixsec Routine Definitions
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2938 @cindex Routine definitions
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2939 @cindex IDL variable @code{!PATH}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2940 @cindex @code{!PATH}, IDL variable
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2941 @cindex @code{CALL_EXTERNAL}, IDL routine
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2942 @cindex @code{LINKIMAGE}, IDL routine
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2943 @cindex External routines
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2944
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2945 @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
2946 several places:
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2947
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2948 @enumerate
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2949 @item
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2950 @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
2951 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
2952 @item
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2953 Routines which are @emph{part of the current program}, defined in a
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2954 file which is explicitly compiled by the user. This file may or may not
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2955 be located on the IDL search path.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2956 @item
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2957 @emph{Library routines} are defined in files located on IDL's search
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2958 path, and will need not be manually compiled. When a library routine is
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2959 called for the first time, IDL will find the source file and compile it
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2960 dynamically. A special sub-category of library routines are the
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2961 @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
2962 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
2963 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2964 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
2965 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
2966 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
2967 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
2968 @end enumerate
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2969
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
2970 @node Routine Information Sources, Library Catalog, 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
2971 @appendixsec Routine Information Sources
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2972 @cindex Routine info sources
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2973 @cindex Builtin list of routines
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2974 @cindex Updating routine info
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2975 @cindex Scanning buffers for routine info
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2976 @cindex Buffers, scanning for routine info
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2977 @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
2978
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2979 @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
2980 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
2981
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2982 @enumerate
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2983
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2984 @item
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2985 It has a @emph{builtin list} with the properties of the builtin IDL
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2986 routines. IDLWAVE @value{VERSION} is distributed with a list of
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2987 @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
2988 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
2989 by scanning the IDL manuals and is stored in the file
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2990 @file{idlw-rinfo.el}. @xref{Documentation Scan}, for information on how
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
2991 to regenerate this file for new versions of IDL.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2992
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2993 @item
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
2994 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
2995 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
2996 information or completion is first requested by the user. Each new
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2997 buffer and each buffer which is saved after making changes is also
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2998 scanned. The command @kbd{C-c C-i} (@code{idlwave-update-routine-info})
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
2999 can be used at any time to rescan all buffers.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3000
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3001 @item
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3002 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
3003 @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
3004 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
3005 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
3006 @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
3007 (@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
3008 routine data.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3009
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3010 @item
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3011 IDLWAVE can scan all or selected library source files and store the
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3012 result in a file which will be automatically loaded just like
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
3013 @file{idlw-rinfo.el}. @xref{Library Catalog}, for information how to
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3014 scan library files.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3015 @end enumerate
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3016
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3017 Loading routine and catalog information is a time consuming process.
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3018 Depending on the system and network configuration it can take up to 30
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3019 seconds. In order to minimize the waiting time upon your first
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3020 completion or routine info command in a session, IDLWAVE uses Emacs idle
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3021 time to do the initialization in 5 steps, yielding to user input in
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3022 between. If this gets into your way, set the variable
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3023 @code{idlwave-init-rinfo-when-idle-after} to 0 (zero).
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3024
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3025 @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
3026 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
3027 @end defopt
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3028
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3029 @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
3030 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
3031 info.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3032 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3033
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3034 @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
3035 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
3036 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3037
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3038 @defopt idlwave-auto-routine-info-updates
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3039 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
3040 @end defopt
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3041
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
3042 @node Library Catalog, Load-Path Shadows, Routine Information Sources, Sources of Routine Info
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3043 @appendixsec Library Catalog
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3044 @cindex Library scan
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
3045 @cindex Library catalog
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3046 @cindex IDL library routine info
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3047 @cindex Windows
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3048 @cindex MacOS
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3049 @cindex IDL variable @code{!DIR}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3050 @cindex @code{!DIR}, IDL variable
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3051
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3052
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3053 IDLWAVE can extract routine information from library modules and store
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3054 that information in a file. To do this, the variable
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3055 @code{idlwave-libinfo-file} needs to contain the path to a file in an
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3056 existing directory (the default is @code{"~/.idlcat.el"}). Since the
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3057 file will contain lisp code, its name should end in @file{.el}. Under
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3058 Windows and MacOS, you also need to specify the search path for IDL
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3059 library files in the variable @code{idlwave-library-path}, and the
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3060 location of the IDL directory (the value of the @code{!DIR} system
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3061 variable) in the variable @code{idlwave-system-directory}, like
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3062 this@footnote{The initial @samp{+} leads to recursive expansion of the
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3063 path, just like in IDL}:
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3064
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3065 @lisp
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3066 (setq idlwave-library-path
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3067 '("+c:/RSI/IDL54/lib/" "+c:/user/me/idllibs" ))
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3068 (setq idlwave-system-directory "c:/RSI/IDL54/")
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3069 @end lisp
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3070
46534
9059071c4fa9 Updated with patches from 1.8-1.17
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46530
diff changeset
3071 @noindent Under GNU and UNIX, these values will be automatically inferred from
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3072 an IDLWAVE shell.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3073
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3074 The command @kbd{M-x idlwave-create-libinfo-file} can then be used to
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3075 scan library files. It brings up a widget in which you can select some
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3076 or all directories on the search path. If you only want to have routine
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3077 and completion info of some libraries, it is sufficient to scan those
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3078 directories. However, if you want IDLWAVE to detect possible name
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3079 conflicts with routines defined in other libraries, the whole pass
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3080 should be scanned.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3081
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3082 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
3083 button in the widget to scan all files in the selected directories and
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3084 write the resulting routine information into the file
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3085 @code{idlwave-libinfo-file}. In order to update the library information
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3086 from the same directories, call the command
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3087 @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
3088 @w{@kbd{C-u C-u C-c C-i}}. This will rescan files in the previously
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3089 selected directories, write an updated version of the libinfo file and
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3090 rebuild IDLWAVE's internal lists. If you give three prefix arguments
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3091 @w{@kbd{C-u C-u C-u C-c C-i}}, updating will be done with a background
46534
9059071c4fa9 Updated with patches from 1.8-1.17
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46530
diff changeset
3092 job@footnote{GNU and Unix systems only, I think.}. You can continue to work,
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3093 and the library catalog will be re-read when it is ready.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3094
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3095 A note of caution: Depending on your local installation, the IDL
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3096 library can be very large. Parsing it for routine information will take
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3097 time and loading this information into Emacs can require a
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3098 significant amount of memory. However, having this information
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3099 available will be a great help.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3100
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3101 @defopt idlwave-libinfo-file
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3102 File for routine information of the IDL library.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3103 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3104
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3105 @defopt idlwave-library-path
46534
9059071c4fa9 Updated with patches from 1.8-1.17
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46530
diff changeset
3106 IDL library path for Windows and MacOS. Not needed under GNU and Unix.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3107 @end defopt
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3108
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3109 @defopt idlwave-system-directory
46534
9059071c4fa9 Updated with patches from 1.8-1.17
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46530
diff changeset
3110 The IDL system directory for Windows and MacOS. Not needed under GNU and Unix.
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3111 @end defopt
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3112
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3113 @defopt idlwave-special-lib-alist
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3114 Alist of regular expressions matching special library directories.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3115 @end defopt
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3116
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
3117 @node Load-Path Shadows, Documentation Scan, Library Catalog, Sources of Routine Info
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3118 @appendixsec Load-Path Shadows
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3119 @cindex Load-path shadows
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3120 @cindex Shadows, load-path
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3121 @cindex Duplicate routines
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3122 @cindex Multiply defined routines
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3123 @cindex Routine definitions, multiple
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3124 @cindex Application, testing for shadowing
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3125 @cindex Buffer, testing for shadowing
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3126
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3127 IDLWAVE can compile a list of routines which are defined in several
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3128 different files. Since one definition will hide (shadow) the others
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3129 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
3130 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
3131 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
3132 @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
3133 section of the routine info buffer (@pxref{Routine Info}). The
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
3134 different definitions of a routine are listed in the sequence of
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3135 @emph{likelihood of use}. So the first entry will be most likely the
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
3136 one you'll get if an unsuspecting command uses that routine. Before
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
3137 listing shadows, you should make sure that routine info is up-to-date by
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
3138 pressing @kbd{C-c C-i}. Here are the different routines:
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3139
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3140 @table @asis
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3141 @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
3142 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
3143 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
3144 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
3145 @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
3146 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
3147 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
3148 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
3149 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
3150 then check for shadowing.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3151 @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
3152 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
3153 @end table
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3154
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3155 For these commands to work properly you should have scanned the entire
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3156 load path, not just selected directories. Also, IDLWAVE should be able
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3157 to 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
3158 @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
3159 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
3160 @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
3161 many other reasons.
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3162
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3163 @cindex Windows
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3164 @cindex MacOS
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3165 @cindex IDL variable @code{!DIR}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3166 @cindex @code{!DIR}, IDL variable
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3167 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
3168 @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
3169 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
3170 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
3171 routines.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3172
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3173 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
3174 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
3175
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3176 @node Documentation Scan, , Load-Path Shadows, Sources of Routine Info
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3177 @appendixsec Documentation Scan
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3178 @cindex @file{get_rinfo}
27186
eb645a473bf8 New version is consistent with the changed names.
Carsten Dominik <dominik@science.uva.nl>
parents: 26960
diff changeset
3179 @cindex @file{idlw-rinfo.el}
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3180 @cindex @file{idlw-help.txt}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3181 @cindex @file{idlw-help.el}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3182 @cindex Scanning the documentation
27186
eb645a473bf8 New version is consistent with the changed names.
Carsten Dominik <dominik@science.uva.nl>
parents: 26960
diff changeset
3183 @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
3184
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3185 IDLWAVE derives it knowledge about system routines from the IDL
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3186 manuals. The file @file{idlw-rinfo.el} contains the routine information
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3187 for the IDL system routines. The Online Help feature of IDLWAVE
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3188 requires ASCII versions of some IDL manuals to be available in a
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3189 specific format (@file{idlw-help.txt}), along with an Emacs-Lisp file
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3190 @file{idlw-help.el} with supporting code and pointers to the ASCII file.
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3191
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3192 All 3 files can be derived from the IDL documentation. If you are
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3193 lucky, the maintainer of IDLWAVE will always have access to the newest
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3194 version of IDL and provide updates. The IDLWAVE distribution also
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3195 contains the Perl program @file{get_rinfo} which constructs these files
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3196 by scanning selected files from the IDL documentation. Instructions on
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3197 how to use @file{get_rinfo} are in the program itself.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3198
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3199 One particularly frustrating situation occurs when a new IDL version is
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3200 released without the associated documentation updates. Instead, a
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3201 @emph{What's New} file containing new and updated documentation is
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3202 shipped alongside the previous version's reference material. The
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3203 @file{get_rinfo} script can merge this new information into the standard
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3204 help text and routine information, as long as it is pre-formatted in a
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3205 simple way. See @file{get_rinfo} for more information.
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3206
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3207 @node Configuration Examples, Windows and MacOS, Sources of Routine Info, Top
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3208 @appendix Configuration Examples
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3209 @cindex Configuration examples
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3210 @cindex Example configuration
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3211 @cindex @file{.emacs}
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3212 @cindex Default settings, of options
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3213 @cindex Interview, with the maintainer
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3214
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3215 @noindent
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3216 @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
3217 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
3218 set in your own configuration?
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3219
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3220 @noindent
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3221 @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
3222 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
3223 features which:
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3224
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3225 @itemize @minus
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3226 @item
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3227 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
3228 @item
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3229 are too intrusive.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3230 @item
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3231 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
3232 @item
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3233 break with widely used standards.
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3234 @item
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3235 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
3236 @item
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3237 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
3238 library names.
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3239 @end itemize
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3240
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3241 @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
3242 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
3243
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3244 @lisp
34432
538246e4d1bc Updated IDLWAVE manual to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 30009
diff changeset
3245 (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
3246 idlwave-store-inquired-class t
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3247 idlwave-shell-automatic-start t
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3248 idlwave-main-block-indent 2
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3249 idlwave-init-rinfo-when-idle-after 2
29773
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3250 idlwave-help-dir "~/lib/emacs/idlwave"
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3251 idlwave-special-lib-alist '(("/idl-astro/" . "AstroLib")
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3252 ("/jhuapl/" . "JHUAPL-Lib")
bdbce902ea81 Update to idlwave 4.2
Carsten Dominik <dominik@science.uva.nl>
parents: 29713
diff changeset
3253 ("/dominik/lib/idl/" . "MyLib")))
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3254 @end lisp
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3255
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3256 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
3257 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
3258 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
3259 user is King!
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3260
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3261 @example
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3262 ;;; Settings for IDLWAVE mode
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3263
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3264 (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
3265 (setq idlwave-main-block-indent 3)
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3266 (setq idlwave-end-offset -3)
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3267 (setq idlwave-continuation-indent 1)
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3268 (setq idlwave-begin-line-comment "^;[^;]") ; Leave ";" but not ";;"
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3269 ; anchored at start of line.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3270 (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
3271 (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
3272 (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
3273 (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
3274 ; (with abbrevs only)
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3275 (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
3276 (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
3277 (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
3278 (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
3279 (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
3280 (keyword-default . nil); or keyword completion
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3281 ("INIT" . t) ; except for these
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3282 ("CLEANUP" . t)
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3283 ("SETPROPERTY" .t)
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3284 ("GETPROPERTY" .t)))
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3285
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3286 ;; 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
3287 (add-hook 'idlwave-mode-hook
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3288 (lambda ()
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3289 (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
3290 ;; Run other functions here
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3291 (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
3292 (idlwave-auto-fill-mode 0) ; Turn off auto filling
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3293
46534
9059071c4fa9 Updated with patches from 1.8-1.17
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46530
diff changeset
3294 ;; 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
3295 ;; 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
3296 ;; instead of 1.
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3297 (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
3298 (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
3299 (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
3300 (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
3301
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3302 ;; 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
3303 (idlwave-action-and-binding "," '(idlwave-surround nil 1))
27600
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
3304 (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
3305
27600
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
3306 ;; Pad only after `->', remove any space before the arrow
322d1a88513b IDLWAVE 3.15
Carsten Dominik <dominik@science.uva.nl>
parents: 27186
diff changeset
3307 (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
3308
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3309 ;; Set some personal bindings
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3310 ;; (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
3311 (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
3312 (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
3313 (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
3314
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3315 ;; 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
3316 ;; 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
3317 ;; 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
3318 (local-set-key "\n" 'idlwave-newline)
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3319 ;; (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
3320
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3321 ;; Some personal abbreviations
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3322 (define-abbrev idlwave-mode-abbrev-table
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3323 (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
3324 (idlwave-keyword-abbrev 1))
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3325 (define-abbrev idlwave-mode-abbrev-table
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3326 (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
3327 (idlwave-keyword-abbrev 1))
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3328 ))
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3329
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3330 ;;; Settings for IDLWAVE SHELL mode
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3331
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3332 (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
3333 (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
3334 (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
3335 (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
3336 (setq idlwave-shell-process-name "wave")
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3337 (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
3338
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3339 ;; 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
3340 (add-hook 'idlwave-shell-mode-hook
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3341 (lambda ()
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3342 ;; Set up some custom key and mouse examine commands
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3343 (idlwave-shell-define-key-both [s-down-mouse-2]
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3344 (idlwave-shell-mouse-examine
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3345 "print, size(___,/DIMENSIONS)"))
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3346 (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
3347 "print, size(___,/DIMENSIONS)"))
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3348 (idlwave-shell-define-key-both [f10] (idlwave-shell-examine
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3349 "print,size(___,/TNAME)"))
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3350 (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
3351 "help,___,/STRUCTURE"))))
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3352 @end example
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3353
46527
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3354 @node Windows and MacOS, Index, Configuration Examples, Top
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3355 @appendix Windows and MacOS
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3356 @cindex Windows
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3357 @cindex MacOS
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3358
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3359 IDLWAVE was developed on a UNIX system. However, due to the portability
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3360 of Emacs, much of IDLWAVE does also work under different operating
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3361 systems like Windows (with NTEmacs or NTXEmacs) or MacOS.
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3362
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3363 The only problem really is that RSI does not provide a command-line
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3364 version of IDL for Windows or MacOS which IDLWAVE can interact
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3365 with@footnote{Call your RSI representative and complain --- it should be
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3366 trivial for them to provide one. And if enough people ask for it, maybe
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3367 they will. The upcoming IDL for Mac OSX is slated to have a
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3368 command-line version.}. Therefore the IDLWAVE Shell does not work and
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3369 you have to rely on IDLDE to run and debug your programs. However,
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3370 editing IDL source files with Emacs/IDLWAVE works with all bells and
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3371 whistles, including routine info, completion and fast online help. Only
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3372 a small amount of additional information must be specified in your
46534
9059071c4fa9 Updated with patches from 1.8-1.17
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46530
diff changeset
3373 .emacs file: you must specify path names which on a GNU or UNIX system
9059071c4fa9 Updated with patches from 1.8-1.17
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46530
diff changeset
3374 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
3375
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3376 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
3377 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
3378 @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
3379 @w{@samp{C:\RSI\IDL55}}.
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3380
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3381 @lisp
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3382 ;; location of the lisp files (needed if IDLWAVE is not part of
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3383 ;; the X/Emacs installation)
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3384 (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
3385
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3386 ;; The location of the IDL library files, both from RSI and your own.
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3387 ;; 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
3388 (setq idlwave-library-path
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3389 '("+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
3390
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3391 ;; 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
3392 (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
3393
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3394 ;; location of the IDLWAVE help files idlw-help.el and idlw-help.txt.
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3395 (setq idlwave-help-directory "c:/IDLWAVE")
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3396
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3397 ;; file in which to store the user catalog info
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3398 (setq idlwave-libinfo-file "c:/IDLWAVE/idlcat.el")
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3399 @end lisp
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3400
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3401 @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
3402 sure you check the following things:
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3403
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3404 @itemize @bullet
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3405 @item When you download the IDLWAVE distribution, make sure you save the
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3406 files under the names @file{idlwave.tar.gz} and
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3407 @file{idlwave-help-tar.gz}.
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3408 @item Be sure that your software for untarring/ungzipping is @emph{NOT}
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3409 doing smart CR/LF conversion (WinZip users will find this in
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3410 Options:Configuration:Miscellaneous, change the setting, then re-open
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3411 the archive). This adds one byte per line, throwing off the
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3412 byte-counts for the help file lookups and defeating fast online help lookup.
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3413 @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
3414 instead.
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3415 @item Other issues as yet unnamed...
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3416 @end itemize
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3417
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3418
a687c07c44a6 Updated to IDLWAVE version 4.14.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 41745
diff changeset
3419 @node Index, , Windows and MacOS, Top
26960
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3420 @unnumbered Index
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3421 @printindex cp
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3422
733eba22afe2 TeXInfo documentation of the IDLWAVE mode and shell
Carsten Dominik <dominik@science.uva.nl>
parents:
diff changeset
3423 @bye