Wing 具備各大編譯器共通的功能,如VIM、Eclipse、Emacs、Visual Studio等,不但迅速上手、更容易跨平台使用。並具有強大的debugger、智慧的管理功能,讓互動式編譯Python的過程有效率、精準、又富有趣味。
- 迅速編碼:豐富的自動完成功能,容易搜尋的命令列
- 有效debug:游標追蹤式即時參照,修改建議
- 方便瀏覽:清楚的highlight功能,自動辨識不混淆
- 版本管理:有彈性並具有融合功能
- 自訂環境:設定key binding,選擇功能集,排列窗口
新版介紹
What's New in Wing Pro
Wing 10 adds AI assisted code suggestion and refactoring, support for Python 3.12 including faster debugging with the new PEP 669 low-impact monitoring API, Poetry for package management, Ruff for code warnings and reformatting, & 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.
AI Assisted Development
Wing Pro 10 takes advantage of recent advances in the capabilities of generative AI to provide powerful AI assisted development, including AI code suggestion, AI driven code refactoring, description-driven development, and AI chat. You can ask Wing to implement missing code at the current input position, use AI to refactor, enhance, or extend existing code by describing the changes that you want to make, or chat about code in order to understand, redesign, or extend it. Example requests include: "add a docstring to this method", "create unit tests for class A", "convert this into a Python generator", and "rewrite this threaded code to instead run asynchronously". Your role changes from writing code manually to directing an intelligent assistant capable of completing a wide range of programming tasks.
Python 3.11 and 3.12
Wing 10 adds support for Python 3.12, including (1) faster debugging with PEP 669 low impact monitoring API, (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 adds support for Poetry package management in the 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 & Reformatting
Wing 10 adds support for Ruff as an external code checker in the Code Warnings tool, accessed from the Tools menu. Ruff can also be used as a code reformatter in the Source > Reformatting menu group. 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
– Quick toggle between stack frames for innermost project and test files
– 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
– Improved Diff/Merge tool
– Improved auto-imports UI
Get More Done
Type less and let Wing worry about the details. Use AI to write & redesign your code. Work interactively in the live Python runtime. Easily navigate code and documentation.
Write Better Code
Avoid common errors and find problems early with assistance from Wing's deep Python code analysis. Keep code clean with smart refactoring, code inspection, and reformatting.
Find Bugs Faster
Debug any Python code. Inspect debug data and try out bug fixes interactively without restarting your app. Work locally or on a remote host, VM, or container.
AI Assisted Software Development
You can ask Wing to use generative AI to (1) implement missing code at the current input position, (2) refactor, rewrite, or extend existing code by describing the changes you want to make, (3) write entirely new code from a description of its intended functionality and design; and (4) chat in order to work through understanding and improving code. Examples requests include "convert this function into a Python generator", "rewrite this threaded code to instead run asynchronously", and "create unit tests for class A". Your role changes from writing code manually to directing an intelligent assistant capable of completing a wide range of programming tasks.
Powerful Interactive 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.
Remote and Container 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.
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, import management, refactoring, code folding, multi-selection, customizable code snippets, and much more. Wing can emulate vi, emacs, Eclipse, Visual Studio, XCode, and MATLAB.
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.
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. Wing can track and display code coverage for your unit tests, so that you know how well your tests are exercising your code. Coverage data is also used to determine when edits to your code invalidate previously collected test results.
Project Management
Wing's powerful project management capabilities work with Python environments managed by virtualenv, Poetry, 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.
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 Ruff, 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
- AI code suggestion
- AI code refactoring
- Description-driven development
- AI chat
- Inline code warnings
- Auto-editing
- Auto-import and import management
- Set and traverse bookmarks
- Keyboard and command macros
- Inline snippets integrated with auto-completer
- Multiple selections
- Code folding
- 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
Code Intelligence
- 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
- Quick keyboard navigation to files
- Find symbol in current file
- Enhanced auto-completion for PyQt, PySide, and wxPython
- Word list driven auto-completion for other file types
- Indentation translator
- Call tips & documentation (Source Assistant)
- Renders PEP 287 docstring
- Class browser
- 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
- Ruff, Black, YAPF, and PEP 8 Reformatting
- Detect sys.path changes in main debug file
- Auto-completion for Python and extension modules
Debugger
- 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
- Multi-threaded debugging
- Debug value tooltips
- Detect unhandled exceptions
- Alter debug data values
- Launch Configurations
- Named Entry Points
- 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
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
- Keyboard-driven mini-search
- Project-wide search
- Regex and wild card search
- Search Wing documentation
- Search on disk
- Basic search
- Toolbar quick search
- Search in selection
- Search result callouts on editor
Project Manager
- 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
- 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
Other Features
- 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
- Perspectives
- OS commands tool
- 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)
Wing 10 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.