Version 1.1.7 ============= November 14th, 2002 Bug Fixes --------- * Fixed failure to start the debug process on Windows when PYTHONPATH is defined * Fixed failure to automatically find Python interpreter when PYTHONHOME is defined or PYTHONPATH contains conflicting standard library directories * Fixed Project Properties dialog to work correctly when no Python interpreter is found * Fixed problems handling some types of debug data * Fixed problems opening manual from directory path containing spaces * Fixed failure to open non-file URLs from Help menu on OS X * Work around bug in os.path.abspath() on Windows to avoid failure to open or find files * Key bindings now override menu accelerators in cases of conflict (instead of the other way around) Features -------- * Added preferences to control whether auto-completion is done with tab or enter key or both * Debugger support for values that descend from dict, list, and tuple in Python 2.2, and adjustments needed as a result of related type/class unification changes in Python * Added emacs Alt-b and Alt-f key bindings Version 1.1.6 ============= September 23rd, 2002 Features -------- * New, much improved Zope support packaged as a Zope product (WingDBG) with configuration from the Zope Management Interface * Added command to switch to the most recently visited source document (Ctrl-Alt-L emacs binding; available as Ctrl-5 in normal editor mode) * Added key mappings for cursor movement keys on the numeric key pad * Brace match feature now includes the braces so that repeated use of the command moves to ever-larger enclosing scope (or next set in file if no larger enclosing scope is found) * Added menu item for inserting a tab character (which includes the key combo to use) * Search manager doesn't beep incessantly during failed incremental search * Added scrollbar to the View Manager's list of views * Added support for Pause inside input() and raw_input() on Mac OS X * The product source code now builds on FreeBSD and Solaris * Additional diagnostics for startup failure on win32 Bug Fixes --------- * Fixed annoying intermittent failure to scroll to position in editor during debugging, when using source index menu, and in source browser * Don't drop the debug connection on certain kinds of syntax errors in the Interactive Shell and Debug Probe, and properly report the results of these to the user * Source browser source view retains scroll position when resize the view or click on document / source tabs * Properly reset and propagate PYTHONHOME to the debug process also * Fixed some problems with propagating PYTHON* env variables on win32 * Increased timeout for debug initiation phase to avoid problems on very slow networks or machines * Allow debug code that sets sys.stdin to an object that is missing methods * Fixed problem with exit on failure option in wingdbstub; this now raises an exception rather than just exiting * Fixed bug causing problems when sending larger packets from the debug process to the IDE * Fixed potential for infinite loop in the search manager Replace All * Added missing wingdb-suid file to Linux RPM * Improved documentation for building Wing from source and build support * Corrected copy of product license in the manual * Splash screen updates properly when obscured and on slow X servers * Corrected default www manual location when local disk copy cannot be found Version 1.1.5 ============= June 25th, 2002 Features -------- * Added ability to immediately initiate forward or backward searches based on the current editor selection, or the nearest word when no selection is made * Faster access to view manager with ctrl-0 (zero), for quickly switching views * Added command and key equivalents for displaying the location at which a Python source symbol is defined. Similar to Goto Definition in the source index menu, except this is accessible by keyboard navigation and works from cursor location instead of click location. * Added support for string methods. The Python interpreter you are using must be version 2.0 or newer for string methods to appear. * Expanded contents of autocompletion lists for builtins. * Added button to Error List dialog for faster access to the debugger * Improved and expanded documentation for remote debugging. Bug Fixes --------- * Support for mod_python and other single-threaded environments that muck with the Python thread state * Correctly display the location of syntax errors encountered in the debugger * Correctly handle display of the current exception location also when using 'raise' inside of an exception handler block * Optimized debugger so stopping on a max recursion exception doesn't take (nearly) forever. * Fixed resetting of local variable values from the Debug Probe * Fixed failure to stop at a breakpoint on the first line after a StartDebug api call * On win32, correctly handle cases where Python is placing 8.3 short names into modules and code objects (e.g., if Zope is running as a service on win32, or if running from certain command line environments). * Don't hang in Replace All when replaced value contains the search value and start with the search value selected in editor * Fixed hanging when trying to open non-project files as project files * Fixed problems with forcing indent style to use in non-Python files * Fixed code analysis so that the number of symbols that can be imported through a from ... import * statement isn't limited to 200. * Omit bogus project properties radio buttons "Use project settings" * Update toolbar when clicking on stack * Also enable frame up command when at 2nd stack item and using wingdbstub * Move run marker correctly when single click on stack and remove it when continue running * Only enable run-to-cursor command when appropriate * Search manager key equivs also work after clicking on one of the buttons * Changed all ctrl-alt+letter key bindings (these do not work on win32) * Update windows under print dialog on win32 * Added missing files for source distribution Version 1.1.4 ============= May 3rd, 2002 Features -------- * Second+ copy of Wing started from the command line with some file names in the argument list will reuse the existing copy of Wing. This can be overridden by specifying --new as a command line option, which forces creation of a new instance of the IDE. * In emacs mode, Esc followed by key and Alt-key are now automatically defined as equivalents. Thus, Esc g and Alt-g both goto-line, and Alt-4 is like Esc 4 repeat operation. * Emacs key binding Ctrl-U is now also supported * Added manual documentation for Wing's command line arguments * Trial copies of Wing IDE now display a dialog box every so often. Bug Fixes --------- * Fixed broken macro record feature, which was doubling up all keys pressed during macro playback * Fixed long periods of hanging at startup on win98 with certain Python path or project contents * More descriptive error message when Python cannot be found at all * Increased debug timeout to 10 seconds to accommodate slower machines * Make sure that the analysis cache is created in all cases, so source analysis is faster on reopening a project. * Don't display quit warning except when last window is really closed * Don't quit Wing when last Window is closed as part of project new/open operation * Multi-part key bindings now work correctly (e.g. Escape Less) * Esc in keymap files is now a synonym for Escape * Don't use Shift-Alt key bindings for letter keys (three bindings were changed in normal editor mode, for clone-window, move-editor-to-new-window, and delete-window). No code was changed, as shift should not be used as a meaningful modifier for letter keys. * License manager doesn't crash Wing if it fails to read a lock file; instead, it treats it as a foreign valid lock. Also set permissions on lock files to avoid problems in more cases. * Optimized external file modification time checking to address slowness seen when large numbers of Python files are discovered through source analysis. * Optimized source browser and analysis engine for faster startup in very large projects or when running with a broad PYTHONPATH. * Fixed source browser updates during analysis to keep constant the selection, expansion state, and first visible line. * Fixed potential problems in source browser and other tree views during content updates, which led to broken keyboard navigation * Fixed printing on linux systems where Python 1.5.2 is not the default Python on the path * Fixed insert-file editor feature, which was broken on win32 with native file selection dialogs Version 1.1.3 ============= March 12, 2002 Features -------- * Added ability to show integers in debugger in decimal, hex, or octal. Default is set by debug.default-integer-mode preference and can be altered from the Integer Display section of the Run menu. * gui.display-font-name may now be a full X windows font spec instead of just the font name, allowing finer control needed for some X servers. Bug Fixes --------- * Fixed broken sorting of lists on the debugger display * Fixed failure in code analysis to resolve a name imported from a package, resulting in missing items in auto-completion and source browser * Fixed broken one-view-per-window mode * Fixed broken process attach/detach (Wing IDE Standard only) * Update breakpoint icons correctly when click to change line in editor * Fixed broken conditional, temporary, and ignore count break point support when clicking on breakpoint margin with modifier keys * Improved fallback options used internally if a configured font cannot be found * Fixed bug that could cause debugger to crash when a break point is deleted during and active debug session * Prevent duplicate display of path information in the Analysis Stats dialog * Fixed failure to display file count in analysis stats dialog * Don't show internally used editor views in the Search Manager and other view lists * Fixed breaking of toolbar icons if execute a non-available command once, as was possible in double clicking on icons * Disabled New Blank Window in one-view-per-window mode, since it is not needed there Version 1.1.2 ============= February 18, 2002 Features -------- * Added gui.popups-stay-up preference (default false) that when set to true causes right-click popups to stay up for browsing after the mouse button is let up. This works better with some types of mice and track balls. * Initially open project manager and an untitled source file by default if no project is opened otherwise (i.e., the first time Wing is run). Bug Fixes --------- * Search manager correctly unfolds search targets when using Search Manager search and replace features * Optimized external change checking, which should avoid some of the heavy disk access and unresponsiveness of the GUI seen during startup when opening large projects on some machines * Fixed bug that could lead to crashing of debug processes running under Linux, in cases where the debug process code objects contain relative path names * Fixed failure to debug new untitled files when saved during debug initiation * Fixed writing of incorrect header in non-shared (single-file) project files * Fixed failure to handle cases where stale license lock files cannot be removed * Correctly update breakpoint and similar commands on all cursor movement * Set default directory in emacs file open to initial directory when working from an untitled document * Don't auto reopen projects when files are given on the command line Version 1.1.1 ============= January 14, 2002 Bug Fixes --------- * Dlls from the WINGHOME\bin\dlls directory are always used on win32 to avoid conflicts with other installed programs (such as gimp) * Added code to terminate a subprocess that takes too long to execute (this could hang up Wing during probing of odd Python environments) * Enabled support for 256 color display mode on Windows (with some display glitches remaining, such image display in About window) * Debugger does not hold onto references to PyFrame objects longer than required. This makes the debug run environment more like the non-debug environment, and thus avoids bringing out bugs in client code, as was seen in crashing some wxPython apps. * Disabled extra debugger support for Qt, due to crashing in some versions of pyqt or Qt. See the manual or FAQ for information on how to keep Qt apps responsive to Pause or breakpoint editing during free-running. * Added code to terminate a subprocess that takes too long to execute. * Fixed browser expansion code; it could get into an infinite loop when expanding a module with imported names. * Fixed bug in outdenting ranges of code that include blank lines * Fixed source browser auto-scrolling bug, sometimes leading to failure to turn off filters when filter checkboxes are unselected * Browser visibility checkboxes are now correctly set at startup Version 1.1 final ================= January 2, 2002 Bug Fixes --------- * Fixed yet another leak associated with the win32gtk cursor implementation (could lead to crashing in longer runs) * Don't filter out tuple, dict, or list entries even if the entry type is listed in debug.omit-types * No longer show variables in debugger (only worked previously in Python 2.0 and 2.1 and conflicted with filtering by value type) * Don't ask to reload directories when their content changes * Improved scrolling update when scroll one line at a time in tree views * Ctrl-Shift-F5 debugs current file * Eliminated benign warning messages when WinXP switch user desktop is active * Fixed failure to close projects in some cases during project switch * Added key mappings for the keypad navigation and insert/delete keys * Redirected gtk / gdk error messages to our log file * Wing cancels end session request on win98/ME if there are unsaved changes * Add .pyw as a valid extension for Python files Version 1.1rc3 ============== December 17, 2001 Bug Fixes --------- * Fixed hard crash (Linux and win32) caused when clicking around on items in source browser or project manager that caused the docstring view to be updated, if the docstring was previously scrolled past the length of a newly selected docstring. This may also have affected the indentation manager, search manager, window status area, project manager, and other text display areas. * Fixed problems with cursor setting code that could lead to disembodied cursors and crashing on win32 * Fixed several resource leaks and memory bugs, mostly affecting win32 * Fixed broken run-to-cursor command * Fixed inability to reduce size of the expression evaluator * Win32 no longer fails to display file selection dialog from project/file properties dialog the 2nd+ time * Fixed bug preventing reporting of user exceptions when the exception class contains no docstring or non-string value for docstring * Fixed flashing of editor during some debug stepping or display from source browser, project manager, or after goto-symbol-defn * Debugger skips internal code reached at line zero during module imports (previously, it stepped on line zero but failed to display any stack or source info) * Fixed broken Show More / Less buttons in textual variable display area * Re-enabled WXPython support * Removed failed attempts to log messages from wingdb when verbose debugging is turned on (the log file name is encoded and can't be accessed from here) * Fixed failure of the debug process when debug.verbose preference is true and there is no valid console for the process * No longer attempt to display when raise exception in Interactive Shell or Debug Probe * Install scripts for linux are now (again) shipped as executable * Fixed several failures to update display on win 98/ME * Windows no longer resize when label at the bottom of the window is longer than the current width. * Replace most GtkText widgets with Scintilla to avoid GtkText bugs. Version 1.1rc2 ============== December 6, 2001 Bug Fixes --------- * Fixed major win32 handle leak in cursor code that led to crashing of Wing after running for longer periods of time * Fixed bug in win32 drag-n-drop code that would cause wing to crash sometimes if drag was not dropped anywhere * Fixed initialization failure in win32gtk event filter list (possible cause of crashing) * Fixed handling of possible crash during quit win32 quit handler * Fixed problems in View Manager resulting in failure to close views, activate views, and in some cases complete lockup of the IDE * Fixed failure to change to syntax highlighting by file name from the Source menu * Fixed bug in Interactive Shell and Debug Probe that led to failure to detect huge values in Python 1.5 debug process, or problems handling unicode values in Python 2.x debug process Version 1.1rc1 ============== December 4, 2001 Incompatibilities ----------------- * Users of wingdbstub.py must update their copy of this file from the new Wing installation. * Preferences debug.use-xterm and debug.persist-xterm have been renamed to debug.use-console and debug.persist-console, respectively. The old names are no longer supported. * The preference main.print-wing-debug-output has been removed. Debug output is now obtained with 'wing --verbose' on linux or by running console_wing.exe on Windows. * The preference debug.-verbose-debugging has been renamed to debug.verbose and is no longer supported under the old name. * If you manually copied the debug server code to a remote host, you must update to the new debug server code. Earlier versions cannot be used with this release. New Features ------------ * Support for Windows XP * Added debugger and syntax highlighting support for Python 2.2 * Source code analyzer accepts // as an alternate spelling of / * Wrapped Python-level sys.stdin so that the debug program's keyboard I/O is multiplexed with the debug server socket, allowing Pause and breakpoint commands to be used when the debug process is waiting for keyboard input. * Keyboard input initiated as a result of commands typed in the interactive shell or debug probe now occurs in the shell windows rather than the debug process or Wing IDE console. * Changed the Debug Properties dialogs to add also ability to control whether or not a debug console is spawned with the debug process. By default, none is spawned and the console from which Wing was launched (if any) is reused for command line I/O for the debug process. Set value to Start New Console to create a new private console for the debug process. * Debugger now supports most cases in which module __file__ is a partial path. See Limitations section of manual's Debugger Chapter for remaining unsupported cases. * Added next/previous view commands and view manager for switching between or closing views. * Added keyboard navigation of tree views in source browser and project manager, and auto-scroll upon expansion near end of view. Use up/down arrows, page up/down, and home/end for navigation, right/left arrows to expand/collapse parents, shift+right arrow to expand recursively up to 5 levels deeper, and enter or return to open a selected item. * Restore also scroll position and selection when opening source views * Remember and restore the view style and filter settings on source browser * Debugger shows private instance variables in form __varname (classname) instead of the Python internal form of _classname__varname. * Textual variable display now indicates expansion depth and estimated redisplay time needed after stepping or when entering values in debug probe or expression evaluator (which may alter debug state, and thus require reloading variable values from the debug process). * Page up/down now work in the auto-completer for scrolling through choices * Edit preferences file provides easy access to preferences file in use * For easier tech support, IDE output is now logged to a periodically truncated file called error-log in WINGHOME/profiles/[username] (Windows) or ~/.wingide (Linux). Preference main.max-error-log-size sets the truncation threshold (default=100K). * Added checks for file existence before attempting to start debug or execute from within Wing IDE. * Added check box to indentation check dialog to allow selectively blocking checking the file in the future (previously, it was always only checked once) * Added ability to compact project files by removing non-critical visual state, history, and similar information. This is done from the Project menu. * Moved all per-file and project-wide debug properties into the per-user project branch when saving projects in sharable form for use in a revision control system. * Enhanced debugger warning about edited files, allowing ignore or auto-save via check boxes and alter the dialog options if the debug process was launched outside of Wing IDE. * Interactive shell and debug probe 'paste' automatically adjust pasted text to bring the first line to zero column, so that code from source that is further indented can be pasted in more easily. * Added Python for Beginners link to Help menu. * Preference main.print-wing-debug-output has been removed. To obtain debug output, run console-wing.exe on Windows or "wing --debug" on Linux. * Added ability to log information about debugger internals to a file by using the debug.logfile preference. Under wingdbstub, a value kLogFile can be set, or you can use environment variable WINGDB_LOGFILE to control logging to a file. * Added format info to debug properties dialog. Bug Fixes --------- * Fixed failure to open files added to new blank project created initially when launching Wing, after the project was saved but before it was closed/reopened * Fixed problem that led to crashing of Wing IDE after unexpected loss of connection to the debug process * Fixed several bugs that led to failure to detect external file changes or spurious requests to reload files that have just been saved by Wing (usually after Save As) * Interactive shell and debug probe will no longer time out on commands that take a long time to complete. * Fixed traceback and dropping of debug connection, seen during call to _IsAvailable_force_var_reload when debugging under load * Fixed launching of xterm console for debug process under Linux and improved environment propagation for setuid/setgid xterms (all LD_* envs are now automatically propagated) * Fixed errors caused by special characters on debug process command line on Linux (args are no longer passed through sh) * Fixed failure to display some prompts not ending in \n when running the debug process on Linux (stderr/stdout/stdin are now unbuffered in the debug process, using the -u python command line option) * Brace Match command from source menu correctly highlights the range * Wait cursor is set during entire debug variable transfer process * Improved handling of recursive imports * Editor popup handles deletion of all methods in a class better. * The final part of a dotted name no longer appears in the source browser at the child of a module node in certain circumstances. * Fixed failure to remove directory from project. * Source browser's class display is now cleared when a project closes. * Autocompletion now works after manually changing the mime type of a file to python. * Selections work properly when more than 2 or more editor views are open. * EINTR errors seen during socket select (caused by any signal received by the app) are now handled correctly instead of causing errors or termination of the debug session. * Fixed incorrect closing of stdin in the debugee process on Linux when no new xterm was used. * Debug server works better if the exceptions module is not found. * Debug process now stops as soon as possible in a non-Python mainloop environment * Fixed failure to scroll text into position during debugging or in source browser, when target line was near bottom of a newly created view * Fixed keyboard equivalents in search manager, which were not working on win32 * Fixed emacs search and query/replace inserts space into strings instead of attempting completion match when space bar is pushed * ^G or Esc out of keyboard managers fixed to restore visual state of editor to that before interaction (this was broken recently) * Fixed Linux-only bug resulting in concatenation of lines in files with CR-only line endings * Fixed weird Linux-only process control bug where turning on debug passive listen, launching Netscape from the Help menu, and then quitting and restarting Wing would cause failure to reenable debug passive listen due to socket-in-use error. * Now correctly handle /x/y/z project location and file of name /x/y/zfile without translating the file name to 'file' (the correct ../zfile is used instead). * Fixed possible problems launching debug process on win98 if the program name contains special characters or spaces. * Fixed bug leading to Too Many Users message in cases where the the license lock file is in place on disk but the license file is removed and Wing is relaunched. * Debugger can now pause and breakpoints may be set when stdin is being read. * Reduced interactive brace matching overhead, which may solve disappearing cursor bug seen during key-repeated keyboard navigation of source on fast (1.2Ghz+) machines. * Fixed detection of whether nested scopes are used for name resolution when changing interpreters. * External change detection now only brings up one dialog and updates it as additional changes are detected, instead of displaying one dialog per change batch. * Don't add classes to browser when analysis is incomplete at time of project close / new / open * License and project managers no longer choke on "none", "true", or "false" as value for one of the fields (only pref mgr translates these strings to Python data types of None, 1, and 0). * Fixed bug that foiled optimization of project and pref files read * Fixed malloc bug that allocated 1 byte less than expected when pasting into a text field on win32. * Wing puts up a error dialog if it can't find the python15.dll when it starts. * Modules located in C:\ directory are displayed in the source browser. * Eliminated beeps on win32 when Alt is pressed with a key that is not a menu accelerator. Version 1.1b8 ============= October 22, 2001 Incompatibilities ----------------- * Users of wingdbstub.py must update to the current release's version of this file * If you copied the debug server code to a remote host, you must update to the new debug server code. Earlier versions cannot be used with this release. New Features ------------ * Default source editor windowing mode is now to place multiple editors into one or a few windows. This can be disabled by setting preference gui.one-view-per-window to true. Newly opened editor views are always embedded into the most recently used source editor window. Use New Blank Window, New Cloned Window, and New Window with Current View from the File menu to create additional source windows. The Windows menu and ^X B in emacs mode can be used to switch between views. * Added New Cloned Window in the File menu, to allow opening multiple concurrent views of the same source file (also in single-view- per-window mode). * Previously open manager windows are also reopened automatically when a project is opened. * Windows menu now includes blue section headings and lists hidden views in multi-view-per-window mode seperately. * Added preference debug.safe-size-checks-only that can be used by numpy and other users to avoid timing out the debug session as result of values typed in the Debug Probe. The default is true, which indicates that Wing will not attempt to avoid network transfer of very large values resulting from typing in the interactive shell. When set to false, interactive shell will attempt to avoid large values but then invokes any __getattr__ methods twice, which may have undesired side effects. * Wing now sets the foreground lock timeout on Windows 98/ME and 2K/XP in order to be able to raise debug source windows to the very front, even when Wing is not the frontmost app. This is a global option so also allows other apps to raise windows when they are not the foreground app, and persists until the last copy of Wing quits. This can be disabled by setting preference gui.set-win32-foreground-lock-timeout to false but be prepared that debug source windows may not raise in some cases (they will flash in the task bar instead). The preference is set to true by default and is included in the starter prefs choices presented to the user the first time Wing is run. * Double clicking on a word in the autocomplete popup menu completes with the selected word. * Expanded documentation of those rare cases where the debugger may fail to stop on break points or at exceptions, with work-around information. * Indentation manager is now also available for non-Python source files * Update indentation style according to edits made also for non-Python or untitled files that have never been saved to disk. Previously, the initial analysis of indent style remained static for the session. Bug Fixes --------- * Better support for debugging files loaded through a relative path name (either via relative path entry on PYTHONPATH / sys.path or by relative path name sent to exec). * Don't allow save-as to overwrite files that are already open in Wing, as this leads to possible data loss and constant reload event detection * Confirm overwrite on files also on win32 * Fixed folding bugs: No longer randomly expands fold points during brace match and correctly expands fold points during edits without doing so unnecessarily * Avoid hanging up for long periods of time on large Python files when triple quoted strings are formed or opened during editing. * Expand folding to display search target both in emacs mode interactive search and when using the search manager * Set __main__ module correctly in IDE-launched debug processes, to hide the enclosing debug machinery's __main__ * Non-ascii characters are displayed appropriately in menus and doc-string displays on win32, and Wing no longer crashes when displaying some non-ascii characters * Don't track cursor backwards to previous lines when dedent or uncomment code * Don't save invalid debug properties when user cancels out of dialog after error properties are displayed * Don't lose cursor position randomly in the editor (e.g. ctrl-a and then del key work in normal mode to delete whole file contents) * Limit auto-scrolling after indent/dedent and comment in/out operations * Keep modal dialog windows on top of the application's other windows * Don't obscure the message dialog in various cases (it is now modal and stays on top) * Fixed failure to quit and other strange interactions resulting from dialog display * Include traceback in all interactive shell errors to make better distinction between failure and success * Fixed use of incorrect cached analysis data when replacing a file with another file with an older modification time and when abandoning unsaved changes * Corrected analysis symbol discovery in some situations when nested def or class statements are used * Analysis menu no longer fails to appear when there are source symbols consisting of only underscores ('_') * Use native win32 file selection dialog for locating license file the first time Wing is run or when license file expires * Improved font sizing in dialog boxes * Removed the never-enabled Restart item from Run menu * Fixed backtrace when checking the Incremental box in search manager * Doc strings from files containing \r in newline no longer show with black squares on display in project manager and browser docstring areas * Window title is updated immediately after a save as to a different file. * Fixed cases of duplicate evaluation from the interactive shell * Fixed failure to update contents of expression evaluator windows when user types in the interactive shell * Debugger checks for run with -O or -OO option or PYTHONOPTIMIZE, which won't work during debugging due to lack of debug information * Fixed pausing in non-Python main loop environments, where there is a long period of time spent in Python code only (broken in a recent release) * On Windows, fixed support for using python_d.exe with the debug process * On Windows, use python.exe and not python_d.exe as the default Python when none is specified by user * On Windows, fixed project properties dialog not to complain gratuitously about missing Python installation if Python is found in the registry but not on the Python path * Debugger Save and Restart dialog restarts the correct debug process also when it wasn't the main debug file * Confirm quit before closing last open Wing IDE window * Don't persist the debug process console window by default. Set preference debug.persist-xterm=true to return to the previous behaviour of delaying the debug process exit until user types in the console window. * Editor repaints more often when scrolling in some cases * Update the project manager window title whenever projects are opened, closed, or saved under another name * Set wait cursor during close/save/open/new project actions and for close all editors command * Improved file selection panels in file/project properties dialog so browse button leads to modal file selector in modal variant of this dialog and to non-modal file selector otherwise (linux only). In non-modal variant the browse button will raise already-visible file selector dialog. * Rescan for type of line ending and indentation style to use when a file is reloaded from disk, so that correct line endings and indent form are placed after external file translation occurs. * Fixed signal mgmt bug causing failure to update macros, indent style, and suspension of analysis during typing in the source editor * Don't rehandle terminator in incorrect emacs key sequences, to avoid places CR line endings on text and other related raw key problems * Fixed incorrect initial sizing of Source Browser and Debugger panels seen on some fast Windows machines * Fixed printing to work on Linux also in cases where the 'python' found via search path is not 1.5.2 Version 1.1b7-2 =============== September 17, 2001 Incompatibilities ----------------- * Users of wingdbstub.py must update to the current release's version of this file * Earlier versions of the 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. New Features ------------ * Auto dedent also after 'pass' in Python code * Split interactive shell into two independent tools: Interactive Python Shell for testing / sandbox, and Interactive Debug Probe, for probing a paused debug program Bug Fixes --------- * Fixed incorrect locals dictionary used in top-level invocation, leading to problems at the __main__ scope when running under debugger * Interactive shell will run its sandbox using the same Python interpreter set up for the project or main debug file and runs in external process rather that within Wing * Interactive shell New Session button restores focus to shell editor * No longer bring up debugger window when program has quit entirely or the debug connection was lost * The "set current as main debug file" on the project menu works also in multi-view-per-window mode * Avoid using horrible font on some win32 systems * Fixed problems with cursor positioning on win32 when Lucida Console is used * Fixed incorrect treatment of __builtins__ as dictionary in debug globals space * Fixed failure to start when main.startup-show-debugger preference was true * Font used in scintilla dialog boxes & debug window uses the same font as the menus * Fixed code analysis problems with files containing '\r' without a following '\n' * Fixed shift-enter, ctrl-enter, and alt-enter to always place correct newlines into the source text (shift-enter was placing '\r' in all types of files) * Fixed drag and drop to convert dropped lines to correct form of line endings for the target file Version 1.1b7-1 =============== September 6, 2001 Incompatibilities ----------------- * Users of wingdbstub.py must update to the current release's version of this file * Earlier versions of the 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. New Features ------------ * Interactive shell is now also available when no debug process is running * Structural code folding is now available for Python, C, C++, Java, Javascript, HTML, XML, Eiffel, Lisp, and Ruby files * Breakpoints can be set, cleared, enabled/disabled, or altered by clicking on the breakpoints margin in editor * Brace highlighting occurs adjacent to cursor, also in non-styled files, and uses more visible hilighting * Auto-wrap in Python doesn't combine logical lines and properly indents wrapped areas * Added syntax hilighting for Ada, Eiffel, Lisp, Ruby and Bash files * Added debugger support for WXPython mainloop environment * Error list now supports copy to clipboard with right-mouse popup menu and syntax hilighting * Search Manager defines key equivalents for search, replace, and replace-and-search and these work also when the manager is not at front * Search Manager includes a search history for selecting previously used search strings, and automatically sets the most recent search string into the GUI * Key equivalent and Search Manager button also defined for searching backward * Search Manager supports incremental searching (search starts to happen as you type the search string) * Added search status display area to the Search Manager * Search Manager stays on top above the source file that's being searched * Search manager raises when search fails and it's not at front * Conditional breakpoint dialog supports copy/paste from clipboard with right-mouse popup menu and syntax hilights the conditional * Displays also column in editor status area * No longer select the current line during debugging: This is indicated with a colored background and marker instead without setting the selection * Preferences to turn off raising source text windows on exception specifically when working in the interactive shell or expression evaluator * Only show breakpoint margin on Python files * Added embedded script flag to wingdbstub.py in order to allow retaining the debug connection indefinately in an embedded scripting environment * Added preference gui.auto-save-before-action to set whether altered files are automatically saved before starting a debug session, executing a file, or running a build command (default=false) * Toolbar is omitted from source browser (but can be shown with the new gui.show-toolbar-in-browser preference) * Toolbar in debugger window is truncated to include only the tools that can be used in that window * Added preference for controlling selection policy after actions like indent/outdent, and (un)commenting out blocks of code: Options are to always select, never select, or select only if there is already a selection (the latter is the default) * Automatically supports new releases of the same major.minor version of Python (e.g., 2.1.1 will work using included support for 2.1.x) * Added message to clarify why exceptions are sometimes reported in the debugger when not seen outside of the debugger * Wing traps and handles termination messages as if Quit was executed, so that unsaved file prompt is shown and exit is clean * Convert line endings in pasted text to match the existing file contents also on Linux (this was already being done on Windows) * Updated Zope+Wing bundle to base on Zope version 2.4.0 Bug Fixes --------- * Printing is enabled at all times and prints contents of unsaved buffer and not saved disk file * Correct auto-indentation in tab-indented non-Python files and correct post-auto-indent cursor positioning in mixed style indent files * Don't reopen recent project if most recently closed or created new unsaved project * Faster startup times * Comment-out doesn't operate on blank lines and comment-in doesn't damage non-commented lines * Escape will cancel out of autocompletion * Reduced time it takes to save project files * Fixed failure to report exceptions from expression evaluator * Fixed failure to kill the old process upon Save and Restart during debug on win32 * Fixed incorrect display of source text window from expression evaluator and interactive shell * Fix problem with entering ../ in save as dialog * Fixed dual flashing cursors in Search Manager dialog * Fixed ctrl+shift+punctuation key equivalents so they also work on win32 * Fixed hanging of the GUI when right or middle mouse click in the source editor's scroll bars * Fixed crashes seen when free-running a WXPython program in the debugger * Update buttons in search manager also when paste in text * Clear PYTHONPATH at startup to avoid importing incorrect modules when users add a Python module location to their path * Fixed IndexError on stack in some forms of embedded script invocation * Now also auto-saves or prompts for save before executing a file (outside of the debugger) or running a build command * External file modification check now looks for any change in modification time, not just change to a newer modification time * Block keyboard interupt from being handled. This previously could result in loss of critical routine tasks like servicing the debug connection and check for externally changed files. * No longer writes dos line endings for files that contain other line ending styles * Fixed auto-wrap to write correct line endings and not always '\n' * Now avoids undo chain problems after no-op auto-wrap * Uses less GDI resources on win32 * Fixed multiple memory leaks * Increased delay before auto-scrolling and sped up auto-scroll * Fixed replacement of python path with the word 'custom' in some cases * Front window gets the focus back when the save as and other standard dialogs are closed on win32 Version 1.1b6 ============= July 3, 2001 Incompatibilities ----------------- * Users of wingdbstub.py must update to the current release's version of this file * Earlier versions of the 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. New Features ------------ * Added printing support on win32 * Added drag and drop support for text move/copy on win32 * Added support for mouse wheel scrolling of all windows on win32 (improved since 1.1b5 patch) * Completed support for nested scopes when a 2.1 interpreter is used and a 'from __future__ import nested_scopes' statement is found. * Debugging Tkinter based programs is supported on Windows and is improved on Linux. * Large debug data values resulting in timeouts during evaluation no longer end the debug session * Debug data handling errors (timeouts or internal errors) are recorded in project file and values are never refetched unless forced by user * Interactive shell tries to determine if an expression is going to result in a huge value and network timeout (but cannot always tell ahead of time) * Comment in/out region now places comment after line indentation, to make it more compatible with indentation features * Search/replace manager allows selecting file to search in addition to using active view (which is still the default) * Added project name to the project manager window title * Ctrl-period is bound to 'redo' in emacs mode * Source distribution also includes files for the Windows version * Popup menus appear a bit to the right to avoid automatically selecting the first item (e.g., 'Cut' in the source index menu) Bug Fixes --------- * Correctly support display of iso8557 family characters on win32 also * Improved win32 native save / save as dialog to include suggested file name and file type in all cases * Fixed goto base class in source browser so it works in many more instances * Debugging embedded Python code now works properly without crashing * Fixed bug causing loss of debug connection when size of locals or globals exceed the value of the debug.huge-list-threshold preference * Better handling of unexpected exceptions raised by extension modules in debug code in response to assignment or comparison of debug values in the debug machinery * Fixed traceback in resetting on cancel from font/size dialog if some editors are closed while it's up * Changed key maps so shift specifier is ignored for keys that may be in different keyboard locations depending on locale * Fixed bug that prevented some classes from being displayed in Class Heirarchy view * Fixed bug that dropped info about a function or class when a comment followed the declaration. * Draggable dividers now update as you move them, so they are much more usable * Fixed rectangular and regular paste to work correctly in all cases * Fixed newline handling in pasted text to convert to target file's format * Blocked escape key from entering source text as BEL * Correctly enable/disable variable display in expression evaluator * Add newly saved files and projects to recent lists also * Fixed failure to reevaluate in expression evaluator, leading to time outs in some cases with large data values * Set mime type when source menu is used to alter syntax hilighting so that breakpoints can be set into any file that's user-defined as being Python even if no file extension mime map is matched (the selected mime type is stored in the project file) * Fixed some cases where Python wasn't found even when it should be on win32 * Detect .pyd & _d.pyd files as C extensions in code analyzer * Fixed editor paragraph auto-wrap function to compute correct common line prefix in all cases * Fixed GdkCursor warnings and associated memory leak on win32 * Formatting bug fixes in HTML version of manual * Now raises the frontmost window in the app if another app is in front Version 1.1b5 ============= May 11, 2001 Incompatibilities ----------------- * Users of wingdbstub.py must update to the current release's version of this file * Earlier versions of the 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. New Features ------------ * Partial support for Python 2.1 nested scopes (symbols appear in autocompleter and source browser when nested scopes are enabled) * Tested also on Debian 2.2, Suse 6.4 and 7.0, Mandrake 7.1 and 8.0, RedHat 6.0 and 7.1 (see manual or website for full list) * On Windows, use standard file and directory selectors rather than the gtk file selector; preference gui.use-native-file-selector can be set to false if the gtk selector is wanted instead * Added ability to specify a default file location mapping for remote debugging. This is used for all otherwise unmatched remote hosts. * Added examples to manual of file location mappings for various remote/networked debugging scenarios. * #!*python* at head of file now indicates python mime type by default * On Linux, --system-gtk as first command line argument to the 'wing' startup script will force use of system-wide version of GTK and re-enable themes. Caution: Some versions of gtk and some themes may cause crashing. * Added instructions for rebuilding the debug server from source code, for use on platforms other than Linux and Windows (Lynx OS has been tested) * Color coded debugger status messages Bug Fixes: General ------------------ * Fixed failure to start up Wing on some win32 installations * Don't repeatedly warn about not being able to find Python if it's ever been found in order to handle some partially broken or non-standard Python installations on win32 * Changed all file selection dialogs to non-modal to avoid sub-dialog problems * Fixed traceback in menu code that sometimes appeared while quitting Bug Fixes: Debugger ------------------- * Fixed failure to display message when debug connection is lost unexpectedly * Fixed several bugs introduced earlier in this beta series that caused unexpected loss of debug connection, most associated with very large data values in the debug session * Correctly indicate when referenced debug data values no longer exist * Correctly handle changes in values in the expression evaluator (another bug introduced in an earlier beta) * Fixed failure to stop at breakpoints and incorrect source display when debug file contains #!/usr/bin/python (or equivalent) and is started by typing ./debugfile.py (possibly, among other scenarios) * Fixed slash / backslash conversion when debugging remotely between Windows and Linux or vice versa * Fixed F10 so it works for Step Into also on Windows Bug Fixes: Editor ----------------- * Fixed wrong cursor positioning after auto-indent in files that contain tabs in indents and when indent size != tab size * Fixed integration with system-wide clipboard * Fixed emacs-mode paste/^Y/button-2 behaviours to allow access to system-wide clipboard * Don't paste non-rectangular selections as rectangular on win32 * Don't warn about not being able to watch for changes in files that don't exist on win32 * Set up indent style correctly initially in files with mixed tab-only and space-only indent * Correctly update the indentation manager when undo and other actions affecting indentation style in Python files; also avoid corrupting analysis information with wrong indent counts Bug Fixes: Project Manager -------------------------- * Don't ask to save project while opening it! * Fixed incorrect identification of files in projects in some cases * Properly update tool and menu bar in all cases when opening/closing projects * Fixed duplicate use of 'R' accelerator in Project menu Version 1.1b4-2 (Windows only) =============== April 25, 2001 * Fixed failure to handle spaces in path to Python installation Version 1.1b4 ============= April 20, 2001 Incompatibilities ----------------- * Users of wingdbstub.py must update to the current release's version of this file * Earlier versions of the 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. New Features: General --------------------- * Wing IDE ships with its own subset of Python so now avoids problems stemming from running under unexpected environments and experimental versions of Python. The debug process can run under 1.5.2, 2.0, or 2.1. * Analysis is now informed by which python interpreter is selected for the project or main debug file: The corresponding python path is used for finding modules and built-ins. * Added a new dialog box for viewing analysis status and environment. * When no specific python interpreter is selected in project or per-file debug properties, and 'python' is not on the search path, Wing searches in /usr and /usr/local on Linux and in the registry on Windows to locate the newest installed version of Python by default. * Added manuals for Wing IDE and Python and a number of useful URLs to the Help menu; manuals are displayed from local disk if possible, or from web if not found locally. * Added ability to open items in the project list into an external viewer or editor by right-clicking and selecting "Open with External Viewer" from the popup menu * Added preferences to set external viewers to use with disk files (by mime type) and URLs (by protocol type): This is used both for the Help menu items and for opening project items into an external viewer/editor (this pref is ignored on Windows, where the centrally configured viewers for file types and URLs are used instead) * Added preference for adding additional file extension to mime type mappings to those already defined by Wing or in system-wide configuration files * Now auto-reopen most recently open project at startup (unless turned off via preference or when a project is given on command line) * Added preference allowing automatic opening of project files as projects even when opened from the File menu (default=true). Previously, they were opened as text files by default. Now they will be opened as projects except if the project file cannot be read as a project file, in which case it is opened as text. * Added recent lists for opening files and projects * Added recent lists for debug files and executed items * On Linux, Wing IDE ships with its own version of gtk that disables use of themes. This avoids intermittent crashing when running against some versions of gtk and under some gtk themes; to run with your native installed GTK, remove or rename the directory WINGHOME/bin/gtk-bin but beware of crashing when themes are changed while Wing is running or in some cases when closing source file windows. Also, make sure to turn off guimgr.enable-tooltips preference if you run against a version of GTK older than 1.2.8. * Set display of tooltips on by default on new installations. This was causing problems in gtk versions less than 1.2.8, but now gtk is shipped with Wing. Turn this off with the gui.enable-tooltips preference only if you force running against an older GTK version on Linux. If you are upgrading and already have this preference in your personal preferences file, you need to set it to true manually if you want tooltips. * Now store debug properties and most other platform-dependent values in the project file and preferences in a way that allows the same project or preferences file to be used on multiple platforms * Source window and menu item titles can be configured to use various forms of names for files. Default is file name with appended parenthesized partial relative path (relative to location of project file or current working directory if there is no project open) * Added abbreviated menu bar to Project Manager window * Added startup splash screen * Added preferences for setting menu fonts and the font used in content display areas throughout the IDE (other than the source editor, which is configured with a seperate preference or from the Source menu). These can be used to override Gnome theme or Windows-defined default values. New Features: Debugger ---------------------- * Debugger now supports Python 1.5.2, 2.0, and 2.1 on Windows and Linux * Interactive shell can now accept pasted-in multi-line statements * Added support for selecting how data values are tracked in debugger display windows: By symbolic path, by direct reference, or by named slot in a referenced parent value. This can be controlled via preferences or selected from the right-click popup menu over the main debugger variable display tree. * Added ability to add or remove items from the debug program's environment, either project-wide or per-file or both * Debugger shows Zope acquired attributes via aq_self and aq_parent, when present * Class-scoped values in an instance are italicized * Can now also zoom out whole locals or globals tree to seperate window New Features: Editor -------------------- * Added preferences for default editor font/size, and a font/size selector dialog that can alter the settings for a single file or for all files in a project * Added ability to show/hide a line numbering column in source editor * Added preference to set the default end-of-line style to use with newly created files * Improved keyboard/command macro facility supports more commands, including indent and comment in/out commands, auto-completion, undo/redo, and allows use of previously defined macro in definition of a new macro * Indent-to-match feature now will uniformly indent a whole selected block to match according to the context of the first line of the block Bug Fixes --------- * Fixed missing editor scrollbars bug under certain themes and gtk versions on Linux * Fixed crashing under certain versions of gtk on Linux, such as on Mandrake 7.2 * Windows version now supports Python 2.0 and 2.1, as well as 1.5.2 * Fixed failure to start debug process when no args were specified for the debug program on win32 * Fixed crashing of IDE and/or debug server on dictionaries with class instances as keys (pickle was trying to access the class on the IDE end of the connection) * Fixed bugs causing failure to update zoomed-out variable display views when the display contained certain types of data * Somewhat gentler probing to more often avoid crashing less-well-behaved C extension modules during attribute access for debugger variable display * Fixed introduced bug on Linux causing rejection of debug properties when using default 'python' executable setting * No longer bring up source code window when encounter an exception in expression evaluation or interactive shell * Fixed bug resulting in corrupted project file when multi-line commands are pasted into the interactive shell window (due to incorrect packaging of command history) * Syntax is correctly restyled again when the lexer is changed manually (this was broken in first 1.1 beta release) * Re-enabled change/force indentation options which were broken in earlier 1.1 beta * Fixed incorrect reassignment of 'len' in source editor code leading to tracebacks * Fixed bug causing debugger to ignore the run directory debug property * Fixed aspects of macro recording and playback broken in earlier 1.1 beta * Fixed resizing of browser window to overly large height when viewing source * Fixed transient failure to update analysis information when an unsaved source file was closed and reopened * Reduced dependency on environment: Python interpreter core for use by the IDE is now included in the distribution, so only the debug server must support multiple versions of Python * Fixed incorrect close sequence for search manager window, leading to tracebacks with each window focus change Version 1.1b3-3 (Windows only) =============== March 13, 2001 Bug Fixes --------- * Fixed common problem preventing debug to be started from within the IDE (caused by one of several bugs associated with spaces in path names and/or incorrect doubling up of quotes around args with spaces in them and/or path joining oddities on win32) * Now record installation directory in Windows registry to avoid failures to start Wing cleanly on various Windows variants * Fixed failure to execute items outside of debugger on Windows due to missing environment setup * Fixed failure in file entry panel of project or per-file debug attributes when no file was selected * Fixed traceback emitted in some cases when quitting or closing editor windows, due to late call into methods of destroyed object * Fixed failure to remove stale license lock files on win32 Version 1.1b3-2 =============== March 3, 2001 Bug Fixes --------- * Eliminated use of strptime, which doesn't exist on win32 Version 1.1b3 ============= March 2, 2001 Features -------- * Win32 port; tested on Win 98/SE, Win NT4 SP6, Win 2000 SP1. Python 1.5.2 must be installed seperately. Please note that this is a pre-release and contains some rough spots. Read the bug list! * Additional documentation for Zope + Wing bundle (Linux only) Bug Fixes --------- * Fixed incorrect assignment of 'cgi' files to perl (naturally, we're assuming python instead) * Fixed crashing caused by perl and some other lexers (syntax highlighting) * Fixed failure of debugger to display source location of fatal errors in __main__ scope of debug program * Fixed modal dialog interaction in debug properties file selector and turned off unnecessary modal behaviour of this dialog * Values entered in debug properties dialog are now validated for correctness * Fixed browse button for run directory in debug properties dialog so the file selector will accept a directory as it should * Removed delay between dropping debugging connection and reestablishing passive listen mode in debugger (which caused problems with fast respawning programs) * Improved color allocation to avoid problems on X servers with limited color availability * Fixed auto-indent bug in if/elif and try/except blocks that contain multiple statements on a line (as in "if x: print x \n elif y: print y") Version 1.1b2 ============= February 20, 2001 Incompatibilities ----------------- * Users of wingdbstub.py must update to the current release's version of this file. * The version 1.0 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. * Indentation features have changed so that the editor preference edit.use-tabs-to-indent-default is no longer used. This has been replaced by edit.default-indent-style. Features -------- * Added a Python indentation manager for analysing and converting indentation style found in source files * Configured edit.tab-size is now applied in cases where a Python file is indented with tabs only, and tab size of 8 is enforced only when required by the Python interpreter * Added ability to attach/deattach/reattach to debug processes * Debugger recognizes externally launched processes and refuses to kill them unless debug.enable-kill-external preference is set to true * Support for debugging Zope 2.3.0 as well as 2.2.2 * Created bundled distribution combining Wing IDE and Zope into one easy-to-install package * Added extension interface for registering debug server sockets with gui environments and other mainloop environments that spend much time in non-Python code that would prevent servicing of the debug communication channel. Gtk, Tkinter, Qt, and Zope are already supported as of 1.0; this interface allows users to support their own custom environments as well. * Added preference to enable tooltips over the toolbar. Note that this is still off by default because it brings out a bug in gtk versions before 1.2.8; please upgrade before turning on this option. * Added set/clear main debug file items to Project menu and item to set debug file properties on current window in Run menu (these are also available on the project manager's popup menu) * Added Add Current File item to Project menu for adding the currently open file to the project * Quoted true/false literals in preferences are now recognized as well as the unquoted form * Additional third party materials are now included on the CD: Python 1.5.2 and 2.x source and documentation, RPM distributions of Python, Zope binary and source distributions, 75dpi fonts missing on some systems Bugs Fixes ---------- * Fixed failure to start when the machine's reported host name was not in /etc/hosts or DNS * Fixed bug where debugger would include parts of itself on the call stack in some case * Fixed bugs associated with multi-user installation using floating-locks, where Wing would fail to set up individual user environment and exit with misleading "Could not Open X Windows Display" message * Fixed creation of initial preferences file to output true or false instead of 'true' or 'false' for project autosave setting, and set added code to properly support previously incorrectly generated files * Debugger now propagates LD_LIBRARY_PATH and PYTHONPATH also to debug processes running within an xterm on Linux systems where xterm has setuid permissions * Fixed macro recording so hitting '\n' does not break macros due to auto-indent * Disabled commands that are not macroable * Disable/enable macro commands according to macro recording state * Keyboard macros can be executed in any window, not just where they were recorded (but recording still only works within the window where the macro was started) * File edit status indicator in lower left is now reset to clean immediately after save * Fixed failure to start in some cases under Python 2.x, due to incorrect append() in code that reopens windows * Fixed analysis bug causing tracebacks in some cases immediately after save * Fixed a number of debugger network protocol bugs with symptoms such as failure to step into some imports and incorrect ending of the debug session * Fixed failure to rescan for modules during debug start, causing sometimes unresponsive debug server when running under gtk, zope, tkinter, or qt and using wingdbstub * Fixed backtrace occurring when gui.show-toolbar was set to false Version 1.1b1 ============= February 7, 2001 This was a private technology preview released to a few individuals. All change information is now included in the listing for version 1.1b2 above. 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