Wing Pro Reference Manual

Index of All Documentation »


Wing Pro Screenshot

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.

Wing Personal and Wing 101 are free versions of Wing that omit many of the features documented here. In those Python IDEs, the Wing Manual in the Help menu is an appropriately abridged version of this manual. Compare Products




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

Introduction

    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