# Plug-in Extensions

Extensions are the central mechanism for contributing behavior to the platform. Unless your plug-in is a documentation plug-in or a simple Java API library made available to other plug-ins, new behavior is contributed as an extension.

The Extensions page is where you can add, remove and modify the extensions your plug-in contributes to the platform.

## All Extensions

In the All Extensions section, press Add... to view all the available extension points that you can extend.

Each extension point comes with an XML schema specifying its grammar. When you select a new extension, PDE extracts the grammar for the corresponding extension point and populates the context menu of each element selected in the All Extensions viewer with a list of valid child elements that you can create.

For each selected element in the body of an extension, PDE populates the Extension Element Details section with all the valid attributes for that element. Required attributes are denoted with an asterisk.

When you hover your mouse over an attribute name, a tool tip box appears showing the description of that attribute.

When an attribute expects the name of a Java class as a value (e.g. the class attribute above), clicking on the name of the attribute will open the Java file specified - if it exists. If the file does not exist, then clicking on the class link will bring up the JDT New Class wizard to create a new Java class on the fly.

Some extension elements do not have attributes. Instead they require a description which can be specified in the Body Text section: