Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Eclipse IDE for Education/New Developers
So you'd like to start developing for Eclipse and Eclipse IDE 4 Education?
The following is a collection of useful links, knowledge, and help for bringing new developers up to speed with the Eclipse framework and the Eclipse IDE 4 Education code base.
- Please refer to the previous page for Setting up the development environment.
- The team project set can be used to download the source code.
- Eclipse uses BugZilla to track bugs; Please refer to BugZilla information for more details.
- Join the mailing list and come say Hi!
- If you would like to receive email updates directly from the BugZilla as they are posted, login to BugZilla and go to the Email Preferences tab. Then add the email@example.com "user" to your watch list. Anytime an update is made on a bug from the IDE4EDU BugZilla, you will be automatically notified via email about it.
Developing with the Eclipse framework will take some time to learn, but it can be very rewarding!
Let us start by clarifying whats the difference is between an RCP Application and a plugin:
An RCP application is built with a set of plugins, and couple of them will be ours (org.eclipse.ide4edu.*). The simplest explaination of an RCP application is that its a compiled, standalone Eclipse program, such as the one that can be found here. Development on this project will involve working with the org.eclipse.ide4edu.* plugins. Each plugin has a plugin.xml and this is the critical file that defines what that particular plugin is meant to do, and helps brings RCP applications together. Forget everything you know about creating stand-alone applications in Java... Majority of the Eclipse RCP development will require defining and customizing plugin "extensions" with the help of the plugin.xml file. You can do this by modifying the XML directly or use Eclipse's built-in GUI by simply opening the plugin.xml file you want to modify. You will notice a bunch of tabs at the bottom of the editor - pay the most attention to the "Extensions" tab, as that is where the RCP magic occurs. If you're planning on adding or customizing something within the RCP UI, be it a new menu item, a wizard, a completely new perspective, tutorials, etc, its all done by defining and customizing the appropriate extension. The plugin org.eclipse.ide4edu.javalite.ui is a good starting point as we have defined and implemented many of these already.
A good recommendation would be to go through some tutorials, such as the ones linked below, to get a good idea of how Eclipse plugins and RCP applications interact with each other.
Some additional framework information:
- The code base was originally forked from internal code. It is preferred that we try to avoid using internal packages as much as possible (ideally we would eliminate all internal package references, but that hasn't happened just yet). You will notice these, as Eclipse flags them as a warning, but they also have "internal" in the package location / name. Since IDE4EDU shares a lot of functionality with already made internal code, this can also go the other way and can give hints on solving our problems.
- A couple useful classes for retrieving various details (read the javadoc, they allow you create and get references to various areas of Eclipse / the current plugin) - PlatformUI - HandlerUtil - JavaCore.
Looking for a quick overview / How-To for various tasks related to Eclipse RCP development? This link Eclipse RCP How-To gives a short and sweet version of how to do a large variety of tasks within the Eclipse framework.
A good first step before trying to contribute is to try to get a good mental model of how Eclipse Plugins and RCP applications are meant to work. A good tutorial that walks you through the basics and gives a good introduction to Extensions and the important plugin.xml file can be found here: Lars Vogels Eclipse RCP Tutorial
There is a large database of various Eclipse tutorials found here: Eclipse Tutorials
Here is a page on general Eclipse UI guidelines: UI Guidelines
If your going to be making or working with Commands, Command handlers, Actions, (aka anything within the Command framework), here is a list of available command expressions that can be used within the plugin.xml for adding logic to handle various situations.
Useful Eclipse Shortcuts
- Plugin Spy – alt + shift + F2 (Use to lookup an element's plugin details -> Click on a menu item / anything to bring ID it)
- Find Source - F3 (Highlight the element you want to look up first)
- Find References - ctrl + shift + G (Highlight the element you want to look up first)
- Open file by name – ctrl + shift + T
- Delete whole line(s) without selecting all text – ctrl + d
- Comment out whole line(s) – ctrl + / (Note: can be used to undo commented line too)
- Organize imports – ctrl + shift + O
- Format source code – ctrl + shift + F