ee-ide is built atop the Kippu framework. Kippu is a weightless application framework based on the F* meta-pattern.
There are three reasons for you to integrate your project/plugin with ee-ide first:
- ee-ide is based on a weightless framework. The cost of integrating with ee-ide is very low compared to other IDEs and code editors.
Even if you target a mainstream, well established platform, integrating with ee-ide is probably the fastest way to test your feature – With ee-ide, you can write a ‘quick and dirty’ implementation of your feature or plugin and bind it to the rest of the IDE just by listening to a few notifications with simple, straightforward names. - Full support. We are entirely commited to help you to integrate with our IDE. Just email us (see bottom of this page) and get in touch.
- Full customisation. If some existing features get in your way, you can just disable them by editing the ee-ide-features.config file. It’s that simple.
Features and notifications: an overview
ee-ide is a collection of small packages. Each package contains source code performing a specific function or feature. Packages compile independantly. Communication between features relies on broadcast events or notifications.
Feature are loaded on startup as specified by ee-ide-features.config. At this point, most features register to listen to notifications, so you have code like:
AppFrameCreated.register(this);
In a feature that implements a listener interface, like this:
public class Foo implements AppFrameCreated.Listener
The key to integrating a new feature or plugin is to figure out which notifications are needed. You can find the complete list of notifications here.
Most features will also generate a few notifications to allow other features/plugins to integrate. For example, the feature that creates new windows will invoke:
AppFrameCreated.notify(...)
…which ensures that all registered listeners are notified when a new application window is created.
Writing a feature or plugin
There is no set rule about how you should write your feature or plugin. The only important thing is that your feature must have a ‘head class’ with a no-arg constructor.
The head class is constructed on startup and is responsible for registering the notifications that bind your feature to the rest of the application.
Deployment
To deploy a feature or plugin:
- Bundle your feature as a jar file. You can also copy your packages to ee-ide/ext for testing
- Add your jar file to the ee-ide/ext/ directory.
- Add the fully qualified name of your head class to ee-ide/ee-ide-features.config
Provided you’ve done the above, your feature will boot without problem.
Help and Support
We are in the process of documenting/validating notifications and a few types it’s good to know about. The best way to get started writing new features for ee-ide is to get help.
e-mail tea.desouza [at] gmail.com and I’ll help you getting started.
Open Source?
We don’t mind releasing the code, we’re just preparing to release it in a nice way. In the meantime, there is already a dump of the source online, just ask.
Solving your problems
You don’t have to extend ee-ide yourself if you think something’s missing:
- Ask us first. If we think the feature you want can be useful to other users, we’ll give you an estimate of when we think we’ll be able to add it to ee-ide.
- If you need something a little more dedicated, we may be able to do the work for you at a reasonable cost.
(again, contact tea.desouza [at] gmail.com for enquiries)


Comments