Eclipse is an OSGi extensible platform for tool integration. The extensions to Eclipse are Java plug-ins. Use this tag to ask about developing Eclipse plug-ins. Note that asking for plug-in recommendations is off-topic.
Eclipse isn't a single monolithic program, but rather a small kernel containing a plug-in loader surrounded by a multitude of Java plug-ins. This small kernel is an implementation of the OSGi R4 specification and provides an environment in which plug-ins execute.
Each plug-in contributes to the whole in a structured manner, may rely on services provided by another plug-in, and each may in turn provide services on which yet other plug-ins may rely.
Plug-ins allow the extension of Eclipse functionality in various ways:
- Providing additional UI elements,
- allowing working with new technologies,
- enhancing an existing plugin functionality, and much more.
The Eclipse source code is readily available and can be integrated with Eclipse to make it easy to debug plug-ins.