Home » Key Features of Wing IDE »

What's New in Wing IDE Version 6

Woman in Park

Wing 6 introduces several powerful new features:

Improved Multiple Selection Support

Wing Pro and Personal 6 make working with multiple selections on the editor much easier. The Edit > Multiple Selections menu and selections toolbar item can be used to select matching occurrences of text one at a time, or within the current block, function, method, class, or file. Once multiple selections are made, edits are applied to all of them.

For details, see the Multiple Selections.

Easy Remote Development

Wing Pro 6 adds the ability to connect to a remote host through a secure SSH tunnel in order to work with 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, Python Shell, OS Commands, and other features work with remote files as if they were stored locally.

For detailed instructions see Remote Hosts.

Debugging in the Python Shell

All product levels of Wing 6 make it possible to turn on debugging for code that is executed in the Python Shell. This is done by pressing the bug icon in the top right of the Python Shell tool. Once enabled, a breakpoint margin will appear and Wing's debugger will stop on any breakpoints and exceptions reached in code, either within the Python Shell tool or in source files.

For details see Debugging Code in the Python Shell. 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.

Recursive Debugging

In Wing Pro it is possible to debug code invoked from the Debug Probe, allowing for one level of recursive debugging.

The Python Shell and Debug Probe can also debug recursively to any depth by checking Enable Recursive Prompt in their Options menus. When enabled, 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.

PEP 484 and PEP 526 Type Hints

Wing 6 can understand type hints in the style standardized by PEP 484 (Python 3.5+) and PEP 526 (Python 3.6+). 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

In Python 3.6+, the type of variables can instead be specified in the following syntax:

x:int = Something()

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.

Improved Raspberry Pi Support

Wing 6 Pro makes it much easier to work with code on the Raspberry Pi. Using the new remote development support, setting up remote access to a Raspberry Pi is as simple as configuring SSH access and then configuring a remote host from Wing IDE's Project menu. Wing will automatically install its remote agent on the Raspberry Pi, making it possible to edit, debug, test, search, and manage files, and to open a remote Python Shell from Wing IDE running on Windows, OS X, or Linux.

For details, see Using Wing IDE with Raspberry Pi.

Annual License Option and Pricing Changes

Wing 6 adds the option of purchasing a lower-cost expiring annual license for Wing IDE Pro. An annual license includes access to all available Wing IDE versions while it is valid, and then ceases to function if it is allowed to expire. Pricing for annual licenses is US$ 179/user for Commercial Use and US$ 69/user for Non-Commercial Use.

The cost of extending Support+Upgrades subscriptions on Non-Commercial Use perpetual licenses for Wing IDE Pro has been dropped from US$ 89 to US$ 39 per user.

For details, see the Wingware store.

Wing IDE Personal is Now Free

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.

However, 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.

Other Improvements

Wing 6 adds many other new features and improvements, including the following:

  • Support for Python 3.6 and Stackless 3.4
  • Optimized debugger, particularly for multi-threaded and multi-process code
  • Support OS X full screen mode
  • Restore editor selection after undo and redo
  • Added One Dark color palette
  • Support Move Program Counter in recent Python versions
  • 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
  • Support for custom python builds on Windows
  • Automatically find Python installations that follow PEP 514 on Windows
  • Updated French localization (thanks to Jean Sanchez and Laurent Fasnacht)
  • Updated German localization (thanks to Christoph Heitkamp)

Not all of these features are available in Wing IDE Personal and Wing IDE 101. See the feature matrix for details.

The change log on the downloads page contains detailed list of all changes up to that release.

Wing 6 installs side by side with earlier versions of Wing, so there is no need to remove old versions in order to try Wing 6. Wing 6 will read and convert Wing 5 preferences, settings, and projects. Projects should be saved to a new name since earlier versions of Wing cannot read Wing 6 projects.

See Upgrading for details and a list of compatibility notes.

What's New in Wing IDE Version 6