What's New in Wing Version 6
Wing 6 introduces several powerful new Python IDE 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 Pro 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 products in the Wing 6 family of Python IDEs 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.
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 Pro 6 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 Pro'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 Pro running on Windows, OS X, or Linux.
For details, see Using Wing Python IDE with Raspberry Pi.
Annual License Option and Pricing Changes
Wing Pro 6 adds the option of purchasing a lower-cost expiring annual license. An annual license includes access to all available Wing Pro 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 Pro has been dropped from US$ 89 to US$ 39 per user.
For details, see the Wingware store.
Wing Personal is Now Free
Wing 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.
Wing 6 adds many other new features and improvements, including the following:
- Support for Python 3.6 and Stackless 3.4
- Auto-completion in strings and comments
- Syntax highlighting and error indicators in f-strings
- 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
- Refactoring operations to convert easily between lowerCamelCase, UpperCamelCase, under_scored_name, and UNDER_SCORE_NAME symbol name formatting
- 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
- Drop down with found Python installations in Python Executable properties
- Automatically find Python installations that follow PEP 514 on Windows
- Concurrent update of recent menus from multiple instances of Wing
- How-To for Jupyter notebooks
- Support for Django 1.10
- 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 Personal and Wing 101. See product comparison 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.