aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCarsten Dominik2000-02-04 09:57:10 +0000
committerCarsten Dominik2000-02-04 09:57:10 +0000
commitea442c620b0a18a3e6112c70fcb0b2c968a5e051 (patch)
tree0975301e9203f627d9eda72a67536b0ed0732203
parent3f429351937ec6540e1e9929977c5f3761d53b75 (diff)
downloademacs-ea442c620b0a18a3e6112c70fcb0b2c968a5e051.tar.gz
emacs-ea442c620b0a18a3e6112c70fcb0b2c968a5e051.zip
IDLWAVE 3.15
-rw-r--r--man/idlwave.texi134
1 files changed, 87 insertions, 47 deletions
diff --git a/man/idlwave.texi b/man/idlwave.texi
index a3c59cff858..335fae81164 100644
--- a/man/idlwave.texi
+++ b/man/idlwave.texi
@@ -9,12 +9,12 @@
9@synindex ky cp 9@synindex ky cp
10@syncodeindex vr cp 10@syncodeindex vr cp
11@syncodeindex fn cp 11@syncodeindex fn cp
12@set VERSION 3.12 12@set VERSION 3.15
13@set EDITION 1.8 13@set EDITION 1.10
14@set IDLVERSION 5.3 14@set IDLVERSION 5.3
15@set NSYSROUTINES 1226 15@set NSYSROUTINES 1226
16@set NSYSKEYWORDS 5230 16@set NSYSKEYWORDS 5229
17@set DATE December 1999 17@set DATE February 2000
18@set AUTHOR Carsten Dominik 18@set AUTHOR Carsten Dominik
19@set AUTHOR-EMAIL dominik@@astro.uva.nl 19@set AUTHOR-EMAIL dominik@@astro.uva.nl
20@set MAINTAINER Carsten Dominik 20@set MAINTAINER Carsten Dominik
@@ -30,7 +30,7 @@ a subprocess.@refill
30This is edition @value{EDITION} of the IDLWAVE User Manual for 30This is edition @value{EDITION} of the IDLWAVE User Manual for
31IDLWAVE @value{VERSION}@refill 31IDLWAVE @value{VERSION}@refill
32 32
33Copyright (c) 1999 Free Software Foundation, Inc. 33Copyright (c) 1999, 2000 Free Software Foundation, Inc.
34 34
35Permission is granted to make and distribute verbatim 35Permission is granted to make and distribute verbatim
36copies of this manual provided the copyright notice and 36copies of this manual provided the copyright notice and
@@ -64,7 +64,7 @@ translation approved by the Free Software Foundation.
64 64
65@author by Carsten Dominik 65@author by Carsten Dominik
66@page 66@page
67Copyright @copyright{} 1999 Free Software Foundation, Inc. 67Copyright @copyright{} 1999, 2000 Free Software Foundation, Inc.
68 68
69@sp 2 69@sp 2
70This is edition @value{EDITION} of the @cite{IDLWAVE User Manual} for 70This is edition @value{EDITION} of the @cite{IDLWAVE User Manual} for
@@ -256,8 +256,6 @@ Some configuration examples are also given in the appendix.
256@cindex IDLWAVE in a Nutshell 256@cindex IDLWAVE in a Nutshell
257@cindex Nutshell, IDLWAVE in a 257@cindex Nutshell, IDLWAVE in a
258 258
259If you are in a hurry, here is some quick-start information.
260
261@subheading Editing IDL Programs 259@subheading Editing IDL Programs
262 260
263@multitable @columnfractions .15 .85 261@multitable @columnfractions .15 .85
@@ -315,16 +313,17 @@ at point.
315(setq idlwave-main-block-indent 2 ; default 0 313(setq idlwave-main-block-indent 2 ; default 0
316 idlwave-block-indent 2 ; default 4 314 idlwave-block-indent 2 ; default 4
317 idlwave-end-offset -2) ; default -4 315 idlwave-end-offset -2) ; default -4
318 316;; Pad some operators with spaces
319;; Syntax Highlighting 317(setq idlwave-do-actions t
320(add-hook 'idlwave-mode-hook 'turn-on-font-lock) 318 idlwave-surround-by-blank t)
321;; Automatically expand END to ENDIF, ENDELSE, ... 319;; Automatically expand END to ENDIF, ENDELSE, ...
322(setq idlwave-expand-generic-end t) 320(setq idlwave-expand-generic-end t)
321;; Syntax Highlighting
322(add-hook 'idlwave-mode-hook 'turn-on-font-lock)
323 323
324;; Automatically start the shell when needed 324;; Automatically start the shell when needed, in dedicated frame
325(setq idlwave-shell-automatic-start t) 325(setq idlwave-shell-automatic-start t
326;; Always use a separate frame for the shell buffer 326 idlwave-shell-use-dedicated-frame t)
327(setq idlwave-shell-use-dedicated-frame t)
328 327
329;; Specify a file where library info can be stored. 328;; Specify a file where library info can be stored.
330(setq idlwave-libinfo-file "~/idlinfo.el") 329(setq idlwave-libinfo-file "~/idlinfo.el")
@@ -739,7 +738,7 @@ property in the object operator @samp{->}. This is not enabled by
739default - the variable @code{idlwave-store-inquired-class} can be used 738default - the variable @code{idlwave-store-inquired-class} can be used
740to turn it on.@refill 739to turn it on.@refill
741 740
742@defopt idlwave-completion-show-classes (@code{t}) 741@defopt idlwave-completion-show-classes (@code{1})
743Non-@code{nil} means, show classes in @file{*Completions*} buffer when 742Non-@code{nil} means, show classes in @file{*Completions*} buffer when
744completing object methods and keywords.@refill 743completing object methods and keywords.@refill
745@end defopt 744@end defopt
@@ -786,7 +785,7 @@ Otherwise, special abbreviations are used. Emacs abbreviations are
786expanded by typing text into the buffer and pressing @key{SPC} or 785expanded by typing text into the buffer and pressing @key{SPC} or
787@key{RET}. The special abbreviations used to insert code templates all 786@key{RET}. The special abbreviations used to insert code templates all
788start with a @samp{\} (the backslash). Here are a few examples of 787start with a @samp{\} (the backslash). Here are a few examples of
789predefined abbreviations. For a full list, use @kbd{M-x 788predefined abbreviations. For a full list, use @kbd{M-x
790idlwave-list-abbrevs}. 789idlwave-list-abbrevs}.
791 790
792@multitable @columnfractions .15 .85 791@multitable @columnfractions .15 .85
@@ -809,7 +808,11 @@ idlwave-list-abbrevs}.
809@item @code{\b} 808@item @code{\b}
810@tab @code{BEGIN} 809@tab @code{BEGIN}
811@end multitable 810@end multitable
812 811
812The templates are expanded in upper or lower case, depending upon the
813variables @code{idlwave-abbrev-change-case} and
814@code{idlwave-reserved-word-upcase}.@refill
815
813@defopt idlwave-abbrev-start-char 816@defopt idlwave-abbrev-start-char
814A single character string used to start abbreviations in abbrev 817A single character string used to start abbreviations in abbrev
815mode.@refill 818mode.@refill
@@ -902,13 +905,14 @@ Non-@code{nil} means expand generic END to ENDIF/ENDELSE/ENDWHILE etc.
902Some operators can be automatically surrounded by spaces. This can 905Some operators can be automatically surrounded by spaces. This can
903happen when the operator is typed, or also later when the line is 906happen when the operator is typed, or also later when the line is
904indented. IDLWAVE contains this setting for the operators @samp{&}, 907indented. IDLWAVE contains this setting for the operators @samp{&},
905@samp{<}, @samp{>}, @samp{,}, @samp{=}, but the feature is turned off by 908@samp{<}, @samp{>}, @samp{,}, @samp{=}, and @samp{->}@footnote{operators
906default. If you want to turn it on, customize the variable 909longer than one character can only be padded during line indentation.},
907@code{idlwave-surround-by-blank}. You can also define similar actions 910but the feature is turned off by default. If you want to turn it on,
908for other operators by using the function 911customize the variables @code{idlwave-surround-by-blank} and
909@code{idlwave-action-and-binding} in the mode hook. For example, to 912@code{idlwave-do-actions}. You can also define similar actions for
910enforce space padding of the @samp{+} and @samp{*} operators, try this 913other operators by using the function @code{idlwave-action-and-binding}
911in @file{.emacs} 914in the mode hook. For example, to enforce space padding of the @samp{+}
915and @samp{*} operators, try this in @file{.emacs}@refill
912 916
913@lisp 917@lisp
914(add-hook 'idlwave-mode-hook 918(add-hook 'idlwave-mode-hook
@@ -920,8 +924,8 @@ in @file{.emacs}
920 924
921@defopt idlwave-surround-by-blank (@code{nil}) 925@defopt idlwave-surround-by-blank (@code{nil})
922Non-@code{nil} means, enable @code{idlwave-surround}. If non-nil, 926Non-@code{nil} means, enable @code{idlwave-surround}. If non-nil,
923@samp{=}, @samp{<}, @samp{>}, @samp{&}, @samp{,} are surrounded with 927@samp{=}, @samp{<}, @samp{>}, @samp{&}, @samp{,}, @samp{->} are
924spaces by @code{idlwave-surround}. 928surrounded with spaces by @code{idlwave-surround}.@refill
925@end defopt 929@end defopt
926 930
927@defopt idlwave-pad-keyword (@code{t}) 931@defopt idlwave-pad-keyword (@code{t})
@@ -1384,31 +1388,60 @@ The face for breakpoint lines in the source code if
1384@cindex Mouse binding to print expressions 1388@cindex Mouse binding to print expressions
1385 1389
1386When execution is stopped you can examine the values of variables. The 1390When execution is stopped you can examine the values of variables. The
1387command @kbd{C-c C-d C-p} prints the expression at point in the shell 1391command @kbd{C-c C-d C-p} prints the expression at point, while @kbd{C-c
1388buffer, while @kbd{C-c C-d ?} shows help on this expression. The 1392C-d ?} shows help on this expression. The expression at point is an
1389expression at point is an array expression or a function call, or the 1393array expression or a function call, or the contents of a pair of
1390contents of a pair of parenthesis. The selected expression becomes 1394parenthesis. The selected expression becomes highlighted in the source
1391highlighted in the source code for a short time. 1395code for a short time. Calling the above commands with a prefix
1396argument will prompt for an expression instead of using the one at
1397point.
1392 1398
1393I find it very convenient to bind these functions to a mouse event, so 1399I find it very convenient to bind these functions to a mouse event, so
1394that simply clicking on an expression prints its value. Here is a way 1400that simply clicking on an expression prints its value. The following
1395to do this with XEmacs: 1401code binds printing an expression to a click with mouse button 2 while
1402holding down the @key{SHIFT} key:
1396 1403
1397@lisp 1404@lisp
1398(add-hook 'idlwave-shell-mode-hook 1405(add-hook 'idlwave-shell-mode-hook
1399 (lambda() 1406 (lambda()
1400 (define-key idlwave-mode-map [(shift button1)] 1407 (define-key idlwave-mode-map [(shift mouse-2)]
1401 'idlwave-shell-mouse-print) 1408 'idlwave-shell-mouse-print)))
1402 (define-key idlwave-mode-map [(shift button2)]
1403 'idlwave-shell-mouse-help)))
1404@end lisp 1409@end lisp
1405 1410
1411Printing of expressions also works on higher levels of the calling
1412stack. This means that you can examine the values of variables and
1413expressions inside the routine which called the current routine etc.
1414Use the commands @kbd{C-c C-d C-@key{UP}}
1415(@code{idlwave-shell-stack-up}) and @kbd{C-c C-d C-@key{DOWN}}
1416(@code{idlwave-shell-stack-down}) or the corresponding toolbar buttons
1417to move through the calling stack. The mode line will indicate the
1418routine and the calling stack level which define the context for
1419printing expressions. The following restrictions apply for all levels
1420except the current:@refill
1421
1422@itemize @bullet
1423@item
1424Array expressions must use the @samp{[ ]} index delimiters. Identifiers
1425with a @samp{( )} will be interpreted as function calls.
1426@item
1427Variable names in the expression may not start with an underscore
1428@samp{_}.
1429@item
1430@cindex ROUTINE_NAMES, IDL procedure
1431Printing values of expressions on higher levels of the calling stack
1432uses the @emph{unsupported} IDL routine @code{ROUTINE_NAMES}, which may
1433or may not be available in future versions of IDL.
1434@end itemize
1435
1406@defopt idlwave-shell-expression-face 1436@defopt idlwave-shell-expression-face
1407The face for @code{idlwave-shell-expression-overlay}. 1437The face for @code{idlwave-shell-expression-overlay}.
1408Allows you to choose the font, color and other properties for 1438Allows you to choose the font, color and other properties for
1409the expression printed by IDL. 1439the expression printed by IDL.
1410@end defopt 1440@end defopt
1411 1441
1442@defopt idlwave-shell-print-expression-function (@code{nil})
1443A function to handle special display of evaluated expressions.
1444@end defopt
1412 1445
1413@node Installation, Acknowledgement, The IDLWAVE Shell, Top 1446@node Installation, Acknowledgement, The IDLWAVE Shell, Top
1414@chapter Installation 1447@chapter Installation
@@ -1425,8 +1458,8 @@ the expression printed by IDL.
1425@node Installing IDLWAVE, Upgrading from idl.el, Installation, Installation 1458@node Installing IDLWAVE, Upgrading from idl.el, Installation, Installation
1426@section Installing IDLWAVE 1459@section Installing IDLWAVE
1427 1460
1428IDLWAVE is part of Emacs 21.1 and later. It is also@footnote{or will be 1461IDLWAVE is part of Emacs 21.1 and later. It is also an XEmacs packages
1429soon} an XEmacs packages and can be installed from 1462and can be installed from
1430@uref{ftp://ftp.xemacs.org/pub/xemacs/packages/,the XEmacs ftp site} 1463@uref{ftp://ftp.xemacs.org/pub/xemacs/packages/,the XEmacs ftp site}
1431with the normal package management system on XEmacs 21.@refill 1464with the normal package management system on XEmacs 21.@refill
1432 1465
@@ -1458,6 +1491,10 @@ to get a separate frame for the IDL shell, remove that command from your
1458@lisp 1491@lisp
1459(setq idlwave-shell-use-dedicated-frame t) 1492(setq idlwave-shell-use-dedicated-frame t)
1460@end lisp 1493@end lisp
1494@item
1495The key sequence @kbd{M-@key{TAB}} no longer inserts a TAB character,
1496but (as in many other Emacs modes) does completion. Inserting a TAB is
1497now bound to @kbd{C-c @key{SPC}}.@refill
1461@end enumerate 1498@end enumerate
1462 1499
1463@node Acknowledgement, Sources of Routine Info, Installation, Top 1500@node Acknowledgement, Sources of Routine Info, Installation, Top
@@ -1634,7 +1671,7 @@ shell will show up twice in the @file{*Completions*} listing. This is
1634usually not a serious problem. However, if you have scanned the part of 1671usually not a serious problem. However, if you have scanned the part of
1635the library relevant for you, and if you are not compiling files which 1672the library relevant for you, and if you are not compiling files which
1636are not on the library search path, the information about compiled 1673are not on the library search path, the information about compiled
1637routines is in fact unnecessary. In this case, you can turn of the 1674routines is in fact unnecessary. In this case, you can turn off the
1638shell query for compiled routines with the variable 1675shell query for compiled routines with the variable
1639@code{idlwave-query-shell-for-routine-info}.@refill 1676@code{idlwave-query-shell-for-routine-info}.@refill
1640 1677
@@ -1675,9 +1712,9 @@ options in your package, but which ones do @emph{you} as the maintainer
1675actually set in your own configuration? 1712actually set in your own configuration?
1676 1713
1677@noindent 1714@noindent
1678@b{Answer:} Hardly any. As the maintainer, I set the default of all 1715@b{Answer:} Hardly any. As the maintainer, I set the default of most
1679options to what I think is best. However, I do not turn on features by 1716options to what I think is best. However, the default settings do not
1680default which 1717turn on features which
1681@itemize @minus 1718@itemize @minus
1682@item 1719@item
1683are not self-evident (i.e. too magic) when used by an unsuspecting user 1720are not self-evident (i.e. too magic) when used by an unsuspecting user
@@ -1689,8 +1726,8 @@ will not work properly on all Emacs installations out there
1689break with what I think are widely used standards. 1726break with what I think are widely used standards.
1690@end itemize 1727@end itemize
1691 1728
1692@noindent To see what I mean, here is the entire configuration I have in 1729@noindent To see what I mean, here is the @emph{entire} configuration I
1693my @file{.emacs}: 1730have in my @file{.emacs}:
1694 1731
1695@lisp 1732@lisp
1696(setq idlwave-shell-activate-alt-keybindings t 1733(setq idlwave-shell-activate-alt-keybindings t
@@ -1752,7 +1789,11 @@ user is King!@refill
1752 ;; 1789 ;;
1753 ;; Only pad after comma and with exactly 1 space 1790 ;; Only pad after comma and with exactly 1 space
1754 (idlwave-action-and-binding "," '(idlwave-surround nil 1)) 1791 (idlwave-action-and-binding "," '(idlwave-surround nil 1))
1792 (idlwave-action-and-binding "&" '(idlwave-surround 1 1))
1755 ;; 1793 ;;
1794 ;; Pad only after `->', remove any space before the arrow
1795 (idlwave-action-and-binding "->" '(idlwave-surround 0 -1 nil 2))
1796 ;;;
1756 ;; Set some personal bindings 1797 ;; Set some personal bindings
1757 ;; (In this case, makes `,' have the normal self-insert behavior.) 1798 ;; (In this case, makes `,' have the normal self-insert behavior.)
1758 (local-set-key "," 'self-insert-command) 1799 (local-set-key "," 'self-insert-command)
@@ -1770,7 +1811,6 @@ user is King!@refill
1770(setq idlwave-shell-prompt-pattern "^WAVE> ") ; default is "^IDL> " 1811(setq idlwave-shell-prompt-pattern "^WAVE> ") ; default is "^IDL> "
1771(setq idlwave-shell-explicit-file-name "wave") 1812(setq idlwave-shell-explicit-file-name "wave")
1772(setq idlwave-shell-process-name "wave") 1813(setq idlwave-shell-process-name "wave")
1773(setq idlwave-shell-use-dedicated-frame t) ; Shell on separate frame
1774(setq idlwave-shell-use-toolbar nil) ; No toolbar 1814(setq idlwave-shell-use-toolbar nil) ; No toolbar
1775@end example 1815@end example
1776 1816