<type>documentation</type>
<domain>plugins</domain>
<id>plugins</id>
<title>IDE Plugins</title>
<date>$Date$</date>
<version>$Revision$</version>
<product>pro+</product>

Wing Pro contains some pluggable sub-systems that may be extended by the user, by writing
Python code to provide specific defined functionality for that sub-system. 

Plugins are written as classes that override abstract methods in a base class for each
type of plugin. They are placed into the directory ``plugins``, either within the Wing
installation directory (inside ``Contents/Resources`` in the macOS bundle) or in the
`user settings directory <ref:install/user-settings-dir>`__. A plugin found within the
user settings directory will override a like-named plugin in the installation directory.

The plugins directories area is organized by type of plugin, with one sub-directory for
each type. The files that define the API for each plugin type are named ``api.py`` and
found in subdirectories of ``src/plugins`` in the Wing installation directory. A plugin
implementation can import the API with ``from plugins.<type> import api`` where ``<type>``
is the plugin type.

This feature is currently limited to the sub-systems documented in the following 
sub-sections.
