87 |
* Getting Started:: Tutorial |
* Getting Started:: Tutorial |
88 |
* The IDLWAVE Major Mode:: The mode to edit IDL programs |
* The IDLWAVE Major Mode:: The mode to edit IDL programs |
89 |
* The IDLWAVE Shell:: The mode to run IDL as an inferior program |
* The IDLWAVE Shell:: The mode to run IDL as an inferior program |
90 |
* Installation:: How to Install or Upgrade |
* Installation:: How to Install or Upgrade |
91 |
* Acknowledgements:: Who did what |
* Acknowledgements:: Who did what |
92 |
* Sources of Routine Info:: How does IDLWAVE know about routine XYZ |
* Sources of Routine Info:: How does IDLWAVE know about routine XYZ |
93 |
* Configuration Examples:: The user is king... |
* Configuration Examples:: The user is king... |
94 |
* Windows and MacOS:: What still works, and how |
* Windows and MacOS:: What still works, and how |
95 |
* Index:: Fast access |
* Index:: Fast access |
99 |
|
|
100 |
Getting Started (Tutorial) |
Getting Started (Tutorial) |
101 |
|
|
102 |
* Lesson I -- Development Cycle:: |
* Lesson I -- Development Cycle:: |
103 |
* Lesson II -- Customization:: |
* Lesson II -- Customization:: |
104 |
* Lesson III -- Library Catalog:: |
* Lesson III -- Library Catalog:: |
105 |
|
|
106 |
The IDLWAVE Major Mode |
The IDLWAVE Major Mode |
107 |
|
|
121 |
Code Formatting |
Code Formatting |
122 |
|
|
123 |
* Code Indentation:: Reflecting the logical structure |
* Code Indentation:: Reflecting the logical structure |
124 |
* Continued Statement Indentation:: |
* Continued Statement Indentation:: |
125 |
* Comment Indentation:: Special indentation for comment lines |
* Comment Indentation:: Special indentation for comment lines |
126 |
* Continuation Lines:: Splitting statements over lines |
* Continuation Lines:: Splitting statements over lines |
127 |
* Syntax Highlighting:: Font-lock support |
* Syntax Highlighting:: Font-lock support |
131 |
|
|
132 |
* Case of Completed Words:: CaseOFcomPletedWords |
* Case of Completed Words:: CaseOFcomPletedWords |
133 |
* Object Method Completion and Class Ambiguity:: obj->Method, what? |
* Object Method Completion and Class Ambiguity:: obj->Method, what? |
134 |
* Object Method Completion in the Shell:: |
* Object Method Completion in the Shell:: |
135 |
* Class and Keyword Inheritance:: obj->Method, _EXTRA=e |
* Class and Keyword Inheritance:: obj->Method, _EXTRA=e |
136 |
* Structure Tag Completion:: Completing state.Tag |
* Structure Tag Completion:: Completing state.Tag |
137 |
|
|
145 |
|
|
146 |
* Starting the Shell:: How to launch IDL as a subprocess |
* Starting the Shell:: How to launch IDL as a subprocess |
147 |
* Using the Shell:: Interactively working with the Shell |
* Using the Shell:: Interactively working with the Shell |
148 |
* Commands Sent to the Shell:: |
* Commands Sent to the Shell:: |
149 |
* Debugging IDL Programs:: |
* Debugging IDL Programs:: |
150 |
* Examining Variables:: |
* Examining Variables:: |
151 |
* Custom Expression Examination:: |
* Custom Expression Examination:: |
152 |
|
|
153 |
Debugging IDL Programs |
Debugging IDL Programs |
154 |
|
|
155 |
* Debug Key Bindings:: |
* Debug Key Bindings:: |
156 |
* Compiling Programs:: |
* Compiling Programs:: |
157 |
* Breakpoints and Stepping:: |
* Breakpoints and Stepping:: |
158 |
* Walking the Calling Stack:: |
* Walking the Calling Stack:: |
159 |
|
|
160 |
Installation |
Installation |
161 |
|
|
192 |
the Interface Definition Language, part of the Common Object Request |
the Interface Definition Language, part of the Common Object Request |
193 |
Broker Architecture (CORBA)}. It can also be used for editing source |
Broker Architecture (CORBA)}. It can also be used for editing source |
194 |
files for the related WAVE/CL language, but with only limited |
files for the related WAVE/CL language, but with only limited |
195 |
support. |
support. |
196 |
|
|
197 |
IDLWAVE consists of two main parts: a major mode for editing IDL source |
IDLWAVE consists of two main parts: a major mode for editing IDL source |
198 |
files files (@code{idlwave-mode}) and a mode for running the IDL program |
files files (@code{idlwave-mode}) and a mode for running the IDL program |
201 |
development environment. Here is a brief summary of what IDLWAVE does: |
development environment. Here is a brief summary of what IDLWAVE does: |
202 |
|
|
203 |
@itemize @bullet |
@itemize @bullet |
204 |
@item |
@item |
205 |
Code indentation and formatting. |
Code indentation and formatting. |
206 |
@item |
@item |
207 |
Three level syntax highlighting support. |
Three level syntax highlighting support. |
208 |
@item |
@item |
209 |
Context-sensitive display of calling sequences and keywords for more |
Context-sensitive display of calling sequences and keywords for more |
210 |
than 1000 native IDL routines, extendible to any number of additional |
than 1000 native IDL routines, extendible to any number of additional |
211 |
routines in your local IDL libraries. |
routines in your local IDL libraries. |
367 |
@cindex Getting Started |
@cindex Getting Started |
368 |
|
|
369 |
@menu |
@menu |
370 |
* Lesson I -- Development Cycle:: |
* Lesson I -- Development Cycle:: |
371 |
* Lesson II -- Customization:: |
* Lesson II -- Customization:: |
372 |
* Lesson III -- Library Catalog:: |
* Lesson III -- Library Catalog:: |
373 |
@end menu |
@end menu |
374 |
|
|
375 |
@node Lesson I -- Development Cycle, Lesson II -- Customization, Getting Started, Getting Started |
@node Lesson I -- Development Cycle, Lesson II -- Customization, Getting Started, Getting Started |
412 |
y1 = y * delta |
y1 = y * delta |
413 |
return, d + floor(m1*30.6)+floor(y1*365.25)+5 |
return, d + floor(m1*30.6)+floor(y1*365.25)+5 |
414 |
end |
end |
415 |
|
|
416 |
function weekday,day,month,year |
function weekday,day,month,year |
417 |
;; compute weekday number for date |
;; compute weekday number for date |
418 |
nr = daynr(day,month,year) |
nr = daynr(day,month,year) |
419 |
return, nr mod 7 |
return, nr mod 7 |
420 |
end |
end |
421 |
|
|
422 |
pro plot_wday,day,month |
pro plot_wday,day,month |
423 |
;; Plot the weekday of a date in the first 10 years of this century. |
;; Plot the weekday of a date in the first 10 years of this century. |
424 |
years = 2000,+indgen(10) |
years = 2000,+indgen(10) |
649 |
@section Lesson III: Library Catalog |
@section Lesson III: Library Catalog |
650 |
|
|
651 |
We have already used the routine info display in the first part of this |
We have already used the routine info display in the first part of this |
652 |
tutorial. This was the key @kbd{C-c ?} which displays information about |
tutorial. This was the key @kbd{C-c ?} which displays information about |
653 |
the IDL routine near the cursor position. Wouldn't it be nice |
the IDL routine near the cursor position. Wouldn't it be nice |
654 |
to have the same available for your own library routines and for the |
to have the same available for your own library routines and for the |
655 |
huge amount of code in major extension libraries like JHUPL or the |
huge amount of code in major extension libraries like JHUPL or the |
727 |
|
|
728 |
@menu |
@menu |
729 |
* Code Indentation:: Reflecting the logical structure |
* Code Indentation:: Reflecting the logical structure |
730 |
* Continued Statement Indentation:: |
* Continued Statement Indentation:: |
731 |
* Comment Indentation:: Special indentation for comment lines |
* Comment Indentation:: Special indentation for comment lines |
732 |
* Continuation Lines:: Splitting statements over lines |
* Continuation Lines:: Splitting statements over lines |
733 |
* Syntax Highlighting:: Font-lock support |
* Syntax Highlighting:: Font-lock support |
769 |
@code{PRO}/@code{FUNCTION}/@code{BEGIN} and @code{END}), and |
@code{PRO}/@code{FUNCTION}/@code{BEGIN} and @code{END}), and |
770 |
continuation lines. |
continuation lines. |
771 |
|
|
772 |
@defopt idlwave-main-block-indent (@code{0}) |
@defopt idlwave-main-block-indent (@code{0}) |
773 |
Extra indentation for the main block of code. That is the block between |
Extra indentation for the main block of code. That is the block between |
774 |
the FUNCTION/PRO statement and the END statement for that program |
the FUNCTION/PRO statement and the END statement for that program |
775 |
unit. |
unit. |
966 |
|
|
967 |
@defopt idlwave-use-last-hang-indent (@code{nil}) |
@defopt idlwave-use-last-hang-indent (@code{nil}) |
968 |
Non-@code{nil} means use last match on line for |
Non-@code{nil} means use last match on line for |
969 |
@code{idlwave-indent-regexp}. |
@code{idlwave-indent-regexp}. |
970 |
@end defopt |
@end defopt |
971 |
|
|
972 |
@node Syntax Highlighting, Octals and Highlighting, Continuation Lines, Code Formatting |
@node Syntax Highlighting, Octals and Highlighting, Continuation Lines, Code Formatting |
994 |
|
|
995 |
@defopt idlwave-default-font-lock-items |
@defopt idlwave-default-font-lock-items |
996 |
Items which should be fontified on the default fontification level |
Items which should be fontified on the default fontification level |
997 |
2. |
2. |
998 |
@end defopt |
@end defopt |
999 |
|
|
1000 |
@node Octals and Highlighting, , Syntax Highlighting, Code Formatting |
@node Octals and Highlighting, , Syntax Highlighting, Code Formatting |
1071 |
On positions 1,2 and 8, information about the @samp{plot} procedure will |
On positions 1,2 and 8, information about the @samp{plot} procedure will |
1072 |
be shown. On positions 3,4, and 7, the @samp{alog} function will be |
be shown. On positions 3,4, and 7, the @samp{alog} function will be |
1073 |
described, while positions 5 and 6 will investigate the @samp{sin} |
described, while positions 5 and 6 will investigate the @samp{sin} |
1074 |
function. |
function. |
1075 |
|
|
1076 |
When you ask for routine information about an object method, and the |
When you ask for routine information about an object method, and the |
1077 |
method exists in several classes, IDLWAVE queries for the class of the |
method exists in several classes, IDLWAVE queries for the class of the |
1127 |
@item @i{Other} |
@item @i{Other} |
1128 |
@tab Any other routine with a file not known to be on the search path. |
@tab Any other routine with a file not known to be on the search path. |
1129 |
@item @i{Unresolved} |
@item @i{Unresolved} |
1130 |
@tab An otherwise unkown routine the shell lists as unresolved |
@tab An otherwise unkown routine the shell lists as unresolved |
1131 |
(referenced, but not compiled). |
(referenced, but not compiled). |
1132 |
@end multitable |
@end multitable |
1133 |
|
|
1162 |
@item @i{Usage} |
@item @i{Usage} |
1163 |
@tab If online help is installed, a click with the @emph{right} mouse |
@tab If online help is installed, a click with the @emph{right} mouse |
1164 |
button on the @i{Usage:} line will access the help for the |
button on the @i{Usage:} line will access the help for the |
1165 |
routine (@pxref{Online Help}). |
routine (@pxref{Online Help}). |
1166 |
@item @i{Keyword} |
@item @i{Keyword} |
1167 |
@tab Online help about keywords is also available with the |
@tab Online help about keywords is also available with the |
1168 |
@emph{right} mouse button. Clicking on a keyword with the @emph{middle} |
@emph{right} mouse button. Clicking on a keyword with the @emph{middle} |
1489 |
@menu |
@menu |
1490 |
* Case of Completed Words:: CaseOFcomPletedWords |
* Case of Completed Words:: CaseOFcomPletedWords |
1491 |
* Object Method Completion and Class Ambiguity:: obj->Method, what? |
* Object Method Completion and Class Ambiguity:: obj->Method, what? |
1492 |
* Object Method Completion in the Shell:: |
* Object Method Completion in the Shell:: |
1493 |
* Class and Keyword Inheritance:: obj->Method, _EXTRA=e |
* Class and Keyword Inheritance:: obj->Method, _EXTRA=e |
1494 |
* Structure Tag Completion:: Completing state.Tag |
* Structure Tag Completion:: Completing state.Tag |
1495 |
@end menu |
@end menu |
1554 |
@code{idlwave-query-class} can be configured to make such prompting the |
@code{idlwave-query-class} can be configured to make such prompting the |
1555 |
default for all methods (not recommended), or selectively for very |
default for all methods (not recommended), or selectively for very |
1556 |
common methods for which the number of completing keywords would be too |
common methods for which the number of completing keywords would be too |
1557 |
large (e.g. @code{Init}). |
large (e.g. @code{Init}). |
1558 |
|
|
1559 |
@cindex Saving object class on @code{->} |
@cindex Saving object class on @code{->} |
1560 |
@cindex @code{->} |
@cindex @code{->} |
1646 |
Non-@code{nil} means consider inheritance during completion, online help etc. |
Non-@code{nil} means consider inheritance during completion, online help etc. |
1647 |
@end defopt |
@end defopt |
1648 |
|
|
1649 |
@defopt idlwave-keyword-class-inheritance |
@defopt idlwave-keyword-class-inheritance |
1650 |
A list of regular expressions to match methods for which simple |
A list of regular expressions to match methods for which simple |
1651 |
class-driven keyword inheritance will be used for Completion. |
class-driven keyword inheritance will be used for Completion. |
1652 |
@end defopt |
@end defopt |
1676 |
simply add the following to your @file{.emacs}: |
simply add the following to your @file{.emacs}: |
1677 |
|
|
1678 |
@lisp |
@lisp |
1679 |
(add-hook 'idlwave-load-hook |
(add-hook 'idlwave-load-hook |
1680 |
(lambda () (require 'idlw-complete-structtag))) |
(lambda () (require 'idlw-complete-structtag))) |
1681 |
@end lisp |
@end lisp |
1682 |
|
|
2069 |
(idlwave-action-and-binding "\\<\\(pro\\|function\\)\\>[ \t]*\\<" |
(idlwave-action-and-binding "\\<\\(pro\\|function\\)\\>[ \t]*\\<" |
2070 |
'(capitalize-word 1) t) |
'(capitalize-word 1) t) |
2071 |
;; Capitalize common block name |
;; Capitalize common block name |
2072 |
(idlwave-action-and-binding "\\<common\\>[ \t]+\\<" |
(idlwave-action-and-binding "\\<common\\>[ \t]+\\<" |
2073 |
'(capitalize-word 1) t))) |
'(capitalize-word 1) t))) |
2074 |
@end lisp |
@end lisp |
2075 |
|
|
2231 |
@menu |
@menu |
2232 |
* Starting the Shell:: How to launch IDL as a subprocess |
* Starting the Shell:: How to launch IDL as a subprocess |
2233 |
* Using the Shell:: Interactively working with the Shell |
* Using the Shell:: Interactively working with the Shell |
2234 |
* Commands Sent to the Shell:: |
* Commands Sent to the Shell:: |
2235 |
* Debugging IDL Programs:: |
* Debugging IDL Programs:: |
2236 |
* Examining Variables:: |
* Examining Variables:: |
2237 |
* Custom Expression Examination:: |
* Custom Expression Examination:: |
2238 |
@end menu |
@end menu |
2239 |
|
|
2240 |
@node Starting the Shell, Using the Shell, The IDLWAVE Shell, The IDLWAVE Shell |
@node Starting the Shell, Using the Shell, The IDLWAVE Shell, The IDLWAVE Shell |
2260 |
@code{idlwave-shell} with a prefix argument: @kbd{C-u C-c C-s} or |
@code{idlwave-shell} with a prefix argument: @kbd{C-u C-c C-s} or |
2261 |
@kbd{C-u C-c C-l}. If you always want a dedicated frame for the shell |
@kbd{C-u C-c C-l}. If you always want a dedicated frame for the shell |
2262 |
window, configure the variable |
window, configure the variable |
2263 |
@code{idlwave-shell-use-dedicated-frame}. |
@code{idlwave-shell-use-dedicated-frame}. |
2264 |
|
|
2265 |
To launch a quick IDLWAVE shell directly from a shell prompt without an |
To launch a quick IDLWAVE shell directly from a shell prompt without an |
2266 |
IDLWAVE buffer (e.g., as a replacement for running inside an xterm), |
IDLWAVE buffer (e.g., as a replacement for running inside an xterm), |
2305 |
@defopt idlwave-shell-command-history-file (@file{~/.idlwhist}) |
@defopt idlwave-shell-command-history-file (@file{~/.idlwhist}) |
2306 |
The file in which the command history of the idlwave shell is saved. |
The file in which the command history of the idlwave shell is saved. |
2307 |
@end defopt |
@end defopt |
2308 |
|
|
2309 |
@defopt idlwave-shell-use-dedicated-frame (@code{nil}) |
@defopt idlwave-shell-use-dedicated-frame (@code{nil}) |
2310 |
Non-@code{nil} means IDLWAVE should use a special frame to display |
Non-@code{nil} means IDLWAVE should use a special frame to display |
2311 |
shell buffer. |
shell buffer. |
2312 |
@end defopt |
@end defopt |
2313 |
|
|
2314 |
@defopt idlwave-shell-frame-parameters |
@defopt idlwave-shell-frame-parameters |
2515 |
@end defopt |
@end defopt |
2516 |
|
|
2517 |
@menu |
@menu |
2518 |
* Debug Key Bindings:: |
* Debug Key Bindings:: |
2519 |
* Compiling Programs:: |
* Compiling Programs:: |
2520 |
* Breakpoints and Stepping:: |
* Breakpoints and Stepping:: |
2521 |
* Walking the Calling Stack:: |
* Walking the Calling Stack:: |
2522 |
@end menu |
@end menu |
2523 |
|
|
2524 |
@node Debug Key Bindings, Compiling Programs, Debugging IDL Programs, Debugging IDL Programs |
@node Debug Key Bindings, Compiling Programs, Debugging IDL Programs, Debugging IDL Programs |
2575 |
@kindex C-c C-d C-c |
@kindex C-c C-d C-c |
2576 |
In order to compile the current buffer under the IDLWAVE shell, press |
In order to compile the current buffer under the IDLWAVE shell, press |
2577 |
@kbd{C-c C-d C-c} (@code{idlwave-save-and-run}). This first saves the |
@kbd{C-c C-d C-c} (@code{idlwave-save-and-run}). This first saves the |
2578 |
current buffer and then sends the command @samp{.run path/to/file} to the |
current buffer and then sends the command @samp{.run path/to/file} to the |
2579 |
shell. You can also execute @kbd{C-c C-d C-c} from the shell buffer, in |
shell. You can also execute @kbd{C-c C-d C-c} from the shell buffer, in |
2580 |
which case the most recently compiled buffer will be saved and |
which case the most recently compiled buffer will be saved and |
2581 |
re-compiled. |
re-compiled. |
2582 |
|
|
2583 |
When developing or debugging a program, it is often necessary to execute |
When developing or debugging a program, it is often necessary to execute |
2584 |
the same command line many times. A convenient way to do this is |
the same command line many times. A convenient way to do this is |
2585 |
@kbd{C-c C-d C-y} (@code{idlwave-shell-execute-default-command-line}). |
@kbd{C-c C-d C-y} (@code{idlwave-shell-execute-default-command-line}). |
2586 |
This command first resets IDL from a state of interrupted execution by |
This command first resets IDL from a state of interrupted execution by |
2792 |
@end defopt |
@end defopt |
2793 |
|
|
2794 |
@defopt idlwave-shell-output-face |
@defopt idlwave-shell-output-face |
2795 |
The face for @code{idlwave-shell-output-overlay}. |
The face for @code{idlwave-shell-output-overlay}. |
2796 |
Allows to choose the font, color and other properties for the most |
Allows to choose the font, color and other properties for the most |
2797 |
recent output of IDL when examining an expression." |
recent output of IDL when examining an expression." |
2798 |
@end defopt |
@end defopt |
2799 |
|
|
2800 |
@defopt idlwave-shell-separate-examine-output (@code{t}) |
@defopt idlwave-shell-separate-examine-output (@code{t}) |
2801 |
If non-@code{nil}, re-direct the output of examine commands to a special |
If non-@code{nil}, re-direct the output of examine commands to a special |
2802 |
@file{*Examine*} buffer, instead of in the shell itself. |
@file{*Examine*} buffer, instead of in the shell itself. |
2803 |
@end defopt |
@end defopt |
2804 |
|
|
2805 |
@node Custom Expression Examination, , Examining Variables, The IDLWAVE Shell |
@node Custom Expression Examination, , Examining Variables, The IDLWAVE Shell |
2840 |
@lisp |
@lisp |
2841 |
(add-hook 'idlwave-shell-mode-hook |
(add-hook 'idlwave-shell-mode-hook |
2842 |
(lambda () |
(lambda () |
2843 |
(idlwave-shell-define-key-both [s-down-mouse-2] |
(idlwave-shell-define-key-both [s-down-mouse-2] |
2844 |
(idlwave-shell-mouse-examine |
(idlwave-shell-mouse-examine |
2845 |
"print, size(___,/DIMENSIONS)")) |
"print, size(___,/DIMENSIONS)")) |
2846 |
(idlwave-shell-define-key-both [f9] (idlwave-shell-examine |
(idlwave-shell-define-key-both [f9] (idlwave-shell-examine |
2847 |
"print, size(___,/DIMENSIONS)")) |
"print, size(___,/DIMENSIONS)")) |
2848 |
(idlwave-shell-define-key-both [f10] (idlwave-shell-examine |
(idlwave-shell-define-key-both [f10] (idlwave-shell-examine |
2849 |
"print,size(___,/TNAME)")) |
"print,size(___,/TNAME)")) |
2850 |
(idlwave-shell-define-key-both [f11] (idlwave-shell-examine |
(idlwave-shell-define-key-both [f11] (idlwave-shell-examine |
2851 |
"help,___,/STRUCTURE")))) |
"help,___,/STRUCTURE")))) |
2852 |
@end lisp |
@end lisp |
2853 |
|
|
2854 |
@noindent Now pressing @key{f9}, or middle-mouse dragging with the |
@noindent Now pressing @key{f9}, or middle-mouse dragging with the |
2855 |
@key{SUPER} key depressed, will print the dimensions of the nearby or |
@key{SUPER} key depressed, will print the dimensions of the nearby or |
2856 |
highlighted expression. Pressing @key{f10} will give the type string, |
highlighted expression. Pressing @key{f10} will give the type string, |
2941 |
@lisp |
@lisp |
2942 |
(setq idlwave-shell-use-dedicated-frame t) |
(setq idlwave-shell-use-dedicated-frame t) |
2943 |
@end lisp |
@end lisp |
2944 |
@item |
@item |
2945 |
The key sequence @kbd{M-@key{TAB}} no longer inserts a TAB character. |
The key sequence @kbd{M-@key{TAB}} no longer inserts a TAB character. |
2946 |
Like in many other Emacs modes, @kbd{M-@key{TAB}} now does |
Like in many other Emacs modes, @kbd{M-@key{TAB}} now does |
2947 |
completion. Inserting a TAB has therefore been moved to |
completion. Inserting a TAB has therefore been moved to |
2973 |
everything, modernized IDLWAVE with many new features, and developed the |
everything, modernized IDLWAVE with many new features, and developed the |
2974 |
manual. |
manual. |
2975 |
|
|
2976 |
@item |
@item |
2977 |
@uref{mailto:jdsmith@@as.arizona.edu, @b{J.D. Smith}}, the current |
@uref{mailto:jdsmith@@as.arizona.edu, @b{J.D. Smith}}, the current |
2978 |
maintainer, as of version 4.10, helped shape object method completion |
maintainer, as of version 4.10, helped shape object method completion |
2979 |
and most new features introduced in versions 4.x. |
and most new features introduced in versions 4.x. |
3051 |
several places: |
several places: |
3052 |
|
|
3053 |
@enumerate |
@enumerate |
3054 |
@item |
@item |
3055 |
@emph{Builtin routines} are defined inside IDL itself. The source |
@emph{Builtin routines} are defined inside IDL itself. The source |
3056 |
code of such routines is not available. |
code of such routines is not available. |
3057 |
@item |
@item |
3058 |
Routines which are @emph{part of the current program}, are defined in a |
Routines which are @emph{part of the current program}, are defined in a |
3059 |
file explicitly compiled by the user. This file may or may not be |
file explicitly compiled by the user. This file may or may not be |
3060 |
located on the IDL search path. |
located on the IDL search path. |
3061 |
@item |
@item |
3062 |
@emph{Library routines} are defined in files located on IDL's search |
@emph{Library routines} are defined in files located on IDL's search |
3063 |
path, and will not need to be manually compiled. When a library routine |
path, and will not need to be manually compiled. When a library routine |
3064 |
is called for the first time, IDL will find the source file and compile |
is called for the first time, IDL will find the source file and compile |
3095 |
@file{idlw-rinfo.el}. @xref{Documentation Scan}, for information on how |
@file{idlw-rinfo.el}. @xref{Documentation Scan}, for information on how |
3096 |
to regenerate this file for new versions of IDL. |
to regenerate this file for new versions of IDL. |
3097 |
|
|
3098 |
@item |
@item |
3099 |
It @emph{scans} all @emph{buffers} of the current Emacs session for |
It @emph{scans} all @emph{buffers} of the current Emacs session for |
3100 |
routine definitions. This is done automatically when routine |
routine definitions. This is done automatically when routine |
3101 |
information or completion is first requested by the user. Each new |
information or completion is first requested by the user. Each new |
3182 |
and completion info of some libraries, it is sufficient to scan those |
and completion info of some libraries, it is sufficient to scan those |
3183 |
directories. However, if you want IDLWAVE to detect possible name |
directories. However, if you want IDLWAVE to detect possible name |
3184 |
conflicts with routines defined in other libraries, the whole pass |
conflicts with routines defined in other libraries, the whole pass |
3185 |
should be scanned. |
should be scanned. |
3186 |
|
|
3187 |
After selecting directories, click on the @w{@samp{[Scan & Save]}} |
After selecting directories, click on the @w{@samp{[Scan & Save]}} |
3188 |
button in the widget to scan all files in the selected directories and |
button in the widget to scan all files in the selected directories and |
3279 |
on the load path is routine info display (@pxref{Routine Info}). |
on the load path is routine info display (@pxref{Routine Info}). |
3280 |
|
|
3281 |
@node Documentation Scan, , Load-Path Shadows, Sources of Routine Info |
@node Documentation Scan, , Load-Path Shadows, Sources of Routine Info |
3282 |
@appendixsec Documentation Scan |
@appendixsec Documentation Scan |
3283 |
@cindex @file{get_rinfo} |
@cindex @file{get_rinfo} |
3284 |
@cindex @file{idlw-rinfo.el} |
@cindex @file{idlw-rinfo.el} |
3285 |
@cindex @file{idlw-help.txt} |
@cindex @file{idlw-help.txt} |
3370 |
(setq idlwave-main-block-indent 3) |
(setq idlwave-main-block-indent 3) |
3371 |
(setq idlwave-end-offset -3) |
(setq idlwave-end-offset -3) |
3372 |
(setq idlwave-continuation-indent 1) |
(setq idlwave-continuation-indent 1) |
3373 |
(setq idlwave-begin-line-comment "^;[^;]") ; Leave ";" but not ";;" |
(setq idlwave-begin-line-comment "^;[^;]") ; Leave ";" but not ";;" |
3374 |
; anchored at start of line. |
; anchored at start of line. |
3375 |
(setq idlwave-surround-by-blank t) ; Turn on padding ops =,<,> |
(setq idlwave-surround-by-blank t) ; Turn on padding ops =,<,> |
3376 |
(setq idlwave-pad-keyword nil) ; Remove spaces for keyword '=' |
(setq idlwave-pad-keyword nil) ; Remove spaces for keyword '=' |
3424 |
;; (local-set-key "\C-j" 'idlwave-newline) ; My preference. |
;; (local-set-key "\C-j" 'idlwave-newline) ; My preference. |
3425 |
|
|
3426 |
;; Some personal abbreviations |
;; Some personal abbreviations |
3427 |
(define-abbrev idlwave-mode-abbrev-table |
(define-abbrev idlwave-mode-abbrev-table |
3428 |
(concat idlwave-abbrev-start-char "wb") "widget_base()" |
(concat idlwave-abbrev-start-char "wb") "widget_base()" |
3429 |
(idlwave-keyword-abbrev 1)) |
(idlwave-keyword-abbrev 1)) |
3430 |
(define-abbrev idlwave-mode-abbrev-table |
(define-abbrev idlwave-mode-abbrev-table |
3431 |
(concat idlwave-abbrev-start-char "on") "obj_new()" |
(concat idlwave-abbrev-start-char "on") "obj_new()" |
3432 |
(idlwave-keyword-abbrev 1)) |
(idlwave-keyword-abbrev 1)) |
3433 |
)) |
)) |
3445 |
(add-hook 'idlwave-shell-mode-hook |
(add-hook 'idlwave-shell-mode-hook |
3446 |
(lambda () |
(lambda () |
3447 |
;; Set up some custom key and mouse examine commands |
;; Set up some custom key and mouse examine commands |
3448 |
(idlwave-shell-define-key-both [s-down-mouse-2] |
(idlwave-shell-define-key-both [s-down-mouse-2] |
3449 |
(idlwave-shell-mouse-examine |
(idlwave-shell-mouse-examine |
3450 |
"print, size(___,/DIMENSIONS)")) |
"print, size(___,/DIMENSIONS)")) |
3451 |
(idlwave-shell-define-key-both [f9] (idlwave-shell-examine |
(idlwave-shell-define-key-both [f9] (idlwave-shell-examine |
3452 |
"print, size(___,/DIMENSIONS)")) |
"print, size(___,/DIMENSIONS)")) |
3453 |
(idlwave-shell-define-key-both [f10] (idlwave-shell-examine |
(idlwave-shell-define-key-both [f10] (idlwave-shell-examine |
3454 |
"print,size(___,/TNAME)")) |
"print,size(___,/TNAME)")) |
3455 |
(idlwave-shell-define-key-both [f11] (idlwave-shell-examine |
(idlwave-shell-define-key-both [f11] (idlwave-shell-examine |
3456 |
"help,___,/STRUCTURE")))) |
"help,___,/STRUCTURE")))) |
3487 |
@w{@samp{C:\RSI\IDL55}}. |
@w{@samp{C:\RSI\IDL55}}. |
3488 |
|
|
3489 |
@lisp |
@lisp |
3490 |
;; location of the lisp files (needed if IDLWAVE is not part of |
;; location of the lisp files (needed if IDLWAVE is not part of |
3491 |
;; the X/Emacs installation) |
;; the X/Emacs installation) |
3492 |
(setq load-path (cons "c:/program files/IDLWAVE" load-path)) |
(setq load-path (cons "c:/program files/IDLWAVE" load-path)) |
3493 |
|
|
3510 |
sure you check the following things: |
sure you check the following things: |
3511 |
|
|
3512 |
@itemize @bullet |
@itemize @bullet |
3513 |
@item When you download the IDLWAVE distribution, make sure you save the |
@item When you download the IDLWAVE distribution, make sure you save the |
3514 |
files under the names @file{idlwave.tar.gz} and |
files under the names @file{idlwave.tar.gz} and |
3515 |
@file{idlwave-help-tar.gz}. |
@file{idlwave-help-tar.gz}. |
3516 |
@item Be sure that your software for untarring/ungzipping is @emph{NOT} |
@item Be sure that your software for untarring/ungzipping is @emph{NOT} |