branch: externals/idlwave commit 7f3a88f0f3ccba007fe16298cb75b2303592d7b2 Author: jdsmith <jdsmith> Commit: jdsmith <jdsmith>
*** empty log message *** --- CHANGES | 18 +++++++++++ INSTALL | 50 +++++++++++++----------------- README | 8 +++-- idlwave.texi | 100 +++++++++++++++++++++++++++++++++++++---------------------- 4 files changed, 107 insertions(+), 69 deletions(-) diff --git a/CHANGES b/CHANGES index 1eb5281c14..e59ac91e2f 100644 --- a/CHANGES +++ b/CHANGES @@ -4,6 +4,24 @@ The file covers only the changes for Revision 3.0 and later. Earlier changes are documented in the (obsolete) files idl.el and idl-shell.el, available at idlwave.org. +Revision 5.2 +============= + - Supports IDLv6.0, including a new set of HTML documentation. + - Pads new IDL6 assignment operators (e.g. #=, XOR=), when + `idlwave-surround-with-space' is set. Operators with + alphabetical prefixes must be separated from the left-hand-side + with a space. + - Better behavior of keyword and for-loop assignment padding. + - Rescan saved paths when "Save Path Info" selected. + - Fixed small continued statement indentation for closing + parentheses on a line by themselves. + - Better handling of continued statement indents with in-line + assignments and for loops, e.g. "if 1 then a=1 else $". + - Always show HTML help if available, using in-file help for those + routines with available source code as a backup. + - Filename completion after "." no longer confused with structure + completion. + Revision 5.1 ============= - Fixed handling of method calls and keywords when padding diff --git a/INSTALL b/INSTALL index b616fc5f15..b9455e8364 100644 --- a/INSTALL +++ b/INSTALL @@ -33,7 +33,14 @@ Put them in /tmp (or anywhere), then do (as root): where "version" is something like 5.0. This by default puts idlwave in /usr/local/share/emacs/site-lisp/, which is a fine place. -To install the HTML Help (needed for online help), get: +HTML Help packages +--------------------------------------------------------------------------- + +Note that you do *not* need to update your help package with each +version of IDLWAVE, but only when you change IDL versions -- there is +only one help package per IDL version. + +To install the HTML Help (needed for context-aware online help), get: http://idlwave.org/download/idlwave-help.tar.bz2 @@ -43,9 +50,8 @@ and % mv /path/to/idlwave-help.tar.bz2 . % make install-help -This puts the help files in /usr/local/etc. The help installation is -only required if you're updating the HTML help on your system (i.e., -once per IDL release). +This simply puts the help files in /usr/local/etc (you can unpack it +there yourself, if you prefer). N.B. Windows users do not need the help package to use online help. @@ -160,30 +166,15 @@ The level of colorization can be controlled with the variable `font-lock-maximum-decoration'. -5. ARE YOU UPGRADING FROM THE OLD `idl.el' FILE? -================================================ - -If you have any customization for the older `idl-mode' in your .emacs -file, you need to do the following: -a) Change all variable and function prefixes from `idl-' to `idlwave-'. -b) Remove the now invalid `autoload' and `auto-mode-alist' - forms pointing to the `idl.el' and `idl-shell.el' files. -c) If you did use the hook recommended in earlier versions to get - a separate frame for the IDL shell, remove that hook again. - Instead, set the variable `idlwave-shell-use-dedicated-frame' with - (setq idlwave-shell-use-dedicated-frame t) -d) The key sequence `M-TAB' no longer inserts a TAB character, but (as - in many other Emacs modes) does completion. Inserting a TAB is now - bound to `C-TAB'. - -6. YOU ARE DONE -=============== +6. YOU ARE DONE WITH THE REQUIRED STEPS +======================================= IDLWAVE has online documentation in Info format. To view this information, use `M-x idlwave-info' or follow the Menu entry in the IDLWAVE menu. You can also convert the documentation into Postscript with `make ps', HTML with `make html', and PDF with "make pdf' in the -source directory. +source directory, or download the manual in one of these formats from +idlwave.org. ------------------------------------------------------------------------- OPTIONAL STEPS @@ -220,7 +211,7 @@ located with (setq idlwave-html-help-location "/path/to/help/files/") in your .emacs file ("/usr/local/etc" is the default). Alternatively, -you can set the environment variable IDLWAVE_HELP_LOCATION. +you can just set the environment variable IDLWAVE_HELP_LOCATION. If you have an older version of IDL than is supported by the current IDLWAVE, you can install a "downgrade kit", which provides the older @@ -236,8 +227,9 @@ notice by RSI. If you would like to use routine information and completion for routines in your local and private IDL libraries, they have to be -scanned into catalogs. Some libraries are pre-scanned (look for -.idlwave_catalog files), and you have two choices: use the Perl script -`idlwave_catalog' to create your own library catalog files (the -preferred way), and/or create a user catalog of your routines within -Emacs. See the manual for more information. +scanned into catalogs. Some popular libraries come pre-scanned (look +for .idlwave_catalog files). To scan your own libraries, you have two +choices: use the Perl script `idlwave_catalog' to create your own +library catalog files (the preferred way), and/or create a user +catalog of your routines within Emacs. See the manual for more +information. diff --git a/README b/README index 34918caaed..3c3fa8f620 100644 --- a/README +++ b/README @@ -15,7 +15,8 @@ idlw-shell.el The Lisp code for idlwave-shell-mode idlw-rinfo.el The Lisp constant for routine-info and help links idlw-help.el The Lisp code for the help system idlw-toolbar.el The Lisp code for the toolbar -idlw-complete-structtag.el The Lisp code for option structure tag completion +idlw-complete-structtag.el + The Lisp code for optional structure tag completion idlw-roprompt.el The Lisp code for the optional read-only prompt idlwave.texi The TeX-Info documentation source @@ -27,11 +28,12 @@ idlwave-3 / idlwave_catalog A Perl program to produce library catalog ".idlwave_catalog" files. get_html_rinfo A Perl program to scan the IDL documentation and - produce several files needed by IDLWAVE. + produce several files used by IDLWAVE online help. tutorial.pro Intentionally buggy source code for the tutorial. See the`Getting Started' section in the manual. -The most recent version of IDLWAVE is available at: +The most recent version of IDLWAVE and associated help files are +available at: http://idlwave.org \ No newline at end of file diff --git a/idlwave.texi b/idlwave.texi index 9e3f25f6b8..85f059d4fd 100644 --- a/idlwave.texi +++ b/idlwave.texi @@ -9,14 +9,14 @@ @synindex ky cp @syncodeindex vr cp @syncodeindex fn cp -@set VERSION 5.0 -@set EDITION 5.0 -@set IDLVERSION 5.6 -@set NSYSROUTINES 1460 -@set NSYSKEYWORDS 6586 -@set DATE May 2003 +@set VERSION 5.2 +@set EDITION 5.2 +@set IDLVERSION 6.0 +@set NSYSROUTINES 1713 +@set NSYSKEYWORDS 7258 +@set DATE November, 2003 @set AUTHOR J.D. Smith & Carsten Dominik -@set AUTHOR-EMAIL dominik@@astro.uva.nl +@set AUTHOR-EMAIL jdsmith@@as.arizona.edu @set MAINTAINER J.D. Smith @set MAINTAINER-EMAIL jdsmith@@as.arizona.edu @set IDLWAVE-HOMEPAGE http://idlwave.org/ @@ -478,10 +478,12 @@ Let's check out two particular editing features of IDLWAVE. Place the cursor after the @code{end} statement of the @code{for} loop and press @key{SPC}. IDLWAVE blinks back to the beginning of the block and changes the generic @code{end} to the specific @code{endfor} -automatically. Now place the cursor in any line you would like to split -and press @kbd{M-@key{RET}}. The line is split at the cursor position, -with the continuation @samp{$} and indentation all taken care of. Use -@kbd{C-/} to undo the last change. +automatically (as long as the variable @code{idlwave-expand-generic-end} +is turned on --- @pxref{Lesson II -- Customization}). Now place the +cursor in any line you would like to split and press @kbd{M-@key{RET}}. +The line is split at the cursor position, with the continuation @samp{$} +and indentation all taken care of. Use @kbd{C-/} to undo the last +change. The procedure @code{plot_wday} is supposed to plot the day of the week of a given date for the first 10 years of the 21st century. As in @@ -631,11 +633,12 @@ there is another, more user-friendly way to customize all the IDLWAVE variables. You can access it through the IDLWAVE menu in one of the @file{.pro} buffers, menu item @code{Customize->Browse IDLWAVE Group}. Here you'll be presented with all the various variables grouped -into categories. You can navigate the hierarchy (e.g. IDLWAVE Code -Formatting->Idlwave Main Block Indent), read about the variables, change -them, and `Save for Future Sessions'. Few of these variables need -customization, but you can exercise considerable control over IDLWAVE's -functionality with them. +into categories. You can navigate the hierarchy (e.g. @samp{IDLWAVE +Code Formatting->Idlwave Abbrev And Indent Action->Idlwave Expand +Generic End} to turn on @code{END} expansion), read about the variables, +change them, and `Save for Future Sessions'. Few of these variables +need customization, but you can exercise considerable control over +IDLWAVE's functionality with them. You may also find the key bindings used for the debugging commands too long and complicated. Often we have heard complaints along the lines @@ -790,16 +793,16 @@ them. The IDL language, with its early roots in FORTRAN, modern implementation in C, and liberal borrowing of features of many vector -languages along its 25+ year history, has inherited an unusual mix of -syntax elements. Left to his or her own devices, a novice IDL -programmer will often conjure code which is very difficult to read and -impossible to adapt. Much can be gleaned from studying available IDL -code libraries for coding style pointers, but, due to the variety of -IDL syntax elements, replicating this style can be challenging at -best. Luckily, IDLWAVE understands the structure of IDL code very -well, and takes care of almost all formatting issues for you. After -configuring it to match your coding standards, you can rely on it to -help keep your code neat and organized. +and other languages along its 25+ year history, has inherited an +unusual mix of syntax elements. Left to his or her own devices, a +novice IDL programmer will often conjure code which is very difficult +to read and impossible to adapt. Much can be gleaned from studying +available IDL code libraries for coding style pointers, but, due to +the variety of IDL syntax elements, replicating this style can be +challenging at best. Luckily, IDLWAVE understands the structure of +IDL code very well, and takes care of almost all formatting issues for +you. After configuring it to match your coding standards, you can +rely on it to help keep your code neat and organized. @node Code Indentation, Continued Statement Indentation, Code Formatting, Code Formatting @@ -1696,8 +1699,9 @@ enabled by default --- the variable @code{idlwave-store-inquired-class} can be used to turn it on. @defopt idlwave-completion-show-classes (@code{1}) -Non-@code{nil} means show classes in @file{*Completions*} buffer when -completing object methods and keywords. +Non-@code{nil} means show up to that many classes in +@file{*Completions*} buffer when completing object methods and +keywords. @end defopt @defopt idlwave-completion-fontify-classes (@code{t}) @@ -4021,6 +4025,10 @@ instead. @item Other issues as yet unnamed... @end itemize +Windows users who'd like to make use of IDLWAVE's context-aware HTML +help can skip the browser and use the HTMLHelp functionality directly. +@xref{Help with HTML Documentation}. + @ifhtml <A NAME="TROUBLE"></A> @end ifhtml @@ -4046,6 +4054,33 @@ variable @code{idlwave-shell-automatic-electric-debug} if you prefer not to enter electric debug on errors or breakpoints@dots{} but you really should try it before you disable it! +@item @strong{I get errors like @samp{Searching for program: no such +file or directory, idl} when starting the shell.} + +IDLWAVE needs to know where IDL is to run it as a process. By default, +it attempts to invoke it as @samp{idl}, which presumes such an +executable is on your search path. You need to ensure @samp{idl} is on +your @samp{$PATH}, or specify the full pathname to the idl program with +@code{idlwave-shell-explicit-file-name}. Note that you may need to set +your path in two places when running Emacs as an Aqua application with +MacOSX; see the next topic. + +@item @strong{IDLWAVE is disregarding my @samp{IDL_PATH} which I set +under MacOSX} + +If you run Emacs directly as an Aqua application, rather than from the +console shell, the environment is set not from your usual shell +configuration files (e.g. @file{.cshrc}), but from the file +@file{~/.MacOSX/environment.plist}. Either include your path settings +there, or start Emacs and IDLWAVE from the shell. + +@item @strong{I get errors like @samp{Symbol's function is void: +overlayp} when trying to start the shell in XEmacs} + +You don't have the @samp{fsf-compat} package installed, which IDLWAVE +needs to run under XEmacs. Install it and, if necessary, insert +@code{(require 'overlay)} in your @file{.emacs}. + @item @strong{I'm getting errors like @samp{Symbol's value as variable is void: cl-builtin-gethash} on completion or routine info.} @@ -4132,15 +4167,6 @@ Another solution: make sure @file{.idl} files load IDLWAVE instead of (setcdr (rassoc 'idl-mode auto-mode-alist) 'idlwave-mode) @end lisp -@item @strong{IDLWAVE is disregarding my @samp{IDL_PATH} which I set -under MacOSX} - -If you run Emacs directly as an Aqua application, rather than from the -console shell, the environment is set not from your usual shell -configuration files (e.g. @file{.cshrc}), but from the file -@file{~/.MacOSX/environment.plist}. Either include your path settings -there, or start Emacs and IDLWAVE from the shell. - @item @strong{The routine info for my local routines is out of date!} IDLWAVE collects routine info from various locations (@pxref{Routine