Writing Eclipse plugins with Groovy

Writing plugins for Eclipse with other languages than Java is not officially supported, but there is a way to write an Eclipse plugin with Groovy only. As prerequisites you need Eclipse with a JDT and the Groovy Eclipse plugin.

Follow the following steps. The source code is also available.

1. Create a new Plugin-in project, do not use any templates.
2. Add the Groovy Nature to the project.
3. Create a Java package under src
4. Create a Groovy class HelloGroovyWorld with the following contents

package hellogroovyworld

import org.eclipse.jface.action.IAction
import org.eclipse.jface.viewers.ISelection
import org.eclipse.ui.IWorkbenchWindow
import org.eclipse.ui.IWorkbenchWindowActionDelegate
import org.eclipse.jface.dialogs.MessageDialog

class HelloGroovyWorld implements IWorkbenchWindowActionDelegate {

	private IWorkbenchWindow window

	void run(IAction action) {
		MessageDialog.openInformation(
			window.getShell(),
			"Hellogroovyworld Plug-in",
			"Hello, Groovy world")
	}

	void selectionChanged(IAction action, ISelection selection) {}

	void dispose() {}

	void init(IWorkbenchWindow window) {
		this.window = window
	}
}

5. Edit the plugin.xml file:

5a. On the Dependencies tab add org.eclipse.ui and org.eclipse.core.runtime.
and org.codehaus.groovy.

5b. On the Runtime tab add bin-groovy to the classpath

5c. On the Extensions tab add an org.eclipse.ui.actionSets extension, set visible to true.
Add a menu and an action (Left click the ActionSet, right click and choose “new, menu and action”) and
choose HelloGroovyWorld as the class for the action. The plugin.xml is shown below.

   <extension
         point="org.eclipse.ui.actionSets">
      <actionSet
            id="hellogroovyworld.actionSet1"
            label="Groovy ActionSet"
            visible="true">
         <menu
               id="groovyMenu"
               label="Groovy Menu">
         </menu>
         <action
               class="hellogroovyworld.HelloGroovyWorld"
               id="hellogroovyworld.action2"
               label="Groovy World"
               menubarPath="groovyMenu"
               toolbarPath="groovyMenu"
               tooltip="Hello Groovy World">
         </action>
      </actionSet>
   </extension>

Now run the project as an Eclipse Application.

Hello Groovy World

Tags: ,

3 Responses to “Writing Eclipse plugins with Groovy”

  1. Steven Devijver Says:

    Hey Jorn,

    Great post! I have to give this a try.

    Do you think a project template can be brewed out of this?

  2. James Carr » Blog Archive » links for 2008-02-05 Says:

    [...] Writing Eclipse plugins with Groovy Pretty nifty. I’ve been playing with writing eclipse plugins lately and writing it in groovy should make things easier. (tags: groovy eclipse) [...]

  3. timokk Says:

    Just the functionality I was looking for. Thanks very much, Jörn!

Leave a Reply


Copyright © 2007-2011 Jörn Dinkla. All rights reserved.

###ENDMATTER