Initial Commit
[packages] / xemacs-packages / idlwave / CHANGES
1 This is the CHANGES file of the IDLWAVE distribution, version 5.1 
2
3 The file covers only the changes for Revision 3.0 and later.  Earlier
4 changes are documented in the (obsolete) files idl.el and
5 idl-shell.el, available at idlwave.org.
6
7 Revision 5.1
8 =============
9    - Fixed handling of method calls and keywords when padding
10      operators with `idlwave-surround-by-blank'.
11    - Context (not just completion) help on sysvar tags.
12    - Prevent electric-debug mode from enabling when traversing the
13      calling stack, unless it's already enabled.
14    - Fixed bug accidentally binding ESC when using "Shift" among your
15      idlwave-shell-debug-modifiers.
16    - Improve continued assignment statement matching to allow
17      arbitrary left-hand side expressions.
18    - Added support for localizing doclib header sections (e.g. "nom"
19      instead of "name").
20    - Added links to top and bottom of each HTML help page, including a
21      custom-produced table of contents.
22
23 Revision 5.0
24 =============
25    - Introduced Electric-Debug mode, for lightning fast stepping,
26      shortcut-driven variable examination, breakpoint operations, and
27      more, all using single keystrokes.  Look for "*Debugging*" in the
28      mode line and a different colored stop line or arrow.
29    - HTML-based, fully-linked, context-aware online help with
30      configurable browser settings.
31    - New, more flexible routine catalog system.  Any number of
32      per-directory "library catalogs" (in files named
33      ".idlwave_catalog") will be automatically dicovered on the IDL
34      path and loaded.  System-wide libraries can be scanned once for
35      all to use.  Pre-scanned catalog files will be distributed with
36      popular libraries, and can be built by the user (perhaps
37      automatically using, e.g., cron) with the included
38      `idlwave_catalog' perl script.  The older "user catalog"
39      (libinfo) functionality still exists alongside the new system.
40    - Help on system variable tags.
41    - Better breakpoint glyph display in the margins, with different
42      images for different breakpoint types (single, conditional,
43      after, etc.).
44    - Continuations with nothing (aside from "$" and possibly a
45      comment) after the opening comma or parenthesis of routine calls
46      and definitions, or the opening punctuation of a paren-pair
47      (arrays, structures, etc.), now assume you continued the line to
48      get more space, and "give you room" by reverting to the basic
49      indent.
50    - All completion commands can be given two prefix arguments
51      (e.g. C-u C-u M-TAB) to query for a regular expression by which
52      to limit completion.
53    - Better handling of history recall for multi-line commands in the
54      Shell.
55    - Fixed breakpoint scanning for cases of both AFTER and CONDITION
56      being set.
57    - New commands for moving between breakpoint locations in a buffer.
58    - New command for setting a breakpoint at the beginning of the
59      enclosing routine.
60    - Fixed a rarely seen error with shadowed routine sorting order for
61      routines with files.
62    - File name completion for external shell commands (those beginning
63      with `$').
64
65 Revision 4.16
66 =============
67    - Fixed XEmacs error when indenting continuation lines.
68    - Fixed case-bug when simultaneously upcasing and expanding generic
69      END statements (i.e. when using `idlwave-reserved-word-upcase'
70      with 'idlwave-expand-generic-end').
71    - Improved Debug Menu when running the Shell, including the super
72      examination pop-up commands as menu items (for both expression at
73      point, and region).
74    - Highlighted stop-line is cleared when retall'ing.
75    - Better continuation of single statement if..then..else
76      continuation lines.
77    - Fixed broken drag-to-examine functionality on the newest XEmacs
78      versions.
79    - Debugging commands (breakpoints, stepping, etc.) now work in
80      $MAIN$ level routines.
81    - Fixed a rare error when stepping code yourself (e.g., with
82      ".step").
83    - When not showing shell output ( e.g., for stepping commands; see
84      `idlwave-shell-show-commands'), any errors in the output will
85      still be displayed.
86    - An occassional hang when finding keys (e.g. when showing a
87      routine definition block for the last routine in a file) was
88      fixed.
89
90 Revision 4.15
91 =============
92    - Routine info for routines with multi-threading keywords is now
93      displayed correctly, and these keywords are linked in online
94      help.
95    - Fixed bug in Makefile causing trouble compiling when using older
96      versions of help.
97    - Filename completion in the shell works more cleanly without
98      corruption, and can now complete blank filenames in the local
99      directory (e.g. open,'[Tab]).
100    - Filename completion in the shell now works after "@" batch
101      commands.
102    - Better handling of obscure syntax errors.
103    - A special loadable module (`idlw-roprompt') allows Emacs 21 users
104      to make the "IDL>" prompt read-only.
105    - Bug fix: All tags are now found for tag completion on self, and
106      in other structures when the optional completion module
107      `complete-struct-tag' is used.
108    - Bug fix: alignment on the `=' of an assignment now permits a more
109      complicated LHS (e.g. a.(0)[1]=...).  
110    - Fixed bug when using multi-word abbreviations like "\ei": an
111      erroneous begin-end block matching error was being issued.
112    - Fixed system variable tag completion bug when using
113      idlw-complete-structtag for easy structure completion.
114    - Breakpoints are now temporarily disabled when using "Continue to
115      Here" and "Continue to End of Block", ensuring this always works
116      correctly.
117    - Added custom variable for controlling how much of the background
118      communication between buffer and shell is displayed
119      (`idlwave-shell-show-commands').  You can even turn on
120      'everything to get a peek behind the curtain.
121    - By default, object method and method keyword completions in the
122      shell now query the shell for the object class during the
123      completion.  E.g. "a=obj_new("idl_container") & a->[Tab]" will
124      automatically learn that "a" is an IDL_CONTAINER object and offer
125      the correct procedure methods.
126    - You can now set a conditional breakpoint with a simple prefix arg
127      to the breakpoint command (i.e. [C-u C-c C-d C-b]), which will
128      prompt you for the IDL expression.
129    - Fixed bug when completing procedure methods on multi-statement
130      lines.
131    - When completing class structure tags (self.[Tab]), or regular
132      structure (via idlw-complete-structtag) you can now right click
133      on the tags in the completion buffer to pull up their definition
134      in the help window.  Context help also works on class structure
135      tags.
136    - Class structure tags from superclasses are labelled with the
137      class in the *Completions* buffer.
138    - Bug fix for indenting continuation lines which contain "pro" or
139      "function" somewhere within their argument list.
140
141 Revision 4.14
142 =============
143    - More sensible handling of multiple *Examine* buffer windows,
144      allowing permanent resizing of windows.
145    - "q" in an *Examine* window closes it, and "c" clears the old contents.
146    - Continued statements at the end of a multi-line statement (with
147      `&') have continuation indent correctly calculated.
148    - Continued qualified method procedure calls now indented correctly.
149
150 Revision 4.13
151 =============
152    - Security improvement for temporary files.
153    - New convenience routine for creating abbreviations.
154    - Much-improved indentation for multi-line comments in function and
155      procedure calls, structure definitions, etc.... no more lines
156      with "$" only required.
157    - Continued routine calls and definitions, structure and class
158      definitions, and assignment statements now line up on the first
159      non-blank character after the opening punctuation.  To save
160      space, this can be disabled for indentation shifts larger than a
161      configurable value, in which case IDLWAVE still attempts to keep
162      things neat.
163    - Bug fix: improper alignment when splitting strings fixed.
164    - Bug fix: keyword completion in continued function calls which are
165      themselves continued fixed. 
166    - Bug fix: keyword completion failed for class::Init in obj_new(),
167      if routine completion-case set to any other than 'preserve or
168      'capitalize.
169    - Several new abbreviations and updated easy abbrev customization.
170    - Procedures on lines with multiple statements (using `&') are now
171      treated correctly for routine info and help.
172    - Custom "examine" commands can be created easily using two new
173      macros, for binding to keys or mouse clicks.  
174    - Variable/expression print, help, and other examine commands now
175      work in the shell as well as the buffer.
176    - A new examine mouse binding pops-up a customizable list of
177      examine functions to apply to the expression selected.
178
179 Revision 4.12
180 =============
181    - New support for Speedbar.
182    - Bug fix in explicit class name completion/help/routine info:
183      a->b::c now completes correctly.
184
185 Revision 4.11
186 =============
187    - New configureable class-driven keyword inheritance in Completion
188      for common methods (like Init, and (Get|Set)Property) which chain
189      keyword inheritance up the class stack.
190    - Bug fix for space padding: the method invocation operator,"->",
191      will now be padded immediately upon entry, if
192      `idlwave-surround-by-blank' is non-nil.
193    - Bug fix in generic END expansion: faulty capitalization was
194      occuring when END expansion was coupled with reserved word
195      upcasing.
196    - Numerous documentation improvements, including a description of
197      the structure tag completion plug-in.
198
199 Revision 4.10
200 =============
201    - New maintainer: J.D. Smith <jdsmith at as.arizona.edu>
202    - Compatible with IDL v5.5's  new breakpoint listing
203      format, along with the older format.
204    - Updated routine info for new routines and new keywords to
205      existing routines, taken from the `What's New' document shipped
206      with the IDL v5.5 release.  
207    - Updated online help text, from the `What's New' document.
208    - The get_rinfo script can now take a `fixup' file for adding
209      updated help and routine info material.
210    - New frame creation handled better with quick shell (idlwave-shell
211      'quick).
212    - A few updates for better Emacs 21 compatibility.
213
214 Revision 4.9
215 ============
216    - Idle time is used to automatically initialize the routine info.
217      See new variable `idlwave-init-rinfo-when-idle-after'.
218    - When using the mouse to print variables an expressions, you now
219      can also drag over a region to define the expression to print.
220    - Before doing file name completion in the shell, the Emacs working
221      directory is switched to the current IDL working directory.
222    - The IDL procedure "BEEP" works again in the IDLWAVE Shell.
223    - Fixed display problem with multiple frames.
224    - In places where completion defaults to *keywords*, you can force
225      function name completion with a C-u prefix to M-TAB.
226    - Some bugs fixed.
227
228 Revision 4.8
229 ============
230    - The shell preserves the command history between sessions.  See
231      new variables `idlwave-shell-command-history-file' and
232      `idlwave-shell-save-command-history'.
233    - New variable `idlwave-indent-to-open-paren' which can be used to
234      turn off deep indentation of continuation lines.  Example:
235         x = function_a(function_b(function_c( a, b, $
236                                               d, c)))
237    - The library catalog can be updated with a background job so that
238      you can continue to work while it runs.
239    - A double prefix argument to `idlwave-shell-print' evaluates
240      and prints the current region as an expression.
241    - When the IDL process under the shell exits, it runs
242      `idlwave-shell-sentinel-hook'.
243    - Fixed bug with deleting last window on IDL exit.
244    - Fixed bug (exponential regexp) with parsing Liam Gumley's routine
245      headers.
246
247 Revision 4.7
248 ============
249    - New way to define key bindings for debugging commands
250      See variable `idlwave-shell-debug-modifiers'.
251    - Variable `idlwave-shell-activate-alt-keybindings' obsolete.
252    - Tutorial added to the documentation.
253    - Bugfix with !PATH query under Solaris (Craig Markwardt)
254
255 Revision 4.6
256 ============
257    - Shell window more like xterm:
258      - show as much output as possible
259      - up and down arrows do history stuff (see new variable
260        idlwave-shell-arrows-do-history). 
261    - Routine info and help files updated to IDL 5.4
262    - Support for the new IDL statements (SWITCH, BREAK, CONTINUE)
263    - Bugfix for shell printing of identifiers with `!' and `.'
264    - File name completion in strings in buffers, similar to the shell.
265    - Fixed file name completion with a dash in file names.
266    - Font-lock enhancements in structure definitions: Structure name
267      and tag names.
268    - END is replaced by ENDIF etc already when indenting a line with TAB.
269    - Fixed bug with parsing of routine definition if comment lines are
270      scallered between continuation lines.
271    - `idlwave-close-block' and `idlwave-abbrev-change-case'
272      interaction bug fixed.
273    - Routine info and source lookup switch to INIT automatically when
274      the cursor is in keyword section of an OBJ_NEW call.
275    - Fixed BUG with getting system variable info from the Shell under
276      IDL5.2 and earlier.  Used to produce a compilation error, now
277      just silently fails.
278  
279
280 Revision 4.5
281 ============
282    - Bug fixed with structure parsing in CLASS__define procedures.
283
284 Revision 4.4
285 ============
286    - IDLWAVE understands inheritance in all important contexts.
287    - Completion of system variables and their tags.
288    - Completion of class structure tags on "self" variables.
289
290 Revision 4.3
291 ============
292    - The IDL procedure "BEEP" works in the IDLWAVE Shell
293    - Fixed bug with dedicated shell frame display under Emacs
294      (patch from Stein Vidar Hagfors Haugan <shaugan@esa.nascom.nasa.gov>)
295
296 Revision 4.2
297 ============
298    - Fixed bug with context-help when at end-of-buffer.
299    - Ambiguous kwd abbrev and non-existent in online help kwd
300      now ring the bell.
301    - Toggling the toolbar causes a redraw-frame on Emacs (21 only).
302    - Allow for space between a function and `('.
303    - Forcing completion type with prefix arg to M-TAB fixed in the shell.
304    - Fixed bug when exiting shell with *idl* as the only window.
305    - The class of object "self" is assumed of be the current routines class.
306
307 Revision 4.1
308 ============
309    - Fixed bug in which unresolved routines could shadow catalog entries.
310    - Fixed the incorrect installation instructions in README.hlp.
311    - Online help for non-system stuff makes use of the DocLib file header.
312    - Abbreviated keywords are treated correctly for online help.
313    - Source files displayed as online help can be fontified
314      (off by default, see variable `idlwave-help-fontify-source-code').
315    - Multiple definitions of a routine in one file count as shadowing.
316    - Facility to send single characters to interact with GET_KBRD (see manual)
317    - The shell defines a system variable !IDLWAVE_VERSION, which can
318      be used by a program to detect if it is running under Emacs or not.
319    - More efficient way of querying the shell for routine info.
320    - Fixed bug in get_rinfo -> 10 mode keywords recognized.
321    - Fixed bug with translation of help topics.
322    - Fixed bug for completion context after continuation lines.
323    - Fixed bug with Keyword insertion after `(' from Routine Info Window.
324
325 Revision 4.0
326 ============
327    - Fast and accurate IDL online help.  Two additional files need to
328      be installed, they are not part of the standard distribution.
329      Help is triggered with `M-?', and by clicking with mouse-3 on
330      items in the Routine Info buffer or in *Completions*.
331    - Global IDL namespace analysis to produce a list of routines
332      with definitions in several files.
333    - Clicking on a keyword in the routine-info buffer inserts
334      the keyword in the buffer from which `C-c ?' was called.
335    - More intelligent completion in OBJ_NEW calls.
336    - Class completion after PRO and FUNCTION.
337    - Abbrev expansion in the shell.
338    - `idlwave-pad-keywords' can also have a value `keep'.
339    - `idlwave-scan-all-buffers-for-routine-info' can also have value
340      `current' to scan only the current buffer but no other buffers. 
341
342 Revision 3.15
343 =============
344    - Printing expressions while execution is halted can now also
345      access all levels on the calling stack.
346    - Padding of long operators (like `->') is now possible.  The
347      object arrow `->' has been added to the defaults - when
348      `idlwave-do-actions' is non-nil, `->' will have at least one
349      space before and after it.
350    - Code templates now respect settings of `idlwave-abbrev-change-case'
351      and `idlwave-reserved-word-upcase'.
352    - Fixed bug with `idlwave-pad-keywords' in procedure method calls.
353    - Fontification of keyword parameters works with embedded comments.
354
355 Revision 3.13
356 =============
357    - Minor cleanup.
358
359 Revision 3.12
360 =============
361    - 3 files had to be renamed, in order to get IDLWAVE included in the 
362      Emacs distribution:
363       - idlwave-shell.el   -> idlw-shell.el
364       - idlwave-rinfo.el   -> idlw-rinfo.el
365       - idlwave-toolbar.el -> idlw-toolbar.el
366      When installing this version, make sure to remove the old
367      idlwave-*.el files and update the autoload for `idlwave-shell'.
368
369 Revision 3.11
370 =============
371    - Final cleanup before installing in the Emacs and XEmacs distributions.
372
373 Revision 3.10
374 =============
375    - Fixed bug with `idlwave-shell-automatic-start'.
376    - Fixed bug with the info files.
377
378 Revision 3.9
379 ============
380    - Exiting the shell does not kill the *idl* buffer.
381    - Shell prompt pattern allows single whitespace before "IDL>"
382
383 Revision 3.8
384 ============
385    - Library scan implemented for Windows and MacOS.  On these systems 
386      the search path need to be given in `idlwave-library-path'.
387    - *Completions* window disappears after successful completion.
388    - Fixed library scan bug with keywords in continuations line.
389
390 Revision 3.7
391 ============
392    - Completion of Object methods finalized.
393    - Exiting the IDLWAVE shell now kills all associated buffers and
394      the dedicated frame (if applicable).
395    - Documentation finalized.  The printed documentation is 24 pages.
396      Available online in Emacs (info), as postscript and HTML.
397
398 Revision 3.6
399 ============
400    - You can make IDLWAVE prescan library files for routine info.
401
402 Revision 3.5
403 ============
404    - Completion and Routine Info display now also work for object
405      methods.
406    - Completion and Routine Info display available in the IDLWAVE Shell.
407    - Debugging Toolbar adapted for Emacs 21.
408    - First draft of TeXInfo documentation.
409    - Fixed bug with END expansion in CASE lists.
410
411 Revision 3.4
412 ============
413    - Fixed bug in Makefile with install-tags 
414    - Fixed bug in with concat in XEmacs 21.x
415    - Enforced FSF coding standards, to prepare for installation in
416      main Emacs distributions.
417
418 Revision 3.3
419 ============
420    - `C-c ?' displays the calling sequence and keyword parameters of a
421      routine.  Works for most builtin IDL routines, the routines you
422      are currently editing, and the compiled routines in the idlwave-shell. 
423    - `M-tab' completes procedure names, function names and keyword
424      parameters in the buffer.  
425    - New source file idlwave-rinfo.el contains the code for these new
426      functions.
427
428 Revision 3.2
429 ============
430    - The cleanup after the idl process finishes is now reliable and gets
431      called exactly once.
432    - Toolbar code moved to a separate source file.
433    - Fixed bug with `display-buffer' in Emacs 19.
434
435 Revision 3.0
436 ============
437    File idlwave.el
438    ---------------
439    - New maintainer Carsten Dominik <dominik@strw.leidenuniv.nl>
440    - Renamed mode and all variables and functions.  The new prefix is
441      `idlwave-' instead of `idl-'.  This was necessary to evade a name
442      clash with the idl-mode defined in `cc-mode.el' which is part of
443      X/Emacs 20 distributions.
444    - Added Customize support.
445    - New commands `idlwave-beginning-of-block' and `idlwave-end-of-block'.
446    - New command `idlwave-close-block'.
447    - The type of END at the end of the block is checked.
448    - Font-lock enhancements.  Multi-level fontification based on the
449      value of `font-lock-maximum-decoration'.  Reunified the different
450      expressions for Emacs and XEmacs.
451    - `idlwave-show-begin' check the correctness of the END statement.
452    - `idlwave-surround' exception for `->'.
453    - Better listing of abbreviations with `idlwave-list-abbrevs'.
454    - Some general cleanup of the code.  Menu reorganized.
455    - Both imenu (Emacs) and func-menu (XEmacs) are now supported.
456    - Dropped support for Emacs 18 and hilit19.el.
457    - Rewrite of the docstring for the Mode.  Made more compact, to
458      make more people read it.  Too long parts moved to the Commentary.
459    - Revision number jumps to 3.0 to synchronize with idlwave-shell.el.
460
461    File idlwave-shell.el
462    ---------------------
463    - New maintainer Carsten Dominik <dominik@strw.leidenuniv.nl>
464    - Renamed mode and all functions and variables to use `idlwave-' instead
465      of `idl-' prefix. This was necessary to avoid a name clash with
466      `idl-mode' which is defined in cc-mode.el.
467    - Made the stop-line-overlay work for XEmacs as well.  Changed the
468      associated face to 'highlight.
469    - Breakpoint lines are highlighted with a glyph or a special face.
470    - Debugging toolbar under XEmacs.
471    - To get a special frame for the shell buffer, set the variable
472      `idlwave-shell-use-dedicated-frame' to t, or call `idlwave-shell'
473      with a prefix arg.  The hook suggested for in Revision 2.4 for
474      the same purpose probably still works, but is no longer recommended.
475    - Changed the default `idlwave-shell-use-truename' to nil, since we ensure
476      now internally to not visit the same file twice under different names.
477    - Menu reorganized.
478    - Implemented a number of new commands.  Check the "Debug" menu.