Editing with Wing Pro

"The autocompletion in Python code is so brilliant I think it's reading my mind" --Grzegorz Nosek

Wing's intelligent editor makes Python coding fast and easy. Powerful static and runtime code analysis provide context-appropriate assistance and smart error checking throughout the editing experience. Emulation for vi, emacs, Visual Studio, Eclipse, MATLAB, and XCode make it easy to get started working with Wing.

Solid Editor Basics

Wing's editor provides a solid foundation for Python developers, with configurable tabs and splits, code folding, indentation assistance, visit history, error indicators, editor emulation and custom key bindings, multiple selections, auto-save, and many other features. The editor also supports over 80 other languages, including HTML, Javascript, C/C++, YAML, Mako, and many others.

Intelligent Auto-completion

Static and runtime analysis are combined to provide high quality context-appropriate auto-completion in the editor and integrated Python shells. Wing's Source Assistant continuously updates to display type information, inline documentation, call tips, and links into Python documentation for the code that you write or visit. To supplement its own code analysis, Wing can understand PEP 484 and PEP 526 type annotations and it uses typeshed for standard library and covered third party module analysis.

Error Detection and Code Quality Analysis

Wing's code warnings system provides early identification of coding errors, such as syntax errors, undefined variables and attributes, unresolvable imports, indentation errors, and unreachable code. Additional error detection and code quality inspection a may be obtained from external checkers, including pylint, pep8, mypy, and flake8. Code warnings can be managed by removing false positives and less useful warning types, and the resulting configuration may be shared with other projects and users.

Auto-editing

Invocation assistance auto-enters function and method arguments as you write code, allowing you to tab through the invocation to quickly and correctly place your arguments. Unchanged default arguments are automatically removed and the invocation is rewrapped accordingly. Other configurable auto-editing operations include auto-closing parentheses and quotes, auto-spacing optionally with PEP8 style, auto-fixup of out of order typing, and managing blocks as new code is entered.

Import Management

Wing can automatically add imports from the auto-completer, as you edit code, eliminating the need to move up and down in a file to add imports while writing new code. The Imports tool can be used to view all imports in a file and to identify and remove those that are unused anywhere in your code.

Refactoring

Refactoring is a way to quickly reorganize code without impacting its functionality. Wing supports renaming and moving point of definition of symbols, extracting a new function or method from existing code, introducing a variable for an existing expression, and changing symbol naming style.

Multi-selection

Quickly make multiple selections of the same string, within a block, scope, or file, or by clicking on the editor, in order to apply edits uniformly to all of the selections at once.

Code Snippets

Code snippets offered in the editor's auto-completer allow rapid entry of standard code templates and often-used structures. Fields in the snippets are entered by tabbing through the code. The same snippet can take different forms depending on the context from which it is invoked.

and Much More

Some of the many other editor features include bookmarks, macros, auto-reload of externally changed files, indentation conversion, keyboard-driven text and regular expression search and replace, line-oriented editing, brace matching, line numbering, unlimited depth undo, and optionally visible white space. Custom editor features can be added by writing Python scripts, which can appear in menus, the toolbar, or be bound to keys.