Glossary · 4 · Platform SDKs and extensions
Extension point
Also known as: Contribution point, Extensibility point
In software engineering, an extension point is a defined place in a host application where extensions can contribute functionality, such as commands, views, file types or processing steps; the host declares the extension point and its contract, and extensions declare their contributions to it.
- Platform SDK
- Extension models
In one sentence
An extension point is a defined place in a host application where extensions can contribute functionality under a contract set by the host.
Example
An editor declares an extension point for formatters; an extension registers a formatter for one file type in its manifest, and the editor calls it whenever a user formats such a file.
How it applies
- Platform SDKs: Extension points are the core of a platform SDK: they define what an extension may add and where. The Eclipse platform documents its extension points by identifier (for example org.eclipse.core.runtime.applications); Visual Studio Code calls them contribution points, declared as JSON in the contributes field of the extension manifest.
- Control flow: The host, not the extension, decides when contributed code runs, an instance of inversion of control typical of software frameworks. The extension point fixes the interface, the data passed and the lifecycle.
- Stability: An extension point is a public interface contract. Changing or removing it breaks every extension that uses it, so hosts version extension points and announce deprecations like any breaking change.
- Developer and publishing SDKs: Cloud services offer comparable hooks (webhooks, custom actions), and publishing engines such as DITA-OT offer plug-in extension points into their processing pipeline.
- Documentation: Reference documentation lists every extension point with its identifier, schema of the contribution, when it is called, available context and the host version that introduced it.
Extension point vs. plug-in
The extension point belongs to the host and describes what can be extended. A plug-in (or extension) belongs to a third party and supplies the contribution. One extension point can receive contributions from many plug-ins, and one plug-in can contribute to several extension points.
External references
- Eclipse Foundation: Platform Extension Points
- Microsoft, Visual Studio Code: Contribution Points