This project is an Eclipse-based IDE for the Ceylon programming language.
For more information about Ceylon IDE for Eclipse, go to:
https://ceylon-lang.org/documentation/ide/eclipse/
The simplest way to install the Ceylon IDE Eclipse plugin is simply to follow the instructions found here:
http://ceylon-lang.org/documentation/1.2/ide/install
Nightly builds are available in this update site: https://ci-ceylon.rhcloud.com/job/ceylon-ide-eclipse/ws/site/target/repository/
Note that this is the current master
, which may contain bugs.
If you want to have an up-to-date version of the Ceylon IDE based on the latest code of all Ceylon projects, this is the recommended method.
Make sure that you are using Java 7 or 8 by running javac -version
.
Make sure that ant
(latest version of Ant) and mvn
(some Maven version from
3.0.5 to 3.2.1) can be run on the command line.
First clone the Ceylon command line distribution locally. Type the following command in the directory of your choice:
git clone https://github.com/ceylon/ceylon.git
This has created the ceylon
local repository.
Next, the following required projects should also be cloned: Ceylon SDK,
Ceylon Formatter, Java To Ceylon Converter, and
Common code for Ceylon IDEs.
To clone all these projects at once, go to the ceylon/
directory ceated in the
previous step, and type:
ant setup-sdk setup-ide
This command will have cloned the following Git repositories:
ceylon-sdk
ceylon.formatter
ceylon-ide-common
ceylon.tool.converter.java2ceylon
ceylon-ide-eclipse
at the same directory level as the ceylon
local repository.
Finally, to build all the above projects, stay in the .../ceylon/
directory and type:
ant clean-all dist sdk eclipse
The directory .../ceylon-ide-eclipse/site/target/repository
now contains an
Eclipse update site you can install from. The update process is decribed at
http://ceylon-lang.org/documentation/1.2/ide/install/ but use the full path
to this directory instead as the URL of the update site.
If you make modifications on one of Ceylon IDE's dependencies, you can rebuild projects separately:
Build a full Ceylon distribution locally (see here for more details):
.../ceylon
directory run: ant clean dist
.../ceylon/dist/osgi/build/dist
Build the Ceylon SDK locally (see here for more details):
.../ceylon
directory run: ant clean-sdk sdk
.../ceylon-sdk/osgi/dist
Build the Ceylon Formatter locally (see here for more details):
.../ceylon.formatter
directory run: ant clean publish ide-quick
.../ceylon.formatter/osgi/dist
Build the Ceylon IDE Common components locally (see here for more details):
.../ceylon-ide-common
directory run: ant clean publish ide-quick
.../ceylon-ide-common/osgi/dist
Build the Java To Ceylon Converter components locally (see here for more details):
.../ceylon.tool.converter.java2ceylon
directory run: ant clean publish ide-quick
.../ceylon.tool.converter.java2ceylon/osgi/dist
From the directory .../ceylon-ide-eclipse
, type:
mvn clean install -fae
Faster alternative: To skip tests completely you can run:
mvn clean install -DskipTests
This implies some additional complexity, and is only useful if you want to debug the Ceylon IDE plugin.
Preliminary remark: Parts of the Ceylon IDE project itself are written in Ceylon. Thus, in order to develop the Ceylon IDE plugin, you must have a previous version of the plugin installed in your main Eclipse (preferably downloaded from the stable update site, or built with Maven).
Perform steps 1 to 4 of section : Building with Tycho / Maven 3.
Start with a (preferably clean) install of Eclipse Kepler, Luna or Mars.
Install the following feature: Graphical Editing Framework Zest Visualization Toolkit SDK. It is available here:
Make sure you have the following feature: Eclipse Plug-in Development Environment. It is normally included inside the Eclipse Standard Package.
Install a previous version of the Ceylon IDE, preferably downloaded from the stable update site (see here), or built with Maven (see here).
Use File > Import... > Existing Projects into Workspace
to import the Java and
Ceylon Eclipse projects that are in these directories:
.../ceylon-ide-common
.../ceylon-ide-eclipse/plugins/org.eclipse.ceylon.ide.eclipse.ui.jdt.debug.fragment
.../ceylon-ide-eclipse/plugins/org.eclipse.ceylon.ide.eclipse.ui
.../ceylon-ide-eclipse/plugins/org.eclipse.ceylon.test.eclipse.plugin
.../ceylon-ide-eclipse/plugins/org.eclipse.ceylon.ide.eclipse.android.plugin
Add the following folder as a local update site in your Eclipse Available Software Sites list:
.../ceylon-ide-eclipse/UpdateSiteForBinaryDependencies/
From this new update site, install only the elements that are under the categories
whose name contains : '- Only Binary Dependencies
'. This provides (as OSGI bundles)
only the external archives required by the various siblings projects required by the
IDE plugin (jboss modules, antlr-runtime v4, etc ...).
Use File > Import... > Existing Projects into Workspace
to import the Eclipse projects
that are in these directories:
the ceylon-dist-osgi
project found at the following location:
.../ceylon/dist/osgi
the ceylon-dist-osgi-embedded-repository
project found at the following location:
.../ceylon/dist/osgi/embeddedRepository
all the required bundle-proxys projects found under the following location:
.../ceylon-ide-eclipse/required-bundle-proxies
Since the Ceylon Distribution modules have circular dependencies on each others, it happens that those circular dependencies are reproduced by the ceylon-dist-osgi and bundle-proxys projects.
In order to be able to build you projects, you will have to allow cycles in the Java build paths by setting the following Eclipse preference:
Java > Compiler > Build > Circular Dependencies
to warning
During the development, you should be aware of these rules:
org.antlr
, org.apache.commons.logging
, etc...), then you should :
ant clean publish ide-quick
command in the ceylon/dist
directory,Ceylon Distribution Binary Dependencies Feature
feature from the .../ceylon/dist/osgi/build/dist
update site.ant clean publish ide-quick
command in the project directory,ceylon-dist-osgi
project, as well as the bundle
proxy projects related to the rebuilt project. This is necessary so that Eclipse
will see the changes, especially when running/debugging the CeylonIDE.If you want to modify / add IDE tests, you should also add the test plugin:
http://download.eclipse.org/technology/swtbot/releases/latest/
File > Import... > Existing Projects into Workspace
to import the project from this root directory:
.../ceylon-ide-eclipse/tests/org.eclipse.ceylon.ide.eclipse.ui.test
Select the org.eclipse.ceylon.ide.eclipse.ui
project and run it using
Run > Run As > Eclipse Application
. Now go to the new instance of
Eclipse.
By default, when building the plugin from Maven and developing it, all the code is built against the master branch of all the dependencies (incuding the Ceylon command line distribution). However, after a release, we create GitHub maintenance branches for the two following projects:
.../ceylon-ide-common
.../ceylon-ide-eclipse
These branches allow pushing only changes that are fully compatible with the release available at the main updatesite: http://ceylon-lang.org/eclipse/updatesite/.
In order to work on these branches and build these 2 projects against the dependencies found in the release update site (instead of building against the local master branch of each project), you should:
switch to the last release maintenance branch by going into the .../ceylon/dist
directory and
typing:
ant eclipse-switch-to-last-release-updates
implement your maintenance changes inside the the IDE as usual.
build the IDE with the following command run from the .../ceylon/dist
directory:
ant eclipse-rebuild-last-release-updates
The generated update site generated in directory .../ceylon-ide-eclipse/site/target/repository
now contains a maintenance release fully compatible with the last release published in the
official Ceylon Eclipse update site
In order to come back to the master branches, run the following command from the .../ceylon/dist
directory:
ant eclipse-switch-back-to-master
For proxy bundles, I used:
for f in *-1.1.0.?ar; do newf=${f/1.1.0/1.1.1}; if test \! -d $newf; then mkdir $newf; fi; cp $f/{.classpath,.project,.gitignore} $newf/; perl -pi -e 's/1\.1\.0/1.1.1/g' $newf/{.classpath,.project,.gitignore}; done
Build with Tycho/Maven 3 (see previous section)
Copy (through sftp) the content of the directory site/target/repository
onto the server:
www.ceylon-lang.org
to the following directory:
/var/www/downloads.ceylonlang/ide/dev
The content of this repository is released under the EPL v1.0 as provided in the LICENSE file that accompanied this code.
By submitting a "pull request" or otherwise contributing to this repository, you agree to license your contribution under the license mentioned above.