Eclipse Extension Points

Eclipse Extension Points

Eclipse is one of the most popular and widely used developing platform. and the huge success of it lies in its extensibility. It is extensible through the means of extension points (well defined exposed places/hooks for others to provide extended functionality) and plugins ( providing extended functionality using existing extension points and optionally exposing new extension points). Eclipse itself is made up of many and many of plugins built around the small core runtime engine capable of dynamic discovery, loading, and running of plug-ins.

in this post i’m going to share few difficulty I faced when I started plugin development. After reading some introduction tutorials I wanted to know quickly which extension points I need to use for some particular tasks. Once we know the name of extension point we can find the details in official eclipse documentation (Extension Points Reference) or even better within platform itself (Plugin Development Environment) when trying to add an extension point it gives the description and sample implementation (if available) to understand.

Figure 1

in this post i will give you brief introduction regarding what are the extension points that you can use for your developments in eclipse. if you need more clearer idea about eclipse extensionpoits you can refer them through this link

figure 2

  1. base eclipse platform
  2. core run time engine provides extension point and plugin model
  3. for creating and managing resources
  4. define team programming model
  5. providing user interface for navigating the platform
  6. tools to create high level ui
  7. tools for creating low level ui
  8. providing help and other documents
  9. defines language independent debugging model
The various subsystems (on top of Platform Runtime) as described above define many extension points to provide the additional related functionality.

Below are the various components of the workbench UI.

figure 3
Now below describes the common functionality you want to extend/customize and which extensions points.

Add Views:

define additional views  for the workbench: org.eclipse.ui.views

Add Editors:

add new editors to the  workbench: org.eclipse.ui.editors

Add menus/buttons:

declare an abstract semantic behavior of an action (command) with optional default handler: org.eclipse.ui.commands

add menus, menu items and toolbar buttons in UI: org.eclipse.ui.menus

add specific handlers to a command: org.eclipse.ui.handlers

declare key bindings (or set of them called as schemes) to commands: org.eclipse.ui.bindings

Configure the launching of Applications:

define/configure a type for launching applications : org.eclipse.debug.core.launchConfigurationTypes

associate an image with a launch configuration type: org.eclipse.debug.ui.launchConfigurationTypeImages

define group of tabs for a launch configuration dialog: org.eclipse.debug.ui.launchConfigurationTabGroups

define shortcut for launching application based on current selection/ perspective: org.eclipse.debug.ui.launchShortcuts

Add resource markers:

add marker (additional information to tag to Resources like Projects, Files, Folders): org.eclipse.core.resources.markers

Add Preferences:

add pages to the preference dialog box: org.eclipse.ui.preferencePages

Add wizards:

add wizard to create a new resource: org.eclipse.ui.newWizards

add wizard to import a resource: org.eclipse.ui.importWizards

add wizard to export a resource: org.eclipse.ui.exportWizards

Contribute Help:

add help for an individual plugin:


Post a Comment