Well, if you made it to this wiki, you probably know how to fork the code repository and clone it to your PC.
Important note: There is no stable API yet, this is the reason why the version number is still starting with a zero. We are currently working at creating an API, but we prioritize regular development (unless you, the would-be extenders, will start asking for the API)
The “core erlide” is the basic erlide functionality. There are two eclipse feature projects for it,
org.erlide. The headless part is needed so that we can use erlide to compiler Erlang projects in Eclipse without having to start the UI (with Buckminster, we use it to build erlide itself).
The projects are split in two categories: some should be independent of Eclipse (util, runtime, model) and the others are not (util_eclipse, backend, core, ui). Currently, the
model project has Eclipse dependencies, but these will be moved to
Without Eclipse dependencies:
org.erlide.libs: common third-party libraries with no relation to erlide
org.erlide.util: common utilities
org.erlide.runtime: support for starting, connecting to and calling code from Erlang runtimes
org.erlide.kernel.*: host Erlang code
org.erlide.model: here is where all the interesting stuff happens. It keeps track of the structure of projects and modules and will provide an API to ask questions about it. At the moment it is implemented in both Java and Erlang and this is what has caused many of our problems so far: the impedance mismatch makes it easy for errors to sneak in. Our plan is to evolve a one-language implementation with an independent API. Ideally we would like to be able to use either Java only (with Xtext) or Erlang only.
With Eclipse dependencies:
org.erlide.backend: configure and launch Erlang runtimes
org.erlide.core: adapts the model API to use Eclipse concepts, like resources. Together with ui it will also implement the Eclipse hooks, commands and views necessary to make everything work. Ideally this part will be quite language-independent.
org.erlide.ui: see above
More info to be added
Most additions will get filed in this category. An extension is a more or less independent piece of functionality that gets integrated in erlide. One good example is Wrangler: it is a standalone tool and the respective plugins make its functionality available for erlide users.
Info to be added later
Did you find errors in the documentation? Do you have improvements to suggest? Suggest edits!