Wing IDE
The Wing Python IDE family of integrated development environments (IDEs) from Wingware was created specifically for the Python programming language. These lightweight but full-featured Python IDEs are designed to speed up writing, debugging, and testing code, to reduce the incidence of coding errors, and to make it easier to understand and navigate Python code.
Developer(s) | Wingware |
---|---|
Initial release | 1.0 beta / September 7, 2000 |
Stable release | 7.2.8
/ January 12, 2021 |
Written in | Python, Cython, C, C++ |
Operating system | Windows, OS X, Linux |
Type | IDE for Python |
License | Proprietary |
Website | wingware |
There are three products in this product line, each focused on different types of users:
- Wing Pro – a full-featured commercial version, for professional programmers
- Wing Personal – free version that omits some features, for students and hobbyists
- Wing 101 – a very simplified free version, for teaching beginning programmers
Wing Pro provides local and remote debugging, editing (with multiple key bindings, auto-completion, and auto-editing), code intelligence, multi-selection, source browser and code navigation, code refactoring, unit testing, version control, Pylint integration, project management, search abilities, fine-grained customization, extension through Python scripting, and comprehensive documentation.
Wing Personal and Wing 101 omit some of these features. For details on features provided in each product see the product overview. All three versions of Wing run on Windows, Mac OS X and Linux.
Free licenses for Wing Pro are available on application for some educational uses and for unpaid open-source software developers, (see here).
Debugger
The debugger can be used to track down and fix bugs, and also as a way to write new code interactively win the live runtime state for which the code is being designed. The level of the debugging support depends on the version used.
Wing 101 supports:
- Debug code launched from the IDE (as a file or module with 'python -m')
- Interactive debugging from (and within) the integrated Python Shell
- Exception and traceback reporting
- View stack, locals/globals, and return values
- Data frame and array viewer
- Integrated Debug I/O tool with configurable text encoding
- Optional native console I/O
- Steps over importlib frames
Wing Personal adds:
- Multi-threaded debugging
- Debug code launched outside of the IDE, including code running under a web framework or embedded instance of Python
- Debug value tooltips
- Alter debug data values
- Define named entry points and debug launch configurations
Wing Pro adds:
- Interactive Debug Probe command line for inspecting the current debug frame, with auto-completion, syntax highlighting, goto-definition, call tips, and documentation links
- Multi-process and automatic child process debugging
- Launch remote debug processes from the IDE
- Conditional and ignore-counted breakpoints
- Enable/disable breakpoints
- Move debug program counter
- Debug unit tests
- How-Tos and extra features for Django, Flask, Jupyter, matplotlib, web2py, Plone, Zope, Docker, AWS, Vagrant, Raspberry Pi, Windows Subsystem for Linux, and many others
- Press Shift-Space to view the value of all symbols in the editor
- Recursive debugging of code invoked in the context of another debug stack frame
- Convenient Restart Debugging tool
- Track values by reference
- Evaluate expressions
- Breakpoint manager
- Debug process attach/detach
- Inspect sys.modules
- Mark a range of code in the editor for quick reevaluation in Python Shell or Debug Probe
Code intelligence
The code intelligence features speed up editing, facilitate navigation through code, and inspects code for errors. These features rely both on static analysis of Python code found in the project and on the Python Path, and on runtime analysis of code whenever the debugger is active or the code is active in the integrated Python Shell.
The features available depend on product level:
Wing 101 provides:
- Auto-completer offers completions in Python code and in the integrated Python shell (this feature is disabled by default in Wing 101 but can be enabled in preferences)
- Source index menus in each editor provide a handy index into source code
- Goto-definition
- Auto-indent
- PEP8, Black, and YAPF reformatting
- Syntax and indentation error indicators
- Convert indents and end-of-line characters on paste
- Understands PEP 484 and 526 type hinting
Wing Personal adds:
- Find Symbol: keyboard-driven goto-definition within current file or any project file.
- Auto-completion in non-Python files
- Indentation analysis and conversion
- Source Assistant: provides context-appropriate call signature and documentation with rendering of PEP287 docstrings
- Class browser for single files or whole project
Wing Pro adds:
- Code Warnings tool
- Pylint, pep8 checker, and mypy integrations
- Module browser
- Source Assistant includes standard library documentation links
- Find all points of use of a symbol, filtering out different but like-named symbols
- Find symbol by name, in current file or all project files
- Refactoring: rename or move a symbol and update points of use, extract a range of code to a new function or method, or introduce a variable
Version control
Version control integration is available only in Wing Pro. It supports the following tools:
- Subversion
- CVS
- Bazaar
- git
- Mercurial
- Perforce
Unit testing
Unit Testing support is available only in Wing Pro. It supports running and debugging unit tests written for the unittest, pytest, doctest, nose, and Django testing frameworks.
Remote development
Wing Pro also supports secure development on remote hosts, virtual machines, or containers. Code on the remote system may be edited, debugged, tested, and managed from the IDE, as for locally stored files. Remote development also supports externally launched debugging.
Other features
Other features present in all the product levels include:
- Editor emulates vim, emacs, Visual Studio, Eclipse, XCode, and Brief
- Syntax highlighting for most programming languages, including Python, Django (web framework) templates, CoffeeScript, HTML/XML, CSS, JavaScript, C/C++, and about 70 others
- Integrated Python shell with auto-completion, syntax highlighting
- Search within the current file
- Configurable color palettes and user interface layout
- Extensive documentation, How-Tos, and tutorial
- German, French, and Russian GUI localization
Wing Personal adds:
- Multi-select to simultaneously editing multiple parts of a file
- Define custom key bindings
- Create projects for different development tasks
- Quickly open project files by name fragment
- Add, delete, rename, and move files in the project
- Create new virtualenv or Anaconda env projects
- Project-wide and multi-file search
- Regex and wildcard search
- Search documentation
Wing Pro adds:
- Goto-definition, call tips, and documentation links in the integrated Python shell
- File add, delete, rename, and move operations track to the active revision control systems
- Set and traverse bookmarks
- Code snippets with recursive inline data entry
- Perspectives for naming custom user interface layouts
- Execute external commands in integrated OS Commands tool
- Extend the IDE's functionality with Python scripts
History
First public version of Wing was released on 2000-09-07, as 1.0 beta, only for Linux.
First stable version was v1.0 for Linux, on 2000-12-01.
Corporate name change: Archaeopteryx Software Inc is now doing business as Wingware: March 29, 2004 [1]
Wing version 4.x and earlier were based on GTK2 and the OS X version required X11. Wing 5 changed to Qt4 via PySide and no longer uses X11 on OS X. Wing 6 moved to Qt5 with PyQt5.
The history of all releases to date can be found at https://wingware.com/news
References
- "Wingware statement". wingware.com.