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-2022 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 pipenv
4.3. Package Management with conda
4.4. 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. YAPF Formatting Options
5.13.3. 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. Extract Function / Method
8.3. Delete Symbol
8.4. Introduce Variable
8.5. Rename Current Module
8.6. Symbol to *
Difference and Merge
Source Code Browser
10.0. Display Choices
10.1. Symbol Types
10.2. Display Filters
10.3. Sorting the Display
10.4. Navigating the Views
Integrated Python Shell
11.0. Python Shell Environment
11.1. Active Ranges in the Python Shell
11.2. Debugging Code in the Python Shell
11.3. Python Shell Options
OS Commands Tool
12.0. OS Command Properties
12.1. Sharing Projects with OS Commands
Unit Testing
13.0. Project Test Files
13.1. Running and Debugging Tests
13.2. Running unittest Tests from the Command Line
Debugger
14.0. Debugger Quick Start
14.1. Debug Environment
14.2. Named Entry Points
14.3. Specifying Main Entry Point
14.4. Setting Breakpoints
14.5. Starting Debug
14.6. Debugger Status
14.7. Flow Control
14.8. Viewing the Stack
14.9. Viewing Debug Data
14.9.0. Stack Data Tool
14.9.0.0. Array, Data Frame, and Textual Data Views
14.9.0.1. Stack Data Options Menu
14.9.0.2. Stack Data Context Menu
14.9.0.3. Filtering Value Display
14.9.0.4. Advanced Data Display
14.9.1. Viewing Data on the Editor
14.9.2. Watching Values
14.9.3. Evaluating Expressions
14.9.4. Problems Handling Values
14.10. Debug Process I/O
14.10.0. External I/O Consoles
14.10.1. Debug Process I/O Multiplexing
14.11. Interactive Debug Console
14.11.0. Managing Program State
14.11.1. Debugging Code Recursively
14.11.2. Debug Console Options
14.11.3. Debug Console Limitations
14.12. Multi-Process Debugging
14.12.0. Debugging Child Processes
14.12.1. Process Control
14.13. Debugging Multi-threaded Code
14.14. Managing Exceptions
14.15. Running Without Debug
Advanced Debugging Topics
15.0. Debugging Externally Launched Code
15.0.0. Debugging Externally Launched Remote Code
15.0.1. Externally Launched Process Behavior
15.0.2. Debugging Embedded Python Code
15.0.3. Configuring wingdbstub
15.0.4. Starting Debug Automatically Using sitecustomize
15.0.5. Debugger API
15.1. Manually Configured Remote Debugging
15.1.0. Manually Configuring SSH Tunneling
15.1.1. File Location Maps
15.1.1.0. Manually Configured File Location Maps
15.1.1.1. Manually Configured File Location Map Examples
15.1.2. Manually Configured Remote Debugging Example
15.1.3. Manually Installing the Debugger
15.2. Using wingdb to Initiate Debug
15.3. Attaching and Detaching
15.4. Debugging C/C++ and Python Together
15.4.0. Debugging Extension Modules on Linux/Unix
15.5. Debugging Non-Python Mainloops
15.6. Debugging Linux Code with XGrab* Calls
15.7. Debugger Limitations
Integrated Version Control
16.0. Setting Up Version Control in Wing
16.1. Version Control Tools
16.2. Common Version Control Operations
16.3. CVS
16.4. Git
16.5. Mercurial
16.6. Perforce
16.7. Subversion
Source Code Analysis
17.0. How Analysis Works
17.1. Helping Wing Analyze Code
17.1.0. Setting the Correct Python Environment
17.1.1. Using Live Runtime State
17.1.2. Adding Type Hints
17.1.3. Defining Interface Files
17.1.4. Helping Wing Analyze Cython Code
17.2. Analysis Disk Cache
Working with Containers and Clusters
18.0. Individual Containers
18.1. Working with Clusters
18.2. Containers Tool
Remote Development
19.0. Setting up SSH for Remote Development
19.1. Configuring Remote Hosts
19.2. Setting up Remote Projects
19.3. Remote Development Features
19.4. Remote Agent User Settings
19.5. Specifying Environment for the Remote Python
19.6. Manually Installing the Remote Agent
19.7. SSH Setup Details
19.7.0. Working With OpenSSH
19.7.1. Working With PuTTY
19.7.2. Working With Wing's Built-In SSH Implementation
19.7.3. Enabling Windows 10 OpenSSH Client
Scripting and Extending Wing
20.0. Scripting Example Tutorial
20.1. Overview of the Scripting Framework
20.2. Scripting API
20.3. Script Syntax
20.3.0. Script Attributes
20.3.1. Adding Scripts to the GUI
20.3.2. Argument Collection
20.3.3. Importing Other Modules
20.3.4. Internationalization and Localization
20.3.5. Plugin Extensions
20.4. Debugging Extension Scripts
20.5. Advanced Scripting
20.6. API Reference
20.6.0. API Reference - Utilities
20.6.1. API Reference - Application
20.6.2. API Reference - Editor
20.6.3. API Reference - Project
20.6.4. API Reference - Debugger
20.6.5. API Reference - Search
20.6.6. API Reference - Analysis
IDE Plugins
21.0. Container Plugins
21.1. Cluster Plugins
Trouble-shooting Guide
22.0. Trouble-shooting Failure to Start
22.1. Speeding up Wing
22.2. Trouble-shooting Failure to Debug
22.2.0. Failure to Start Debug
22.2.1. Failure to Stop on Breakpoints or Show Source Code
22.2.2. Failure to Stop on Exceptions
22.2.3. Extra Debugger Exceptions
22.3. Trouble-shooting Other Known Problems
22.4. Obtaining Diagnostic Output
Preferences Reference
Command Reference
24.0. Top-level Commands
24.1. Project Manager Commands
24.2. Editor Commands
24.3. Search Manager Commands
24.4. Refactoring Commands
24.5. Unit Testing Commands
24.6. Version Control Commands
24.7. Debugger Commands
24.8. Script-provided Add-on Commands
Key Binding Reference
25.0. Wing Personality
25.1. Emacs Personality
25.2. VI/VIM Personality
25.3. Visual Studio Personality
25.4. macOS Personality
25.5. Eclipse Personality
25.6. Brief Personality
License Information
26.0. Wing Pro Software License
26.1. Open Source License Information
26.2. Privacy Policy