Header

Eclipse Helios Released: What It Doesn’t Have

Many good reviews already cover all the nice new features that are in Eclipse Helios, so I’m going to show you a three annoyances that have been bothering me for years and are still not fixed in Helios. And these aren’t things like the high memory consumption or the sluggish interface.

Multiple Desktops

A bug that I observe almost every time I start Eclipse is Bug Nr. 98540, Eclipse shells open on different desktops (created in 2005). The problem is:

I launch the Eclipse process on one desktop, and then switch to another. The splash shell opens on the second desktop, not the one from which it was launched.

If you’re not using multiple desktops, this might not sound like a huge problem, but I can tell you, it’s really annoying if Eclipse just follows you around and doesn’t stay on the desktop it belongs to. This is not restricted to starting the initial Eclipse instance but also happens when you’re developing plugins and launch a new workspace.

Global Preferences

There are certain preferences I want in all my Eclipse instances, for example the “Show Heap Status”, or the Font of the editor. So it would be really nice if there were something like global preferences that can be saved somewhere and are then used by all workspaces. It’s already possible to manually import and export preferences, so you can share preferences, but doing it manually is tedious.

Another interesting project going into a similar direction is Google’s Workspace Mechanic. A bug report also exists since 2005.

Unnecessary Scrollbars Shown

The following screenshot should make the problem obvious:

Why are there scrollbars shown? I don’t use any other GTK programs, so this might be a GTK problem; but it still annoys me from time to time. And there’s a bug report for it since 2002.

Despite all these problems, I’m still a very happy Eclipse user and developer, so congratulations for this otherwise great release!

3 comments »
Header

Building Eclipse Plug-ins Written in Scala with Maven/Tycho

The Scala Refactoring project currently uses a rather crude hand-written ant build file; it compiles and runs tests. What it doesn’t do is creating a proper OSGi bundle, which I need if I want to do proper releases and integrate it into the Scala Eclipse IDE. Most of my colleagues are using PDE build, but from what I’ve heard, Buckminster or Maven/Tycho are the way to go.

Buchminster looks rather complex to me, so I went with Maven, even though I had no prior experience with it. Now, a few hours later, I have a Hello World plug-in written in Scala and a bunch of poms that build everything I want, even an update site!

Tycho needs Maven 3, which hasn’t been released yet, so I downloaded the latest alpha build and created an alias that pointed to the mvn binary.

I started with Mattias Holmqvist’s Blog where he explains how to create the initial Maven configuration and an OSGi bundle in Eclipse (I created a Hello World Plug-in Project). Now, we don’t want to have a Java plug-in but one written in Scala, so I added the Scala Nature to the project and re-wrote the two generated files in Scala.

To add Scala functionality to my pom, I followed the Eclipse Scala Maven Integration wiki. I also had to add the Scala Eclipse Plug-in nightly build update site to my list of repositories so Maven could resolve the scala.library dependency the project has.

    <repository>
       <id>scala eclipse nightly</id>
       <layout>p2</layout>
       <url>http://www.scala-lang.org/scala-eclipse-plugin-nightly</url>
    </repository>

Because I apparently didn’t follow Maven’s source layout, I had to explicitly specify the source directory via:

<sourceDirectory>${basedir}/src</sourceDirectory>

Adding the update site and feature projects was a peace of cake when following this tutorial (scroll to Creating an Update Site / P2 repository) from the Tycho project.

I’ve put the whole project on GitHub so you can try it yourself. And remember, this is my first day with Maven, so if I could make the poms even smaller or more idiomatic, please tell me. Or even better, just fork my code!

Next I’m going to find out how to run unit tests and how the integration in Hudson works, and then I can migrate the Scala Refactoring project and delete a build.xml file.

2 comments »