Wing IDE 6.0 beta2

Cranes

Wing IDE 6.0 beta2 is now available for all product levels (Wing IDE Pro, Wing IDE Personal, and Wing IDE 101).

What's New in Wing IDE 6

The feature highlights of Wing IDE Pro 6 are as follows. Some, but not all, of these features are available in Wing Personal and Wing 101:

Improved Multiple Selection Support

Wing Pro and Personal 6 add the ability to make multiple selections on the editor in an easier and more flexible way. The new Edit > Multiple Selections menu and selections toolbar item provide ways to select matching occurrences of text one at a time, or within the current block, function or method, class, or file. Press Ctrl (or Command on the Mac) while clicking to create multiple selections with the mouse.

For details, see the Multiple Selections section of the Editor chapter in the Wing IDE Manual. This must be accessed from Wing's Help menu because the online docs do not include information for beta releases.

Remote Edit, Debug, Test, Search, and File Management

Wing Pro 6 adds the ability to connect to a remote host through a secure SSH tunnel in order to edit, debug, test, search, and manage files stored remotely in the same way that Wing supports working with files on your local system.

This is done by setting up SSH access to a remote host outside of Wing IDE and then configuring the remote host from Wing's Project > Remote Hosts menu item and using that host for the Python Executable in Project Properties. Files and directories added to the project can be on any configured remote host, and the project file can be stored either remotely or locally. Editing, debugging, testing, searching, version control, OS Commands, and other features work with remote files as if they were stored locally.

Some aspects of this feature are still under development. For example, this beta only supports remote access to OS X or Linux where a copy of Wing 6 beta2 has already been installed. Future betas will not require installation of Wing on the remote system, and will support other OSes. Also, automatic transfer of local code files to a remote host is planned but not yet available. Instead, Wing currently assumes the master copies of files are stored on the remote host. In addition to these limitations, the following are known bugs in remote access:

  • Debugging or executing code remotely with Python 3.5 does not work
  • Look in Selected Directory in Search in Files does not work with Python 3 (searching Project Files and the other options does work)
  • Analysis is flaky and may miss obvious cases such as going to definition on a class within a module even if the module itself is found
  • Switching between projects with different remote host configurations, or editing a remote host configuration does not work well without restarting Wing

For detailed instructions see the Remote Hosts section in the Project chapter of the Wing IDE Manual. This must be accessed from Wing's Help menu because the online docs do not include information for beta releases.

Debug from Python Shell and Recursive Debugging

All product levels of Wing 6 make it possible to turn on debugging for code that is executed in the Python Shell. In Wing Pro this is also possible in the Debug Probe, making recursive debugging possible.

To enable debug in one of the shell tools, press the bug icon in the top right of the tool. Once this is done, a breakpoint margin will appear in the tool and breakpoints and exceptions reached in code, either within the tool or in source files, will be displayed in Wing's debugger.

One level of recursive debug is possible by debugging code entered into the Debug Probe tool. Both the Python Shell and Debug Probe can debug recursively to any depth by checking Enable Recursive Prompt in their Options menus. When this is done, Wing displays a new prompt whenever the debugged code reaches a breakpoint or exception, so that you can continue to interact with the paused debug process from the command line, optionally debugging other code in context of the currently selected debug stack frame. Continuing or stopping debug will exit one level of recursion rather than exiting the debug process entirely.

For details see Debugging Code in the Python Shell in the documentation accessed from Wing's Help menu. If you are debugging multi-threaded code from the shells, you will want to read and understand how threads are managed in this style of debugging.

PEP 484 Type Hints

Wing 6 can understand type hints in the style standardized by PEP 484, as available in Python 3.5 and later. For example, the following indicates to Wing the argument and return types of the function myFunction:

from typing import Dict, List

def myFunction(arg1: str, arg2: Dict) -> List:
  return arg2.get(arg1, [])

The type of variables can be indicated by a comment that follows it:

x = Something() # type: int

The types that Wing can recognize include basic types like str and int and also the following from the typing module: List, Tuple, Dict, Set, FrozenSet, Optional, and Union.

Other ways to accomplish type hinting are documented in Helping Wing Analyze Code.

Product Line Changes

Wing IDE Personal is now a free product and no longer requires a license to run. It now also includes the Source Browser, PyLint, and OS Commands tools, and supports the scripting API and Perspectives. Wing Personal does not include Wing Pro's advanced editing, debugging, testing and code management features, such as remote host access, refactoring, find uses, version control, unit testing, interactive debug probe, multi-process and child process debugging, move program counter, conditional breakpoints, debug watch, framework-specific support (for matplotlib, Django, and others), find symbol in project, and other features.

Wing IDE 101 now has a preference to enable auto-completion. It is still disabled by default since this heavily scaled back version of the IDE is designed for teaching beginning programmers, for whom auto-completion can be a confusing distraction.

As of this beta release, the above changes are reflected in the releases themselves but not yet in our online store or other parts of our website.

Other Improvements

  • Optimized debugger, particularly for multi-threaded code
  • Support OS X full screen mode
  • Restore editor selection after undo and redo
  • Added One Dark color palette
  • Holding modifier keys and clicking in the Key field for the Custom Key Bindings preference produces a binding (for example, Ctrl-Right-button-click) that can be bound to a command
  • Better support for portable installs, by allowing auto-activation of a stored license and using --settings and --cache command line arguments to specify location of the settings and cache directories
  • Always move breakpoints and Debug To Here positions to valid lines that will actually be reached by the Python interpreter
  • Added CAPIDebugger.SetCurrentRunState to the scripting API
  • Added hostname to CAPIProject.Get/SetPythonExecutable and Get/SetLaunchAttrib
  • Added icon for Cython file type
  • In the source browser and other tree views, the right arrow key expands the selected node
  • Better support for custom python builds on Windows

Documentation

For more information on Wing IDE 6's features, please refer to the integrated documentation in the Help menu. Note that the documentation hosted on our website is for the latest stable release and not for this beta release.

Supported OSes

This release runs on Windows 7 through 10 for Intel processors, OS X 10.7+, and 64-bit Linux versions with glibc version 2.15 or later (such as Ubuntu 12.04+, CentOS 7+, Kali 1.1+, and Fedora 20+). Earlier versions of Windows, OS X, and Linux, and all 32-bit Linux installations are no longer supported.

Reporting Bugs

The known bugs and limitations in this beta release are:

  • Debugging in the Python Shell and Debug Probe with Python 3 on Windows often requires continuing the debugger before returning to the prompt due to incorrectly stopping on debugger internals
  • Only Linux and OS X can be used as the remote host with the new remote access feature, and there are other limitations in this feature, since it is still under development. For details see the What's New section above.

To report bugs, please submit a bug report from the Help menu in Wing IDE, or email us at support at wingware dot com

Compatibility Notes

Wing 6 can be installed side by side with prior major releases. Wing 6 will try to inherit preferences from Wing 5. Wing 5 project files opened with Wing 6 will be converted to Wing 6 format and should be stored in a separate file if that project will still be used with Wing 5. Wing 5 cannot read Wing 6 project files.

This beta release drops support for Windows XP, 2003 Server, Windows Vista, OS X 10.6, 32-bit Linux, and Linux with glibc versions older than 2.15. Wing 6 beta2 does support Windows 7+, OS X 10.7+, and most recent 64-bit Linux distributions.

Wing 6 drops support for Python 3.1. The supported Python versions are 2.5 through 2.7 and 3.2 through 3.5. Wing now prefers the latest Python version it finds, whether it is Python 2 or Python 3. This may cause a different Python version to be used in converted Wing 5 projects that do not specify Python Executable.

Wing now uses PyQt5, which solves some issues on newer OS versions and improves stability and performance. Full-screen mode now works on OS X. A side effect of this change is that the Display Style and Color Palette preferences have been simplified to allow only selection of a color palette and whether or not it is applied to the whole UI. On Linux, Wing no longer works with the system-provided Qt because of binary compatibility problems.

The default key binding for Undo has been moved to Ctrl-Shift-Z, so that Ctrl-Y can be used for adding selections in the new multiple selections feature. To restore Ctrl-Y to its former function, bind it to the command undo in the User Interface >> Custom Key Bindings preference.

For a detailed list of changes see the change log.

Installing

After downloading Wing Pro 6.0.0-b2, Wing Personal 6.0.0-b2, or Wing 101 6.0.0-b2, just install and run Wing IDE as with previous versions.

Upgrading

Since we are not yet selling Wing 6 licenses, please use Wing 6 beta2 with a series of trial licenses. Support for permanent licenses will be added in a future beta release.

Wing IDE 6.0 beta2