/[emacs]/emacs/man/idlwave.texi
ViewVC logotype

Diff of /emacs/man/idlwave.texi

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.20 by jdsmith, Fri Jul 19 01:33:34 2002 UTC revision 1.21 by jdsmith, Fri Jul 19 07:01:33 2002 UTC
# Line 2  Line 2 
2  @c %**start of header  @c %**start of header
3  @setfilename ../info/idlwave  @setfilename ../info/idlwave
4  @settitle IDLWAVE User Manual  @settitle IDLWAVE User Manual
5  @dircategory Editors  @dircategory Emacs
6  @direntry  @direntry
7  * IDLWAVE: (idlwave).   Major mode and shell for IDL files.  * IDLWAVE: (idlwave).   Major mode and shell for IDL files.
8  @end direntry  @end direntry
# Line 33  This is edition @value{EDITION} of the I Line 33  This is edition @value{EDITION} of the I
33  Copyright @copyright{} 1999, 2000, 2001, 2002 Free Software Foundation,  Copyright @copyright{} 1999, 2000, 2001, 2002 Free Software Foundation,
34  Inc.  Inc.
35    
36  Permission is granted to make and distribute verbatim  Permission is granted to copy, distribute and/or modify this document
37  copies of this manual provided the copyright notice and  under the terms of the GNU Free Documentation License, Version 1.1 or
38  this permission notice are preserved on all copies.  any later version published by the Free Software Foundation; with no
39        Invariant Sections, with the Front-Cover texts being ``A GNU
40  @ignore  Manual'', and with the Back-Cover Texts as in (a) below.  A copy of the
41  Permission is granted to process this file through TeX and print the  license is included in the section entitled ``GNU Free Documentation
42  results, provided the printed document carries a copying permission  License'' in the Emacs manual.
43  notice identical to this one except for the removal of this paragraph  
44  (this paragraph not being relevant to the printed manual).  (a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify
45        this GNU Manual, like GNU software.  Copies published by the Free
46  @end ignore  Software Foundation raise funds for GNU development.''
47  Permission is granted to copy and distribute modified  
48  versions of this manual under the conditions for  This document is part of a collection distributed under the GNU Free
49  verbatim copying, provided that the entire resulting  Documentation License.  If you want to distribute this document
50  derived work is distributed under the terms of a permission  separately from the collection, you can do so by adding a copy of the
51  notice identical to this one.  license to the document, as described in section 6 of the license.
       
 Permission is granted to copy and distribute  
 translations of this manual into another language,  
 under the above conditions for modified versions,  
 except that this permission notice may be stated in a  
 translation approved by the Free Software Foundation.  
52  @end ifinfo  @end ifinfo
53    
54  @titlepage  @titlepage
# Line 64  translation approved by the Free Softwar Line 58  translation approved by the Free Softwar
58    
59  @author by Carsten Dominik & J.D. Smith  @author by Carsten Dominik & J.D. Smith
60  @page  @page
 Copyright @copyright{} 1999, 2000, 2001, 2002 Free Software Foundation, Inc.  
   
 @sp 2  
61  This is edition @value{EDITION} of the @cite{IDLWAVE User Manual} for  This is edition @value{EDITION} of the @cite{IDLWAVE User Manual} for
62  IDLWAVE version @value{VERSION}, @value{DATE}.  IDLWAVE version @value{VERSION}, @value{DATE}.
   
63  @sp 2  @sp 2
64    Copyright @copyright{} 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
65    @sp 2
66  @cindex Copyright, of IDLWAVE  @cindex Copyright, of IDLWAVE
67  Permission is granted to make and distribute verbatim  Permission is granted to copy, distribute and/or modify this document
68  copies of this manual provided the copyright notice and  under the terms of the GNU Free Documentation License, Version 1.1 or
69  this permission notice are preserved on all copies.  any later version published by the Free Software Foundation; with no
70        Invariant Sections, with the Front-Cover texts being ``A GNU
71  Permission is granted to copy and distribute modified  Manual'', and with the Back-Cover Texts as in (a) below.  A copy of the
72  versions of this manual under the conditions for  license is included in the section entitled ``GNU Free Documentation
73  verbatim copying, provided that the entire resulting  License'' in the Emacs manual.
74  derive work is distributed under the terms of a permission  
75  notice identical to this one.  (a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify
76        this GNU Manual, like GNU software.  Copies published by the Free
77  Permission is granted to copy and distribute  Software Foundation raise funds for GNU development.''
78  translations of this manual into another language,  
79  under the above conditions for modified versions,  This document is part of a collection distributed under the GNU Free
80  except that this permission notice may be stated in a  Documentation License.  If you want to distribute this document
81  translation approved by the Free Software Foundation.  separately from the collection, you can do so by adding a copy of the
82    license to the document, as described in section 6 of the license.
83  @end titlepage  @end titlepage
84  @contents  @contents
85    
# Line 1258  keywords).  Otherwise the routine defini Line 1249  keywords).  Otherwise the routine defini
1249  @kindex M-?  @kindex M-?
1250  In any IDL program (or, as with most IDLWAVE commands, in the IDL  In any IDL program (or, as with most IDLWAVE commands, in the IDL
1251  Shell), press @kbd{M-?} (@code{idlwave-context-help}), or click with  Shell), press @kbd{M-?} (@code{idlwave-context-help}), or click with
1252  @kbd{S-mouse-3} to access context sensitive online help.  The following  @kbd{S-Mouse-3} to access context sensitive online help.  The following
1253  locations are recognized context for help:  locations are recognized context for help:
1254    
1255  @cindex Context, for online help  @cindex Context, for online help
# Line 1296  which online help can be accessed. Line 1287  which online help can be accessed.
1287  @itemize @bullet  @itemize @bullet
1288  @item  @item
1289  Online help for routines and keywords can be accessed through the  Online help for routines and keywords can be accessed through the
1290  Routine Info display.  Click with @kbd{mouse-3} on an item to see the  Routine Info display.  Click with @kbd{Mouse-3} on an item to see the
1291  corresponding help (@pxref{Routine Info}).  corresponding help (@pxref{Routine Info}).
1292  @item  @item
1293  When using completion and Emacs pops up a window with possible  When using completion and Emacs pops up a window with possible
1294  completions, clicking with @kbd{mouse-3} on a completion item invokes  completions, clicking with @kbd{Mouse-3} on a completion item invokes
1295  help on that item (@pxref{Completion}).  help on that item (@pxref{Completion}).
1296  @end itemize  @end itemize
1297  @noindent  @noindent
# Line 1308  In both cases, a blue face indicates tha Line 1299  In both cases, a blue face indicates tha
1299  IDL manual, but an attempt will be made to visit non-blue items directly  IDL manual, but an attempt will be made to visit non-blue items directly
1300  in the originating source file.  in the originating source file.
1301    
1302  @cindex Help application, keybindings  @cindex Help application, key bindings
1303  @cindex Keybindings, in help application  @cindex Key bindings, in help application
1304  The help window is normally displayed in a separate frame.  The  The help window is normally displayed in a separate frame.  The
1305  following commands can be used to navigate inside the help system:  following commands can be used to navigate inside the help system:
1306    
# Line 1326  following commands can be used to naviga Line 1317  following commands can be used to naviga
1317  @tab Move back and forward through the help topic history.  @tab Move back and forward through the help topic history.
1318  @item @kbd{c}  @item @kbd{c}
1319  @tab Clear the history.  @tab Clear the history.
1320  @item @kbd{mouse-2}  @item @kbd{Mouse-2}
1321  @tab Follow a link.  Active links are displayed in a different font.  @tab Follow a link.  Active links are displayed in a different font.
1322  Items under @i{See Also} are active, and classes have links to their  Items under @i{See Also} are active, and classes have links to their
1323  methods and back.  methods and back.
# Line 1369  The frame parameters for the special Onl Line 1360  The frame parameters for the special Onl
1360  @end defopt  @end defopt
1361    
1362  @defopt idlwave-max-popup-menu-items (@code{20})  @defopt idlwave-max-popup-menu-items (@code{20})
1363  Maximum number of items per pane in popup menus.  Maximum number of items per pane in pop-up menus.
1364  @end defopt  @end defopt
1365    
1366  @defopt idlwave-extra-help-function  @defopt idlwave-extra-help-function
# Line 1452  M-@key{TAB}}. Line 1443  M-@key{TAB}}.
1443  If the list of completions is too long to fit in the  If the list of completions is too long to fit in the
1444  @file{*Completions*} window, the window can be scrolled by pressing  @file{*Completions*} window, the window can be scrolled by pressing
1445  @kbd{M-@key{TAB}} repeatedly.  Online help (if installed) for each  @kbd{M-@key{TAB}} repeatedly.  Online help (if installed) for each
1446  possible completion is available by clicking with @kbd{mouse-3} on the  possible completion is available by clicking with @kbd{Mouse-3} on the
1447  item.  Items for which system online help (from the IDL manual) is  item.  Items for which system online help (from the IDL manual) is
1448  available will be displayed in a different font (e.g. colored blue).  available will be displayed in a different font (e.g. colored blue).
1449  For other items, the corresponding source code or DocLib header will be  For other items, the corresponding source code or DocLib header will be
# Line 1699  collects data about routines, and how to Line 1690  collects data about routines, and how to
1690  @cindex Templates  @cindex Templates
1691    
1692  IDLWAVE can insert IDL code templates into the buffer.  For a few  IDLWAVE can insert IDL code templates into the buffer.  For a few
1693  templates, this is done with direct keybindings:  templates, this is done with direct key bindings:
1694    
1695  @multitable @columnfractions .15 .85  @multitable @columnfractions .15 .85
1696  @item @kbd{C-c C-c}  @item @kbd{C-c C-c}
# Line 1866  String abbreviations: Line 1857  String abbreviations:
1857  @end multitable  @end multitable
1858    
1859  @noindent You can easily add your own abbreviations or override existing  @noindent You can easily add your own abbreviations or override existing
1860  abbrevs with @code{define-abbrev} in your mode hook using the  abbrevs with @code{define-abbrev} in your mode hook, using the
1861  convenience function @code{idlwave-define-abbrev}:  convenience function @code{idlwave-define-abbrev}:
1862    
1863  @lisp  @lisp
# Line 2181  Normal hook.  Executed when @file{idlwav Line 2172  Normal hook.  Executed when @file{idlwav
2172  @cindex Comint, Emacs package  @cindex Comint, Emacs package
2173  @cindex Windows  @cindex Windows
2174  @cindex MacOS  @cindex MacOS
 @cindex Unix  
2175    
2176  The IDLWAVE shell is an Emacs major mode which permits running the IDL  The IDLWAVE shell is an Emacs major mode which permits running the IDL
2177  program as an inferior process of Emacs, and works closely with the  program as an inferior process of Emacs, and works closely with the
# Line 2193  Unfortunately IDL for Windows and MacOS Line 2183  Unfortunately IDL for Windows and MacOS
2183  versions and thus do not allow the interaction with  versions and thus do not allow the interaction with
2184  Emacs@footnote{Please inform the maintainer if you come up with a way to  Emacs@footnote{Please inform the maintainer if you come up with a way to
2185  make the IDLWAVE shell work on these systems.} --- so the IDLWAVE shell  make the IDLWAVE shell work on these systems.} --- so the IDLWAVE shell
2186  currently only works under Unix.  currently only works under GNU and Unix.
2187    
2188  @menu  @menu
2189  * Starting the Shell::          How to launch IDL as a subprocess  * Starting the Shell::          How to launch IDL as a subprocess
# Line 2430  modes. Line 2420  modes.
2420    
2421  @kindex C-c C-d  @kindex C-c C-d
2422  Programs can be compiled, run, and debugged directly from the source  Programs can be compiled, run, and debugged directly from the source
2423  buffer in Emacs.  The IDLWAVE shell installs keybindings both in the  buffer in Emacs.  The IDLWAVE shell installs key bindings both in the
2424  shell buffer and in all IDL code buffers of the current Emacs session.  shell buffer and in all IDL code buffers of the current Emacs session.
2425  On Emacs versions which support this, it also installs a debugging  On Emacs versions which support this, it also installs a debugging
2426  toolbar.  The display of the toolbar can be toggled with @kbd{C-c C-d  toolbar.  The display of the toolbar can be toggled with @kbd{C-c C-d
2427  C-t} (@code{idlwave-shell-toggle-toolbar}).  C-t} (@code{idlwave-shell-toggle-toolbar}).
2428    
2429  The debugging keybindings are by default on the prefix key @kbd{C-c  The debugging key bindings are by default on the prefix key @kbd{C-c
2430  C-d}, so for example setting a breakpoint is done with @kbd{C-c C-d  C-d}, so for example setting a breakpoint is done with @kbd{C-c C-d
2431  C-b}, compiling a source file with @kbd{C-c C-d C-c}.  If you find this  C-b}, compiling a source file with @kbd{C-c C-d C-c}.  If you find this
2432  too much work, you can add bindings for one or more modifier keys which  too much work, you can add bindings for one or more modifier keys which
# Line 2660  current region as expression. Line 2650  current region as expression.
2650    
2651  For added speed and convenience, there are mouse bindings which allow  For added speed and convenience, there are mouse bindings which allow
2652  you to click on expressions and examine their values.  Use  you to click on expressions and examine their values.  Use
2653  @kbd{S-mouse-2} to print an expression and @kbd{C-M-mouse-2} to invoke  @kbd{S-Mouse-2} to print an expression and @kbd{C-M-Mouse-2} to invoke
2654  help (i.e. you need to hold down @key{META} and @key{CONTROL} while  help (i.e. you need to hold down @key{META} and @key{CONTROL} while
2655  clicking with the middle mouse button).  If you simply click, the  clicking with the middle mouse button).  If you simply click, the
2656  nearest expression will be selected in the same manner as described  nearest expression will be selected in the same manner as described
# Line 2722  mouse examine command, and two macros fo Line 2712  mouse examine command, and two macros fo
2712  bindings.  bindings.
2713    
2714  The most powerful and flexible mouse examine command is available on  The most powerful and flexible mouse examine command is available on
2715  @kbd{C-S-mouse-2}.  Just as for all the other mouse examine commands, it  @kbd{C-S-Mouse-2}.  Just as for all the other mouse examine commands, it
2716  permits click or drag expression selection, but instead of sending  permits click or drag expression selection, but instead of sending
2717  hard-coded commands to the shell, it pops-up a customizable selection  hard-coded commands to the shell, it pops-up a customizable selection
2718  list of examine functions to choose among, configured with the  list of examine functions to choose among, configured with the
# Line 2732  the command, and the values are the comm Line 2722  the command, and the values are the comm
2722  @code{___} (three underscores) will be replaced by the selected  @code{___} (three underscores) will be replaced by the selected
2723  expression before being sent to the shell.  An example might be key  expression before being sent to the shell.  An example might be key
2724  @code{Structure Help} with value @code{help,___,/STRUCTURE}.  @code{Structure Help} with value @code{help,___,/STRUCTURE}.
2725    @code{idlwave-shell-examine-alist} comes by default with a large list of
2726    examine commands, but can be easily customized to add more.
2727    
2728  In addition to the popup mouse command, you can easily create your own  In addition to the pop-up mouse command, you can easily create your own
2729  customized bindings to inspect expressions using the two convenience  customized bindings to inspect expressions using the two convenience
2730  macros @code{idlwave-shell-inspect} and  macros @code{idlwave-shell-inspect} and
2731  @code{idlwave-shell-mouse-inspect}.  These create keyboard or  @code{idlwave-shell-mouse-inspect}.  These create keyboard or
# Line 2764  see, the possibilities are only marginal Line 2756  see, the possibilities are only marginal
2756    
2757  @defopt idlwave-shell-examine-alist  @defopt idlwave-shell-examine-alist
2758  An alist of examine commands in which the keys name the command and are  An alist of examine commands in which the keys name the command and are
2759  displayed in the selection popup, and the values are custom IDL examine  displayed in the selection pop-up, and the values are custom IDL examine
2760  command strings to send, after all instances of @code{___} are replaced  command strings to send, after all instances of @code{___} are replaced
2761  by the indicated expression.  by the indicated expression.
2762  @end defopt  @end defopt
# Line 2848  to get a separate frame for the IDL shel Line 2840  to get a separate frame for the IDL shel
2840  @end lisp  @end lisp
2841  @item  @item
2842  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.
2843  Like in in many other Emacs modes, @kbd{M-@key{TAB}} now does  Like in many other Emacs modes, @kbd{M-@key{TAB}} now does
2844  completion.  Inserting a TAB has therefore been moved to  completion.  Inserting a TAB has therefore been moved to
2845  @kbd{C-@key{TAB}}.  On a character based terminal you can also use  @kbd{C-@key{TAB}}.  On a character based terminal you can also use
2846  @kbd{C-c @key{SPC}}.  @kbd{C-c @key{SPC}}.
# Line 3054  Controls under what circumstances routin Line 3046  Controls under what circumstances routin
3046  @cindex IDL library routine info  @cindex IDL library routine info
3047  @cindex Windows  @cindex Windows
3048  @cindex MacOS  @cindex MacOS
 @cindex Unix  
3049  @cindex IDL variable @code{!DIR}  @cindex IDL variable @code{!DIR}
3050  @cindex @code{!DIR}, IDL variable  @cindex @code{!DIR}, IDL variable
3051    
# Line 3077  path, just like in IDL}: Line 3068  path, just like in IDL}:
3068  (setq idlwave-system-directory "c:/RSI/IDL54/")  (setq idlwave-system-directory "c:/RSI/IDL54/")
3069  @end lisp  @end lisp
3070    
3071  @noindent Under UNIX, these values will be automatically inferred from  @noindent Under GNU and UNIX, these values will be automatically inferred from
3072  an IDLWAVE shell.  an IDLWAVE shell.
3073    
3074  The command @kbd{M-x idlwave-create-libinfo-file} can then be used to  The command @kbd{M-x idlwave-create-libinfo-file} can then be used to
# Line 3098  from the same directories, call the comm Line 3089  from the same directories, call the comm
3089  selected directories, write an updated version of the libinfo file and  selected directories, write an updated version of the libinfo file and
3090  rebuild IDLWAVE's internal lists.  If you give three prefix arguments  rebuild IDLWAVE's internal lists.  If you give three prefix arguments
3091  @w{@kbd{C-u C-u C-u C-c C-i}}, updating will be done with a background  @w{@kbd{C-u C-u C-u C-c C-i}}, updating will be done with a background
3092  job@footnote{Unix systems only, I think.}.  You can continue to work,  job@footnote{GNU and Unix systems only, I think.}.  You can continue to work,
3093  and the library catalog will be re-read when it is ready.  and the library catalog will be re-read when it is ready.
3094    
3095  A note of caution:  Depending on your local installation, the IDL  A note of caution:  Depending on your local installation, the IDL
# Line 3112  File for routine information of the IDL Line 3103  File for routine information of the IDL
3103  @end defopt  @end defopt
3104    
3105  @defopt idlwave-library-path  @defopt idlwave-library-path
3106  IDL library path for Windows and MacOS.  Not needed under Unix.  IDL library path for Windows and MacOS.  Not needed under GNU and Unix.
3107  @end defopt  @end defopt
3108    
3109  @defopt idlwave-system-directory  @defopt idlwave-system-directory
3110  The IDL system directory for Windows and MacOS.  Not needed under UNIX.  The IDL system directory for Windows and MacOS.  Not needed under GNU and Unix.
3111  @end defopt  @end defopt
3112    
3113  @defopt idlwave-special-lib-alist  @defopt idlwave-special-lib-alist
# Line 3300  user is King! Line 3291  user is King!
3291      (font-lock-mode 1)                   ; Turn on font-lock mode      (font-lock-mode 1)                   ; Turn on font-lock mode
3292      (idlwave-auto-fill-mode 0)           ; Turn off auto filling      (idlwave-auto-fill-mode 0)           ; Turn off auto filling
3293    
3294      ;; Pad with with 1 space (if -n is used then make the      ;; Pad with 1 space (if -n is used then make the
3295      ;; padding a minimum of n spaces.)  The defaults use -1      ;; padding a minimum of n spaces.)  The defaults use -1
3296      ;; instead of 1.      ;; instead of 1.
3297      (idlwave-action-and-binding "=" '(idlwave-expand-equal 1 1))      (idlwave-action-and-binding "=" '(idlwave-expand-equal 1 1))
# Line 3379  you have to rely on IDLDE to run and deb Line 3370  you have to rely on IDLDE to run and deb
3370  editing IDL source files with Emacs/IDLWAVE works with all bells and  editing IDL source files with Emacs/IDLWAVE works with all bells and
3371  whistles, including routine info, completion and fast online help.  Only  whistles, including routine info, completion and fast online help.  Only
3372  a small amount of additional information must be specified in your  a small amount of additional information must be specified in your
3373  .emacs file: You must specify path names which on a UNIX can be  .emacs file: you must specify path names which on a GNU or UNIX system
3374  automatically gathered by talking to the IDL program.  are automatically gathered by talking to the IDL program.
3375    
3376  Here is an example of the additional configuration needed for a Windows  Here is an example of the additional configuration needed for a Windows
3377  system.  I am assuming that IDLWAVE has been installed in  system.  I am assuming that IDLWAVE has been installed in

Legend:
Removed from v.1.20  
changed lines
  Added in v.1.21

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26