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, editing, searching, 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, PyLint integration, remote development, and extending the IDE with user-defined scripts.
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.
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-2021 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.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
Source Code Editor
4.0. Opening, Creating, and Closing Files
4.1. File Status and Read-Only Files
4.2. Transient, Sticky, and Locked Editors
4.3. Editor Context Menu
4.4. Navigating Source
4.5. Source Assistant
4.6. Folding
4.7. Bookmarks
4.8. Syntax Coloring
4.9. Selecting Text
4.9.0. Multiple Selections
4.10. Copy/Paste
4.11. Auto-completion
4.11.0. Turbo Completion Mode for Python
4.11.1. Auto-completion Icons
4.11.2. How Auto-completion Works
4.12. Auto-Editing
4.13. Auto-Reformatting
4.13.0. PEP 8 Reformatting Options
4.13.1. Black Formatting Options
4.13.2. YAPF Formatting Options
4.13.3. Other Reformatters
4.14. Code Snippets
4.14.0. Snippet Syntax
4.14.1. Snippets Directory Layout
4.15. Indentation
4.15.0. How Indent Style is Determined
4.15.1. Indent Guides, Policies, and Warnings
4.15.2. Auto-Indent
4.15.3. The Tab Key
4.15.4. Adjusting Indentation
4.15.5. Indentation Tool
4.16. Keyboard Macros
4.17. Auto-Reloading Changed Files
4.18. Auto-Save
4.19. File Sets
4.20. Other Editor Features
Search and Replace
5.0. Toolbar Quick Search
5.1. Keyboard-Driven Search and Replace
5.2. Search Tool
5.3. Search in Files Tool
5.4. Find Points of Use
5.5. Wildcard Search Syntax
Code Warnings and Quality Inspection
6.0. Code Warnings Tool
6.1. Warnings on the Editor
6.2. Warnings Types
6.3. Advanced Configuration
6.4. External Code Quality Checkers
Refactoring
7.0. Rename Symbol
7.1. Move Symbol
7.2. Extract Function / Method
7.3. Introduce Variable
7.4. Symbol to *
Difference and Merge
Source Code Browser
9.0. Display Choices
9.1. Symbol Types
9.2. Display Filters
9.3. Sorting the Display
9.4. Navigating the Views
Integrated Python Shell
10.0. Python Shell Environment
10.1. Active Ranges in the Python Shell
10.2. Debugging Code in the Python Shell
10.3. Python Shell Options
OS Commands Tool
11.0. OS Command Properties
11.1. Sharing Projects with OS Commands
Unit Testing
12.0. Project Test Files
12.1. Running and Debugging Tests
12.2. Running unittest Tests from the Command Line
Debugger
13.0. Debugger Quick Start
13.1. Debug Environment
13.2. Named Entry Points
13.3. Specifying Main Entry Point
13.4. Setting Breakpoints
13.5. Starting Debug
13.6. Debugger Status
13.7. Flow Control
13.8. Viewing the Stack
13.9. Viewing Debug Data
13.9.0. Stack Data Tool
13.9.0.0. Array, Data Frame, and Textual Data Views
13.9.0.1. Stack Data Options Menu
13.9.0.2. Stack Data Context Menu
13.9.0.3. Filtering Value Display
13.9.0.4. Advanced Data Display
13.9.1. Viewing Data on the Editor
13.9.2. Watching Values
13.9.3. Evaluating Expressions
13.9.4. Problems Handling Values
13.10. Debug Process I/O
13.10.0. External I/O Consoles
13.10.1. Debug Process I/O Multiplexing
13.11. Interactive Debug Console
13.11.0. Managing Program State
13.11.1. Debugging Code Recursively
13.11.2. Debug Console Options
13.11.3. Debug Console Limitations
13.12. Multi-Process Debugging
13.12.0. Debugging Child Processes
13.12.1. Process Control
13.13. Debugging Multi-threaded Code
13.14. Managing Exceptions
13.15. Running Without Debug
Advanced Debugging Topics
14.0. Debugging Externally Launched Code
14.0.0. Debugging Externally Launched Remote Code
14.0.1. Externally Launched Process Behavior
14.0.2. Debugging Embedded Python Code
14.0.3. Configuring wingdbstub
14.0.4. Debugger API
14.1. Manually Configured Remote Debugging
14.1.0. Manually Configuring SSH Tunneling
14.1.1. File Location Maps
14.1.1.0. Manually Configured File Location Maps
14.1.1.1. Manually Configured File Location Map Examples
14.1.2. Manually Configured Remote Debugging Example
14.1.3. Manually Installing the Debugger
14.2. Using wingdb to Initiate Debug
14.3. Attaching and Detaching
14.4. Debugging C/C++ and Python Together
14.4.0. Debugging Extension Modules on Linux/Unix
14.5. Debugging Non-Python Mainloops
14.6. Debugging Code with XGrab* Calls
14.7. Debugger Limitations
Integrated Version Control
15.0. Setting Up Version Control in Wing
15.1. Version Control Tools
15.2. Common Version Control Operations
15.3. Bazaar
15.4. CVS
15.5. Git
15.6. Mercurial
15.7. Perforce
15.8. Subversion
Source Code Analysis
16.0. How Analysis Works
16.1. Helping Wing Analyze Code
16.1.0. Setting the Correct Python Environment
16.1.1. Using Live Runtime State
16.1.2. Adding Type Hints
16.1.3. Defining Interface Files
16.1.4. Helping Wing Analyze Cython Code
16.2. Analysis Disk Cache
Remote Development
17.0. Setting up SSH for Remote Development
17.1. Configuring Remote Hosts
17.2. Setting up Remote Projects
17.3. Remote Development Features
17.4. Remote Agent User Settings
17.5. Specifying Environment for the Remote Python
17.6. Manually Installing the Remote Agent
17.7. SSH Setup Details
17.7.0. Working With OpenSSH
17.7.1. Working With PuTTY
17.7.2. Enabling Windows 10 OpenSSH Client
Scripting and Extending Wing
18.0. Scripting Example Tutorial
18.1. Overview of the Scripting Framework
18.2. Scripting API
18.3. Script Syntax
18.3.0. Script Attributes
18.3.1. Adding Scripts to the GUI
18.3.2. Argument Collection
18.3.3. Importing Other Modules
18.3.4. Internationalization and Localization
18.3.5. Plugins
18.4. Debugging Extension Scripts
18.5. Advanced Scripting
18.6. API Reference
18.6.0. API Reference - Utilities
18.6.1. API Reference - Application
18.6.2. API Reference - Editor
18.6.3. API Reference - Project
18.6.4. API Reference - Debugger
18.6.5. API Reference - Search
18.6.6. API Reference - Analysis
Trouble-shooting Guide
19.0. Trouble-shooting Failure to Start
19.1. Speeding up Wing
19.2. Trouble-shooting Failure to Debug
19.2.0. Failure to Start Debug
19.2.1. Failure to Stop on Breakpoints or Show Source Code
19.2.2. Failure to Stop on Exceptions
19.2.3. Extra Debugger Exceptions
19.3. Trouble-shooting Other Known Problems
19.4. Obtaining Diagnostic Output
Preferences Reference
Command Reference
21.0. Top-level Commands
21.1. Project Manager Commands
21.2. Editor Commands
21.3. Search Manager Commands
21.4. Refactoring Commands
21.5. Unit Testing Commands
21.6. Version Control Commands
21.7. Debugger Commands
21.8. Script-provided Add-on Commands
Key Binding Reference
22.0. Wing Personality
22.1. Emacs Personality
22.2. VI/VIM Personality
22.3. Visual Studio Personality
22.4. OS X Personality
22.5. Eclipse Personality
22.6. Brief Personality
License Information
23.0. Wing Pro Software License
23.1. Open Source License Information
23.2. Privacy Policy