This guide is intended for those who wish to contribute to eclim by fixing bugs or adding new functionality.
$ git clone git://github.com/ervandew/eclim.git
$ cd eclim
$ ant -Declipse.home=/your/eclipse/home/dir
This will build and deploy eclim to your eclipse and vim directories.
Warning
Building eclim as root is highly discouraged. If your eclipse install is only
writable as root, you can supply the eclipse.local
property to tell eclim
where your eclipse user local directory is located and eclimd will be
installed there (make sure to replace <version>
portion of the path below
accordingly):
$ ant \
-Declipse.home=/opt/eclipse \
-Declipse.local=$HOME/.eclipse/org.eclipse.platform_<version>
If you do not yet have a .eclipse
directory in your home directory, you
can run either of the following commands to create it:
$ ant -Declipse.home=/opt/eclipse eclipse.init
or
$ /path/to/eclipse/eclipse -initialize
Note
If your eclipse home path contains a space, be sure to quote it:
> ant "-Declipse.home=C:/Program Files/eclipse"
Note
If your vimfiles directory is not located at the default location for your OS, then you can specify the location using the “vim.files” property:
$ ant -Dvim.files=<your vimfiles dir>
When the build starts, it will first examine your eclipse installation to find what eclipse plugins are available. It will then use that list to determine which eclim features/plugins should be built and will output a list like the one below showing what will be built vs what will be skipped:
[echo] ${eclipse}: /opt/eclipse
[echo] # Skipping org.eclim.pydev, missing org.eclipse.dltk.core
[echo] Plugins:
[echo] org.eclim.jdt
[echo] org.eclim.wst
In this case we can see that four eclim plugins will be skipped along with the eclipse feature that would be required to build those plugins.
If you don’t want to supply the eclipse home directory, or any other
properties, on the command line every time you build eclim, you can create a
user.properties
file at the eclim source root and put all your properties
in there:
$ vim user.properties
eclipse.home=/opt/eclipse
eclipse.local=${user.home}/.eclipse/org.eclipse.platform_<version>
vim.files=${user.home}/.vim/bundle/eclim
Note
The eclim vim help files, used by the :EclimHelp command, are not built by default. To build these you first need to install sphinx, then run the following command:
$ ant vimdocs
This target also supports the vim.files
property if you want the docs
deployed to a directory other than the default location.
Warning
Debian/Ubuntu users: The debian version of sphinx has unfortunately been patched to behave differently than the upstream version, resulting in one or more eclim supplied sphinx extensions not loading. Another issue you may run into is the docutils package, which sphinx depends on, is outdated on debian/ubuntu, resulting in another set of errors.
So to get around these issues you’ll need to install sphinx using pip or similar.
Once you built eclim, you can then start the daemon and add eclim as a project:
:ProjectImport /path/to/git/checkout/of/eclim
When contributing code please try to adhere to the coding style of similar code so that eclim’s source can retain consistency throughout. For java code, eclim includes a checkstyle configuration which can be run against the whole project:
$ ant checkstyle
or against the current java file from within vim:
:Checkstyle
The preferred means of developing and submitting patches is to use a github fork. Github provides a nice guide to forking which should get you started.
Although using a github fork is preferred, you can of course still submit patches via email using git’s format-patch command:
$ git format-patch -M origin/master
Running the above command will generate a series of patch files which can be submitted to the eclim development group.
Now that you’re familiar with the basics of building and patching eclim, the next step is to familiarize yourself with the eclim architecture and to review the detailed docs on how new features are added.
All of that and more can be found in the eclim development docs.