Version 1.0 =========== December 1, 2000 Incompatibilities ----------------- * Multi-view-per-window related options have been disabled; this facility wasn't completely functional in previous releases and will be completed in a post-1.0 release. * Users that have copied the preferences file into ~/.wingide/preferences may wish to copy the new proj.* preferences out of the copy of preferences file distributed with this release. Setting the proj.save-without-asking preference to true is recommended. * Users of wingdbstub.py must update to the current release's version of this file. * The version 1.0b4 debug server cannot be used with this release. This is only relevant if it was copied out of the distribution for use on a remote host; otherwise, it is automatically updated. Features -------- * Now optionally remember window positions and close/reopen documents as projects are closed/opened * Added support for debugging Tkinter based programs * Added support for debugging PyQt based programs * Added ability to define client/server file location mappings for remote debugging * Added ability to launch python code, makefiles, and any other executables so they run outside of the debugger * Added optional display of light vertical indentation guides * Debugger now uses random tcp/ip port number when debug application is launched from within the IDE, to avoid multi-user conflicts in more cases * Added menu item to control whether or not the IDE listens for externally initiated debug connections * Added ability to automatically save the project data files before debugging and exiting. This is controlled by the 'proj.save-without-asking' preference. * Changed location of autosave files to ~/.wingide/autosave * Added main.print-wing-debug-output to control whether internal wing errors are printed to stdout/stderr or not. Defaults to false. Bug Fixes --------- * Fixed embedded source code object in source browser so it works right * Don't ask to fix indentation on read-only files * Key equivs listed in menus are the first found in the keymap file * Now lock the user interface to prevent inconsistent display of old/new variable data while the debug program is running * Clear the textual variable view area when appropriate * Optimized auto-completion to be more responsive * Fixed auto-indentation with triple quoted strings to be more rational * Ensure cursor is visible before executing most editor commands * Slowed auto-scrolling so selecting long ranges is easier * Eliminated (harmless) gtk warnings when the debug window is resized multiple times * Cut/copy/paste/clear now work as part of editor macros * Status area now shows correct line after a brace matches * Files specified on the command line are created if they are not found Version 1.0b4 ============= November 21, 2000 Incompatibilities ----------------- * Project and debug file properties have been redefined. You may need to explicit set the radio buttons in the dialog boxes if your project specifies non-default python executable, python path, run directory, or build command. * Users that have copied the preferences file into ~/.wingide/preferences may wish to copy the new proj.* preferences out of the copy of preferences file distributed with this release. * Users of wingdbstub.py must update to the current release's version of this file. * The version 1.0b3 debug server cannot be used with this release. This is only relevant if it was copied out of the distribution for use on a remote host; otherwise, it is automatically updated. Features -------- * Autocompletion now detects the type of many more variables, when type can be inferred from return value of a function or instance creation * Expanded the expression evaluator to allow multiple types of inspection views * Added interactive Python shell * Added caching of source analysis information for faster startup and lower memory usage * Added F-key bindings to control debugger in emacs mode * Added ability to manually set document type to use for syntax highlighting and this information is remembered in the project file * Added Source menu so Edit menu is shorter * Added preference to check for external file changes on each edit to the file (in addition to auto-check and check-at-save options previously implemented) * Added preference for default white space display choice and store white space visibility choices in the project file on a per-file basis * Expanded preference for when to raise the source window during debugging (now can raise-always, raise-never, or raise-new to only show it if changing files during stepping) * Auto-completion can be canceled with ctrl-g (emacs mode) or esc (normal mode) Bug Fixes --------- * Numerous optimizations affecting startup time, time to open files, responsiveness during typing, and speed of code analysis * Fixed bug preventing stopping at breakpoints and display of source code in a number of cases: (1) when pyc files were created with a different current directory than the current run, (2) when the python path contains partial, relative path names and the current directory is changed during execution, (3) when pyc files were created with compileall.py * Fixed bug where debug client was reinitiating passive listen too quickly after killing a debug session, so the port was still in use * Fixed bug causing incorrect stack frame/index display in some cases when the eval manager was used * Fixed bug causing hanging of the IDE when double clicking quickly on certain toolbar icons * Fixed resetting of conditional breakpoints so the changed condition is properly set in the debug server during an active debug session * Fixed cache invalidation so that stack frames always get refreshed with current variable data when they should (and not when they don't need to be refreshed) * Fixed bug causing conversion of long strings into tuples in project files * Prevented debugger from stopping within its own code, so that stopping a free-running program places you in a more logical place * Fixed stepping into imports so they always work properly * Reverting a file from disk no longer removes all its breakpoints and breakpoints are moved to valid code lines * Fixed delete key so it will delete forward if no selection * Fixed reloading of project file if changed externally * Fixed conflict between alt-w emacs binding and windows menu accelerator * Fixed bugs in tracking breakpoints when files are edited outside of the IDE so that bps are kept on a valid source line * Fixed removal of the run marker when before it wasn't always removed from the editor window * Properly remove breakpoints in deleted ranges of text * Improved module display in browser by showing more directories * Names imported through "from import *" are updated as the imported module changes. * Untitled projects are now named better * A file that imports wingdbstub can now be debugged safely when launched from within the IDE as well * Improved auto-indentation within multi-line triple quoted strings and after a dedented comment * Fixed debugger so it doesn't always bring up the source when you change stack frames; now must double click or middle-mouse-click on the frame to bring up the source * Fixed window menu so it displays names with "_"'s correctly. * Fixed bug that was prevent browser from finding definitions of instance attributes. * Fixed various bugs in goto base class in browser so it works in more cases. * Sorting by type in browser now uses the type that an imported name refers to. * Improved responsiveness when typing with many windows open. * Fixed menu positioning bugs that was causing long menus to hang partially off screen. * Copy / paste works within the IDE when a editor window is closed. Version 1.0b3-2 =============== Nov 1, 2000 Incompatibilities ----------------- * None Features -------- * Added syntax hilighting for *.diff and *.patch files * Added checking of external changes on open files and preferences to control requests to reload in various cases * Much improved support for Zope debugging (the former limitations on setting breakpoints during a run have been lifted) Bug Fixes --------- * Fixed crashing on XML files * Fixed infinite loop in debug args dialog box when brought up for the first time for a file after the run/continue toolbar icon is pushed * Fixed bug that caused failure to stop at breakpoints or display source for files imported only with 'import x.y' and in some other cases * Fixed bug that caused failure to register the debugger's socket with gtk when using libglade * Fixed bug in wingdbstub preventing it from working unmodified in binary-only installations (oops) * Fixed a bug in the uninstall script preventing uninstall of the source tar dist Version 1.0b3 ============= October 25, 2000 Incompatibilities ----------------- * Users that have copied the preferences file into ~/.wingide/preferences may wish to copy the new proj.* preferences out of the copy of preferences file distributed with this release. * Users of wingdbstub.py must update to the current release's version of this file. Note also that the kStopOnFirstLine and kWingDBPython options are no longer available. * The low-level debug API has changed: It is now an add-on for wingdbstub and not a seperate facility. * The version 1.0b2 debug server cannot be used with this release. This is only relevant if it was copied out of the distribution for use on a remote host; otherwise, it is automatically updated. Features -------- * Added support for evaluation of arbitrary expressions in the debug context * Improved auto-indent based on Python source code analysis information * Added ability to import an entire directory tree into the project * Added more control over showing white space and end-of-line as visible chars * Preliminary support for debugging Zope applications (see manual for details and status) Bug Fixes --------- * Fixed bug to allow debugging and printing of file names with a space in name * Fixed crashing of Wing during debugging after a zoomed-out variable tree display window was closed * Added much more sophisticated determination of which exceptions are going to be handled and which are not, so those that appear unhandled can be reported during debugging. * Improved exception reporting to fix a several bugs causing the debugger to fail to report debugee exceptions to the IDE (Wing previously acted as if the debugee had exited normally): - Failed to detect unhandled exceptions that occurred within an exception block - Failed to report exceptions re-raised by a finally block - Failed to report exceptions occurring within a loop block * Fixed problem in debugger API that was causing failure to debug above the stack frame where StartDebug() was called. * Added code so that the debug connection is closed after StartDebug() as the program exits, even if StopDebug() was never called, so that the IDE does not time out on the broken connection. * Debugger now correctly highlights and presents stack frames in all cases, also as unhandled exceptions are propagated outwards * Fixed bug where exception location wasn't always shown (e.g., with syntax errors in an imported file) * Now don't exit the debug program artificially as the result of syntax errors * The debug input/output xterm, when enabled, now persists until user types return or enter. This can be controlled with preference debug.persist-xterm. * Fixed problems in SuspendDebug() and ResumeDebug() in the debugger API * A message box is displayed if a directory is empty when adding a package to a project. This avoids a core dump with older versions of gtk. * Debugger API bugs fixed so that stophere=1 option works on StartDebug() * Fixed bug causing early debug tracing, so that debugger sometimes started to debug itself during initialization * Fixed klunky behaviour in toolbar when a single button was pressed repeatedly without moving the mouse * Autocompleter builds a better list possible names based on context and dotted imported names work. * Fixed bug preventing expansion of sub-values in short items displayed as a single string in the debugger * Fixed off-by-one bug in stack display when StartDebug() is used * Fixed off-by-N bug in current frame shown when frames were on stack due to nested eval() or exec() calls * License manager now removes stale lock files created on localhost, to avoid reaching license limit after crashes. * Project manager automatically keeps a blank project open when nothing else is open, to avoid confusion about what's going on when Wing is launched without arguments * Fixed bug in comment-out feature in editor so that it also works when blinking caret is at the very start of a line * Fixed indentation bug causing incorrect indentation when previous line ended in a comment * Fixed keypad enter to work * beginning-of-line command now first goes to start of line, and if repeated to the end of the leading white space * Fixed ctrl-tab so it really inserts a real tab character and not spaces * Fixed crashing of IDE caused by lexer problems when reading an HTML file with embedded Javascript, and corrected other embedded lexers (VB, PHP, and Python) to syntax hilight with the correct keywords * Set the watch cursor on all GUI areas now during busy times, using a new more reliable/correct approach * Fixed bug causing wacky horizontal scrolling of source code in various cases * Emacs mode interactive search uses more logical last-search-string on double ^S or ^R * Fixed handling of '#' within strings in license manager and preferences Version 1.0b2 ============= Sept 29, 2000 Incompatibilities ----------------- * Users that have copied the preferences file into ~/.wingide/preferences may wish to set preference edit.print-python-as-text=false in that file. This release fixes bugs in Python printing, and setting this option to false will enable (previously broken) syntax hilighting in printed Python text * Users of wingdbstub.py must update to the current release's version of this file. * The version 1.0b1 debug server cannot be used with this release. This is only relevant if it was copied out of the distribution for use on a remote host; otherwise, it is automatically updated. Features -------- * Python 2.0 support - Wing will run under Python 2.0 - Wing understands many of the Python 2.0 language extensions * Added comment-out / uncomment-out feature for all supported mime types * Added close-all feature for closing all open source windows * Added fill-paragraph / rewrapping feature for reformatting text easily * Added support for international keyboards (at least deadkeys now work) * Source code analyser now works with files that have DOS line endings * Source code editor now works with DOS line endings (indent was broken, and it now adds in DOS line endings if the file already has them) * Added preferences for filtering of the contents of the debugger variable display area by value type or variable/key name, and to control size thresholds for skipping huge data values that would result in hanging the debug process * Wing now prompts to set major pref choices such as editor personality and print paper size the first time it is started * Better support for multiple debug entry points in a single project * Added key accelerators for the first 9 views in the Windows menu. * Much improved brace matching feature * Set cursors to watch to indicate 'busy' in some places now Bug Fixes --------- * Generalized data display so that more data types can be seen in the debugger, including (smallish) numpy arrays * Fixed bugs in the debugger that caused it to end the debug session when encountering very large data values (displaying very large values is not yet supported though) * Fixed debugger to correctly set run environment when specified (but not when connecting to an externally launched program) * Fixed bug in debugger that prevented cPickle from working with any add-ons, such as Numeric in numpy. * License manager now allows you to run >1 concurrent copy of the IDE as same user * Fixed printing multi-page syntax-hilighted Python documents * Fixed a bug in license manager that prevented correct reporting of too-many-users condition * Fixed per-file debug properties dialog so it is no longer modal * Fixed incorrect appending of wingdb.py to end of sys.argv during debug * Fixed off-by-one bug in outdent region code. * Eliminated traceback when browser is clicked where there is no text. * Eliminated analysis popup failure on package __init__.py files. * Fixed tokenizing of unicode strings and single-quoted strings that span more than one line. * Main debug file indicator is now refreshed properly when changed in project mgr * Fixed FAQ/Manual information on using the profiler with the debugger * Fixed bug that caused browser to freeze when a sequence of imports didn't resolve to an actual identifuer. * Fixed crash during autocompletion when starting completion in the middle of a word & backspacing. * Fixed 'late pref mgr call' traceback that could occur while exiting the IDE * Fixed crashing of IDE when debug program exits unexpectedly during a variable expansion * Fixed crashing of IDE when debug program's xterm input/output window (when enabled via prefs) is closed during a debug session * Better analysis of multiple changes to the source text that happen quickly and that involve adding or removing lines. * Adding a package to project doesn't get confused by subdirectories with names that match mask within the project directory. * Added check to Save As to see if a file with the new name is open in the IDE. * Substantially sped up debugger variable display expansion * Fixed bug in debugger causing failure to show the source location and/or detailed info for certain types of SyntaxError exceptions * Debugger main project file is reset correctly when projects are closed Version 1.0b1 ============= Sept 7, 2000 First public release