Wing 具備各大編譯器共通的功能,如VIM、Eclipse、Emacs、Visual Studio等,不但迅速上手、更容易跨平台使用。並具有強大的debugger、智慧的管理功能,讓互動式編譯Python的過程有效率、精準、又富有趣味。
- 迅速編碼:豐富的自動完成功能,容易搜尋的命令列
- 有效debug:游標追蹤式即時參照,修改建議
- 方便瀏覽:清楚的highlight功能,自動辨識不混淆
- 版本管理:有彈性並具有融合功能
- 自訂環境:設定key binding,選擇功能集,排列窗口
新版介紹
What's New in Wing Pro
Wing 10 (currently in beta) adds support for Python 3.12, Poetry for package management, Ruff for code checking, & more.
Wing 9.1 adds auto-import and import management, collects and displays code coverage for unit tests, uses coverage data to invalidate test results when code is edited, adds support for Python 3.11,reduces debugger overhead in Python 3.7+, speeds up running unit tests, streamlines configuration of light and dark theming, adds two light display themes, and makes improvements to New Project for Docker and Django, auto-invocation, multi-threaded debugging, code analysis, & more.
Python 3.11 and 3.12
Wing 10 (currently in beta) adds support for Python 3.12, including (1) debugging either with PEP 669 sys.monitoring or legacy tracer , (2) PEP 695 parameterized classes, functions and methods, (3) PEP 695 type statements, and (4) PEP 701 style f-strings. Wing 9 added support for Python 3.11.
Poetry Package Management
Wing 10 (currently in beta) adds support for Poetry package management in Wing's New Project dialog and the Packages tool in the Tools menu. Poetry is an easy-to-use cross-platform dependency and package manager for Python, similar to pipenv.
Ruff Code Warnings
Wing 10 (currently in beta) adds support for Ruff as an external code checker in the Code Warnings tool, accessed from the Tools menu. Ruff is an incredibly fast Python code checker that can replace or supplement flake8, pylint, pep8, and mypy.
Import Management
Wing 9.1 adds the ability to auto-enter imports from the auto-completer, eliminating the need to move up and down in a file to add imports while writing new code. The new Imports tool makes it easy to find and remove imports that are unused anywhere in your code.
Code Coverage
Wing 9.1 adds the ability to track and display code coverage for unit tests, so that you can see how well your tests are exercising your code. Coverage data is also used to determine which previously collected test results are invalidated by edits made to your code, so that tests affected by edits may be re-run sooner in the development process.
Faster Debugging and Unit Testing
Wing 9.1 reduces debugger overhead by about 20-50% in Python 3.7+. The exact amount of performance improvement you will see depends on the nature of the code that is being debugged and the Python version that you are using. Wing 9.1 also substantially speeds up running unit tests in projects with large numbers of unit tests and when tests produce a large amount of output.
Streamlined Light and Dark Theming
Wing 9.1 allows configuring a light and dark theme independently (on the first Preferences page) in order to make it easier to switch between light and dark modes. Two new light themes New Light and Faerie Storm have been added, and switching display modes should be faster and smoother visually.
Other Recent Improvements
- Show auto-invocation arguments for methods of super()
- Add Run Not-Yet-Run Tests option to the Testing menu
- Improve New Project support for Docker, Django, and other environments
- Fix a number of issues affecting multi-threaded debugging
- Fix several code analysis issues
- Improve reliability of remote development across network failures
- Improve keyboard navigation of Search in Files results
- Fix some issues in auto-editing and auto-spacing
Intelligent Editor
Wing's editor speeds up interactive Python development with context-appropriate auto-completion and documentation, inline error detection and code quality analysis, PEP 8 enforcement, invocation assistance, auto-editing, refactoring, code folding, multi-selection, customizable code snippets, and much more. Wing can emulate vi, emacs, Eclipse, Visual Studio, XCode, and MATLAB.
Powerful Debugger
Wing's debugger makes it easy to fix bugs and write new Python code interactively. Use conditional breakpoints to isolate a problem, then step through code, inspect data, try out bug fixes with the Debug Console's command line, watch values, and debug recursively. You can debug multi-process and multi-threaded code launched from the IDE, hosted in a web framework, called from an embedded Python instance, or run on a remote host, VM, container, or cluster. Wing also provides an array and dataframe viewer for scientific and data analysis tasks.
Easy Code Navigation
Wing makes it easy to get around code with goto-definition, find uses, find symbol in project, editor symbol index, module and class browser, keyboard-driven search, and powerful multi-file search. Visit history is stored automatically, so you can instantly return to previously visited code. Or define and traverse categorized bookmarks that track automatically as code changes.
Project Management
Wing's powerful project management capabilities work with Python environments managed by virtualenv, pipenv, conda, and Docker, with revision control using Git, Mercurial, Perforce, Subversion, or CVS. You can easily create new Python environments from Wing, add, remove, or update Python packages, and freeze your package configuration for use by other developers.
Integrated Unit Testing
Wing supports test-driven development with the unittest, doctest, nose, pytest, and Django testing frameworks. Failing tests are easy to diagnose and fix with Wing's powerful debugger, and you can write new code interactively in the live runtime context set up by a unit test.
Remote Development
Wing's quick-to-configure remote development support delivers all of Wing's features seamlessly and securely to Python code running on a remote host, VM, container, or cluster. Remote development is possible to hosts running macOS and Linux, including those hosted by Docker, Docker Compose, AWS, Vagrant, WSL, Raspberry Pi, and LXC/LXD.
Customizable and Extensible
Wing offers hundreds of configuration options affecting editor emulation, display themes, syntax coloring, UI layout, and much more. Easily switch to and from dark mode, magnify the interface for presentations and meetings, and use perspectives to manage task-specific UI configurations. New IDE features can be added by writing Python code that calls down to Wing's scripting API. You can even develop and debug your extension scripts with Wing.
And Much More
Other features include a difference/merge tool, code reformatting with Black, YAPF, and autopep8, indentation style conversion, and executing OS command lines. Wing runs on Windows, macOS, and Linux, and also supports remote development to Raspberry Pi and other ARM Linux devices.
Editor
Native UI on Windows, Linux, and macOS
Syntax highlights Python and 80+ languages
VI/Vim key bindings Emacs key bindings
Visual Studio key bindings
Eclipse key bindings
XCode key bindings macOS style key bindings
MATLAB key bindings
Brief key bindings
Customize key bindings
Smart indentation and indent guides
Adapts to file indent and EOL style
Block commenting
Rectangular and line selection
Select more/less Select statement, block, or scope
Brace matching
Visible white space
Detect and load external changes
Drag and lock editor splits & tabs
Print file or selection
Highlight caret line
Auto-save and restore
Show line numbers
Restore previous session visual state
Multiple selections
Code folding
Inline code warnings
Auto-editing
Auto-import and import management
Set and traverse bookmarks Keyboard and command macros
Inline snippets integrated with auto-completer
Code Intelligence
Static and runtime code analysis
Goto-definition
Source index menus
Auto-indent
Converts indents and EOL on paste
Code-aware line rewrapping
Supports PEP 484 and 526 type hints
Typeshed integration Black, YAPF, and PEP 8 Reformatting
Detect sys.path changes in main debug file
Auto-completion for Python and extension modules
Quick keyboard navigation to files
Find symbol in current file
Enhanced auto-completion for PyQt, PySide, and wx
Python Word list driven auto-completion for other file types
Indentation translator
Call tips & documentation (Source Assistant)
Renders PEP 287 docstring
Class browser Code warnings and code quality management
Module browser
Current file browser
Links to docs.python.org
Find points of use
Find symbol in project
Refactoring Optional
Turbo completion mode for Python
Debugger
GUI, Web, and embedded debugging
Step into, over, and out
Clickable exception traceback
View stack, locals/globals, and return value
Array and data frame viewer
Integrated debug process I/O
Native console I/O option
Debug in Python
Shell Debug with python -m
Multi-threaded debugging
Debug value tooltips
Detect unhandled exceptions
Alter debug data values
Launch Configurations
Named Entry Points
Interactive Debug Console with code intelligence
Multi-process debugging
Automatic child process debugging
Move Program Counter
Watch values and expressions
Track values by reference
Conditional breakpoints
Shift-Space to show all debug values
Ignore-counted breakpoints
Enable/disable breakpoints
Breakpoint manager
Seamless remote debugging
Recursive debugging
Process attach/detach
Inspect sys.modules
Debug Django templates
matplotlib mainloop support
Unit Testing
Select test files by pattern or name
Run tests and view results
Debug tests
Supports unittest, pytest, doctest, nose, and Django tests
Persists test results in the project
Collect and display code coverage
Invalidate test results based on code coverage
Optional concurrent execution of tests
Save/Load Test results
Copy result summary to clipboard
Revision Control
Subversion integration
CVS integration
Mercurial integration
Git integration
Perforce integration
Diff and view working copy status
Log, blame/praise
Commit, update, revert
Push, pull, rebase
Create and switch branches
Stash/shelve
Diff/Merge tool
Search Interfaces
Basic search
Toolbar quick search
Search in selection
Search result callouts on editor
Keyboard-driven mini-search
Project-wide search
Regex and wild card search
Search Wing documentation
Search on disk
Project Manager
Create Projects
Configure environment
Work with virtualenvs
Work with Anaconda environments
Add files or directories
Auto-updates with disk contents
File management in project view
Configure Python version and path
Finds PEP 514 Python installations
Named file sets
Assistance for Django, Jupyter, Flask, PyQt, Blender, PyXLL & many others
Create new directory with project
Clone from revision control repository
Create environments with virtualenv, Poetry, pipenv, and conda
Create Docker containers
Package management with pip, Poetry, pipenv, and conda Remote development to Linux and macOS Remote development to Raspberry Pi
Remote development to AWS
Remote development to Vagrant
Remote development to Windows Subsystem for Linux
Work with Docker and Docker Compose
Work with LXC/LXD Containers
Container management tool
Line ending and indent policies
Other Features
Debuggable Python shell with code intelligence
Customizable user interface layout and colors
Create multiple tool instances
Drag and drop tools and editors
Integrated documentation, How-Tos, and tutorial
Supports most versions of CPython
Works with Anaconda, ActivePython, and Enthought Python
Supports Stackless Python
Supports 32-bit and 64-bit Python builds
Supports debug builds of Python
Supports cygwin Python
Supports code in zip archives, eggs, and buildout
Supports virtualenv
High-level configuration menu
Magnified presentation mode
Keyboard-navigable user interface
Integrated feedback / bug reporting
Automatic update manager
Supports high DPI displays
Native build for Apple Silicon (M1)
Perspectives
OS commands tool
Work with Docker, Docker Compose, Vagrant, WSL and other containers
Code warnings with PyLint, Ruff, pep8, mypy, and flake8
Imports tool
Extend IDE with Python scripting
Available product source code
Wing 9 is available for Microsoft Windows, Linux, and macOS. Some additional platforms and devices are supported through remote development in Wing Pro only.
Windows
Wing runs on Windows 10+ for 64-bit Intel processors. Windows 8 may work in some cases but is not recommended or supported. Earlier versions of Windows will not work.
Both 32-bit and 64-bit Python will work with Wing on Windows.
Mac
Wing runs on macOS 10.15+ as a notarized native application, both on Intel and Apple Silicon (M1+) processors.
Only 64-bit Python will work with Wing on macOS.
Linux
Wing runs on 64-bit Intel Linux versions with glibc version 2.17 or later (such as Ubuntu 14.04+, CentOS 7+, Kali 2+, and Fedora 20+). It requires libraries that are typically installed for a graphical desktop environment including libX11, libxcb, libxcb-xkb, libglib, and libexpat. It also requires an X windows server with the X keyboard extension.
Both 32-bit and 64-bit Python will work with Wing on Linux.
Remote Development
Wing Pro's remote development features are fully supported on the same platforms as those listed for the IDE above, with the following additions:
- 32-bit and 64-bit Intel Linux systems that are compatible with the manylinux1 policy as defined in PEP 513 -- glibc version 2.5 or later (such as CentOS and RHEL 5.5+, Ubuntu 9+, and Debian 5.0+)
- ARMv6 and ARMv7 Linux running on Raspberry Pi or other hardware -- glibc 2.19 and later
Partial support for remote development is available on all other systems that can be accessed via SSH, as described in Manually Installing the Remote Agent.