Wing Pro Reference Manual
This manual documents the entire feature set of Wing Pro, which is a Python IDE designed for professional developers.
It covers installation, customization, setting up a project, package management, editing, code warnings, refactoring, comparing files and directories, navigating source code, using the integrated Python shell, executing operating system commands, unit testing, debugging, version control, source code analysis, remote development, and extending the IDE with user-defined scripts and plugins.
Trouble-shooting information is also included, for installation and usage problems, as well as a complete reference for Wing Pro's preferences, command set, and available key bindings.
If you are looking for a gentler introduction to Wing's feature set, try the Tutorial in Wing's Help menu. A more concise overview of Wing's features is also available in the Quick Start Guide.
Our How-Tos explain how to use Wing with specific Python frameworks for web and GUI development, 2D and 3D modeling, rendering, and compositing applications, matplotlib, Raspberry Pi, and other Python-based libraries and tools.
A collection of Wing Tips, available on our website and by weekly email subscription, provides additional tips and tricks for using Wing productively.
Wingware, the feather logo, Wing Python IDE, Wing Pro, Wing Personal, Wing 101, Wing IDE, Wing IDE 101, Wing IDE Personal, Wing IDE Professional, Wing IDE Pro, Wing Debugger, and "The Intelligent Development Environment for Python" are trademarks or registered trademarks of Wingware in the United States and other countries.
Disclaimers: The information contained in this document is subject to change without notice. Wingware shall not be liable for technical or editorial errors or omissions contained in this document; nor for incidental or consequential damages resulting from furnishing, performance, or use of this material.
Hardware and software products mentioned herein are named for identification purposes only and may be trademarks of their respective owners.
Copyright (c) 1999-2024 by Wingware. All rights reserved.
Wingware P.O. Box 400527 Cambridge, MA 02140-0006 United States of America
Section Contents
1.0. Product Levels
1.1. Licenses
1.2. Supported Platforms
1.3. Supported Python versions
1.4. Technical Support
1.5. Prerequisites for Installation
1.6. Installing Wing
1.7. Running Wing
1.8. Installing Your License
1.9. Settings Directory
1.10. Upgrading
1.10.0. Migrating From Older Versions
1.10.1. Fixing a Failed Upgrade
1.11. Installation Details and Options
1.11.0. Linux Installation Notes
1.11.1. Remote Display on Linux
1.11.2. Source Code Installation
1.12. Backing Up and Sharing Settings
1.13. Removing Wing
1.14. Command Line Usage
Customization
2.0. High Level Configuration Options
2.1. User Interface Options
2.1.0. Display Style and Colors
2.1.1. Windowing Policies
2.1.2. User Interface Layout
2.1.3. Text Font and Size
2.2. Keyboard Personalities
2.2.0. Key Bindings
2.2.1. Key Maps
2.2.2. Key Names
2.3. Preferences
2.3.0. Preferences File Layers
2.3.1. Preferences File Format
2.4. Custom Syntax Coloring
2.5. Perspectives
2.6. File Filters
Project Manager
3.0. Creating a Project
3.0.0. Creating Python Environments
3.0.1. About Project Configuration
3.1. Moving Projects
3.2. Display Options
3.3. Opening Files
3.4. File Operations
3.5. Creating, Renaming, and Deleting Files
3.6. Project Properties
3.6.0. Environment Variable Expansion
3.7. File Properties
3.8. Sharing Projects
3.9. Launch Configurations
Package Manager
4.0. Package Management Operations
4.1. Package Manager Options
4.2. Package Management with Poetry
4.3. Package Management with pipenv
4.4. Package Management with conda
4.5. Package Management Security
Source Code Editor
5.0. Opening, Creating, and Closing Files
5.1. File Status and Read-Only Files
5.2. Transient, Sticky, and Locked Editors
5.3. Editor Context Menu
5.4. Navigating Source
5.5. Source Assistant
5.6. Folding
5.7. Bookmarks
5.8. Syntax Coloring
5.9. Selecting Text
5.9.0. Multiple Selections
5.10. Copy/Paste
5.11. Auto-completion
5.11.0. Turbo Completion Mode for Python
5.11.1. Auto-completion Icons
5.11.2. How Auto-completion Works
5.12. Auto-Editing
5.13. Auto-Reformatting
5.13.0. PEP 8 Reformatting Options
5.13.1. Black Formatting Options
5.13.2. Ruff Formatting Options
5.13.3. YAPF Formatting Options
5.13.4. Other Reformatters
5.14. Code Snippets
5.14.0. Snippet Syntax
5.14.1. Snippets Directory Layout
5.15. Indentation
5.15.0. How Indent Style is Determined
5.15.1. Indent Guides, Policies, and Warnings
5.15.2. Auto-Indent
5.15.3. The Tab Key
5.15.4. Adjusting Indentation
5.15.5. Indentation Tool
5.16. Keyboard Macros
5.17. Auto-Reloading Changed Files
5.18. Auto-Save
5.19. File Sets
5.20. Other Editor Features
Search and Replace
6.0. Toolbar Quick Search
6.1. Keyboard-Driven Search and Replace
6.2. Search Tool
6.3. Search in Files Tool
6.4. Find Points of Use
6.5. Wildcard Search Syntax
Code Warnings and Quality Inspection
7.0. Code Warnings Tool
7.1. Warnings on the Editor
7.2. Warnings Types
7.3. Advanced Configuration
7.4. External Code Quality Checkers
Refactoring
8.0. Rename Symbol
8.1. Move Symbol
8.2. Delete Symbol
8.3. Extract Function / Method
8.4. Introduce Variable
8.5. Add Import Statement
8.6. Rename Current Module
8.7. Symbol to *
8.8. Imports Tool
AI Assisted Development
9.0. AI Suggested Code Completion
9.1. AI Driven Code Refactoring
9.2. Description-Driven Development
9.3. AI Chat Assistant
9.4. Configuring the AI Provider
9.5. AI Request Context
9.6. Improving Results Obtained from AI Assisted Development
9.7. Managing Cost
9.8. AI Assisted Development Privacy and Data Protection
Difference and Merge
Source Code Browser
11.0. Display Choices
11.1. Symbol Types
11.2. Display Filters
11.3. Sorting the Display
11.4. Navigating the Views
Integrated Python Shell
12.0. Python Shell Environment
12.1. Active Ranges in the Python Shell
12.2. Debugging Code in the Python Shell
12.3. Python Shell Options
OS Commands Tool
13.0. OS Command Properties
13.1. Sharing Projects with OS Commands
Unit Testing
14.0. Project Test Files
14.1. Running and Debugging Tests
14.2. Code Coverage
14.2.0. Coverage Configuration
14.2.1. Code Coverage Environments
14.2.2. Coverage Data Files
14.2.3. How Code Coverage Works
14.3. Running unittest Tests from the Command Line
Debugger
15.0. Debugger Quick Start
15.1. Debug Environment
15.2. Named Entry Points
15.3. Specifying Main Entry Point
15.4. Setting Breakpoints
15.5. Starting Debug
15.6. Debugger Status
15.7. Flow Control
15.8. Viewing the Stack
15.9. Viewing Debug Data
15.9.0. Stack Data Tool
15.9.0.0. Array, Data Frame, and Textual Data Views
15.9.0.1. Stack Data Options Menu
15.9.0.2. Stack Data Context Menu
15.9.0.3. Filtering Value Display
15.9.0.4. Advanced Data Display
15.9.1. Viewing Data on the Editor
15.9.2. Watching Values
15.9.3. Evaluating Expressions
15.9.4. Problems Handling Values
15.10. Debug Process I/O
15.10.0. External I/O Consoles
15.10.1. Debug Process I/O Multiplexing
15.11. Interactive Debug Console
15.11.0. Managing Program State
15.11.1. Debugging Code Recursively
15.11.2. Debug Console Options
15.11.3. Debug Console Limitations
15.12. Multi-Process Debugging
15.12.0. Debugging Child Processes
15.12.1. Process Control
15.13. Debugging Multi-threaded Code
15.14. Managing Exceptions
15.15. Running Without Debug
Advanced Debugging Topics
16.0. Debugging Externally Launched Code
16.0.0. Debugging Externally Launched Remote Code
16.0.1. Externally Launched Process Behavior
16.0.2. Debugging Embedded Python Code
16.0.3. Configuring wingdbstub
16.0.4. Starting Debug Automatically Using sitecustomize
16.0.5. Debugger API
16.1. Manually Configured Remote Debugging
16.1.0. Manually Configuring SSH Tunneling
16.1.1. File Location Maps
16.1.1.0. Manually Configured File Location Maps
16.1.1.1. Manually Configured File Location Map Examples
16.1.2. Manually Configured Remote Debugging Example
16.1.3. Manually Installing the Debugger
16.2. Using wingdb to Initiate Debug
16.3. Attaching and Detaching
16.4. Debugging C/C++ and Python Together
16.4.0. Debugging Extension Modules on Linux/Unix
16.5. Debugging Non-Python Mainloops
16.6. Debugging Linux Code with XGrab* Calls
16.7. Debugger Limitations
Integrated Version Control
17.0. Setting Up Version Control in Wing
17.1. Version Control Tools
17.2. Common Version Control Operations
17.3. CVS
17.4. Git
17.5. Mercurial
17.6. Perforce
17.7. Subversion
Source Code Analysis
18.0. How Analysis Works
18.1. Helping Wing Analyze Code
18.1.0. Setting the Correct Python Environment
18.1.1. Using Live Runtime State
18.1.2. Adding Type Hints
18.1.3. Defining Interface Files
18.1.4. Helping Wing Analyze Cython Code
18.2. Analysis Disk Cache
Working with Containers and Clusters
19.0. Individual Containers
19.1. Working with Clusters
19.2. Containers Tool
Remote Development
20.0. Setting up SSH for Remote Development
20.1. Configuring Remote Hosts
20.2. Setting up Remote Projects
20.3. Remote Development Features
20.4. Remote Agent User Settings
20.5. Specifying Environment for the Remote Python
20.6. Manually Installing the Remote Agent
20.7. SSH Setup Details
20.7.0. Working With OpenSSH
20.7.1. Working With PuTTY
20.7.2. Working With Wing's Built-In SSH Implementation
20.7.3. Enabling Windows 10 OpenSSH Client
20.8. Trouble-Shooting Remote Development Problems
Scripting and Extending Wing
21.0. Scripting Example Tutorial
21.1. Overview of the Scripting Framework
21.2. Scripting API
21.3. Script Syntax
21.3.0. Script Attributes
21.3.1. Adding Scripts to the GUI
21.3.2. Argument Collection
21.3.3. Importing Other Modules
21.3.4. Internationalization and Localization
21.3.5. Plugin Extensions
21.4. Debugging Extension Scripts
21.5. Advanced Scripting
21.6. API Reference
21.6.0. API Reference - Utilities
21.6.1. API Reference - Application
21.6.2. API Reference - Editor
21.6.3. API Reference - Project
21.6.4. API Reference - Debugger
21.6.5. API Reference - Search
21.6.6. API Reference - Analysis
IDE Plugins
22.0. Container Plugins
22.1. Cluster Plugins
Trouble-shooting Guide
23.0. Trouble-shooting Failure to Start
23.1. Speeding up Wing
23.2. Trouble-shooting Failure to Debug
23.2.0. Failure to Start Debug
23.2.1. Failure to Stop on Breakpoints or Show Source Code
23.2.2. Failure to Stop on Exceptions
23.2.3. Extra Debugger Exceptions
23.3. Trouble-shooting Other Known Problems
23.4. Obtaining Diagnostic Output
Preferences Reference
Command Reference
25.0. Top-level Commands
25.1. Project Manager Commands
25.2. Editor Commands
25.3. Search Manager Commands
25.4. Refactoring Commands
25.5. Unit Testing Commands
25.6. Version Control Commands
25.7. Debugger Commands
25.8. Script-provided Add-on Commands
Key Binding Reference
26.0. Wing Personality
26.1. Emacs Personality
26.2. VI/VIM Personality
26.3. Visual Studio Personality
26.4. macOS Personality
26.5. Eclipse Personality
26.6. Brief Personality
License Information
27.0. Wing Pro Software License
27.1. Open Source License Information
27.2. Privacy Policy