Wing IDE Python Code Intelligence
"The autocompletion in Python code is so brilliant I think it's reading my mind" --Grzegorz Nosek
Wing IDE understands your Python code and puts context-appropriate knowledge at your fingertips as you work in the editor, debugger, and integrated Python Shell.
Auto-completer and Source Assistant
Built on a powerful Python code analysis and type inferencing engine, Wing's auto-completer and Source Assistant provide relevant symbol completion, calltips, and documentation as you work. Using the auto-completer reduces your typing burden and mistakes. The completion options and calltips are always context-appropriate and update immediately as code is edited. Wing offers completions and calltips in the editor, the integrated Python Shell, and the Debug Probe.
Error and warning indicators on your source code flag syntactical, indentation, and other potential problems as you type. This increases the chances of writing correct code the first time around.
To see the structure of a particular file or to browse through your entire project by module or class hierarchy, select the Source Browser from the Tools menu. Choices for filtering and sorting the symbol list are provided in the Options menus.
Source Index Menus
Wing displays nested source index menus at the top of each editor that contains a Python file. The first of these lists the functions and classes at the top level of the file. The second and later ones enumerate the contents of the current scope, listing methods or nested functions and classes.
Goto and Return from Definition
Wing makes it easy to jump to the point of definition of a symbol in Python source code by ctrl-clicking on it, pressing F4, or right clicking and selecting Goto Definition. To return from the point of definition just click on the back button in the top left of the editor or press Alt-Left. The history buttons in the editor work somewhat like browser forward/back buttons and are useful in traversing recently visited points in your source code.
Wing provides a Uses tool for displaying and browsing through all the points of use of a selected symbol in the source code. This works with local symbols, class or module level symbols, and across imports and subclasses. Aggressive static analysis and type inferencing makes it possible to omit like-named but otherwise distinct symbols from the display.
Static and Runtime Analysis
Wing implements two levels of Python code analysis and type inferencing: Static analysis of source code and dynamic analysis of runtime state associated with code, in the integrated Python Shell and whenever the debugger is active. Since Python is a dynamic runtime-typed language, it can be a challenge to determine the type of source symbols in static analysis. Runtime analysis is an alternative available for code that is on the stack whenever the debugger is active. Another way to assist Wing in type inferencing is to sprinkle isinstance declarations into your code.