org.gjt.sp.jedit
Class EditPlugin

java.lang.Object
  extended by org.gjt.sp.jedit.EditPlugin
Direct Known Subclasses:
EBPlugin, EditPlugin.Broken, EditPlugin.Deferred

public abstract class EditPlugin
extends java.lang.Object

The abstract base class that every plugin must implement. Alternatively, instead of extending this class, a plugin core class can extend EBPlugin to automatically receive EditBus messages.

Basic plugin information properties

Note that in all cases above where a className is needed, the fully qualified class name, including the package name, if any, must be used.

The following properties are required for jEdit to load the plugin:

The following properties are optional but recommended:

For the previous two properties, if a relative path is supplied, it should be both

  1. relative to the location of the .props file (when it is in the source tree)
  2. relative to the root of the JAR (when it is packaged in the JAR file)

Both conditions are easily satisfied if the .props file as well as description.html are both located in the root directory of the plugin, as well as the generated JAR.

Plugin dependency properties

Plugin dependencies are also specified using properties. Each dependency is defined in a property named with plugin.className.depend. followed by a number. Dependencies must be numbered in order, starting from zero. This determines the order that dependent plugins get loaded and activated, so order is very important.

The value of a dependency property has one of the following forms:

In this example, the ProjectViewer plugin is an optional dependency of the Console, beacause the Console only listens to events from the ProjectViewer. It requires Jedit 4.2 final.

plugin.console.ConsolePlugin.depend.0=jedit 04.02.99.00
plugin.console.ConsolePlugin.depend.1=jdk 1.5
plugin.console.ConsolePlugin.depend.2=plugin errorlist.ErrorListPlugin 1.4
plugin.console.ConsolePlugin.depend.3=optional plugin projectviewer.ProjectPlugin 2.1.0.92

Plugin menu item properties

To add your plugin to the view's Plugins menu, define one of these two properties:

If you want the plugin's menu items to be determined at runtime, define a property plugin.className.menu.code to be BeanShell code that evaluates to an implementation of DynamicMenuProvider.

To add your plugin to the file system browser's Plugins menu, define one of these two properties:

In all cases, each action's menu item label is taken from the actionName.label property. View actions are defined in an actions.xml file, file system browser actions are defined in a browser.actions.xml file; see ActionSet.

Plugin option pane properties

To add your plugin to the Plugin Options dialog box, define one of these two properties:

Then for each option paneName, define these two properties: