Eclipse integration for Isabelle proof assistant

Developer information

In this page you will learn what is needed to setup Isabelle/Eclipse project in Eclipse (or build it from command-line). After this you should be able to start hacking the Isabelle/Eclipse sources!


Clone/fork the project

First you should fork the Isabelle/Eclipse repository. It will greatly simplify the process of contributing your code to Isabelle/Eclipse. If you are new to GitHub, read here to learn how to fork a project.

Next you need to clone the forked Git repository (or the original one if you are only interested in building the source code). Note that you need to clone recursively (--recursive) to checkout the isabelle-scala submodule. The command for cloning the fork should be similar to the following one (replace <username> with your GitHub username).

git clone --recursive<username>/isabelle-eclipse.git

Make sure to add an Upstream pointing to the original Isabelle/Eclipse Git remote repository, so that you can keep fetching the latest changes made in the project, and easily integrate them back in your fork.

Build using command-line

The project is uses Maven build system and can be built wholly using the standard Maven command:

mvn clean install

Run this command from the terminal in the repository root directory. This will build all plug-ins, features and the p2 repository + Isabelle/Eclipse IDE product. The output artefacts are available from the following directories:

  • /isabelle.eclipse.repository/target/products/ - standalone Isabelle/Eclipse IDE distributions for all supported platforms (Windows, Mac and Linux).
  • /isabelle.eclipse.repository/target/repository/ - Isabelle/Eclipse p2 repository (update site), you can use it in the Update Manager.

This should be used to produce the products and update site instead of using the GUI export tools in Eclipse IDE. For everyday development, however, import the projects into Eclipse.

Import the projects into Eclipse

To import Isabelle/Eclipse projects into Eclipse, select File > Import > Maven > Existing Maven Projects. Use the checked-out repository as the Root Directory. All Isabelle/Eclipse projects will be listed in Projects field. Ensure all are selected and click Finish.

This will import all Isabelle/Eclipse modules (plug-ins, features, etc.) into Eclipse as Maven projects. Note that Eclipse may ask to install additional Maven connectors, such as Tycho Project Configurators during import - allow that and restart Eclipse if asked.

The projects will now be imported into Eclipse, but there may be build errors. Set the correct target platform to provide all dependencies as per instructions below.

Set target platform

The target platform comprises all dependencies available for building Isabelle/Eclipse plug-ins. It is defined in project. Open the target file at / within Eclipse. Note that this is not the root target file in the project, but the one in the target folder.

Isabelle/Eclipse target platform

When the target definition file is opened, wait for some time until its contents are resolved. Then select Set as Target Platform in the top-right of the editor. These dependencies will be loaded for use in builds and all Isabelle/Eclipse projects should build successfully now. Note that this needs to be done once at the beginning and then only if the dependencies/target platform change (close the target file afterwards to avoid unnecessary resolution).

If you still encounter build errors, try refreshing the projects (select all and choose File >Refresh) or cleaning them (Project > Clean).

Launch Isabelle/Eclipse from within Eclipse

For convenience, a launch configuration is provided to start Isabelle/Eclipse from the checked-out projects. It defines all features and plug-ins that are required for Isabelle/Eclipse.

Select the launch configuration at /isabelle.eclipse.repository/isabelle-eclipse-ide.launch. Choose Run As > isabelle-eclipse-ide in the context menu.

Isabelle/Eclipse launch file

This will launch Isabelle/Eclipse as a separate application. All your changes will be reflected in the launched program. The launch configuration will also now be available in the main Run and Debug toolbars for convenient access. Use this launch configuration to run and debug Isabelle/Eclipse.