Hi David,
For the most part, this is tough to impossible to implement and nobody does it! The plugin is tied in intrinsically with the Scala compiler. The way the JDT team manages this in Eclipse is to just have one compiler that can work with different versions of Java. You can't drop a version of javac that you want into Eclipse (maybe you can for Netbeans, but it doesn't support many features anyways). You can check out the Eclipse source code for yourself if you don't believe me!
As another option, you can replace the Scala builder with a standard ANT builder and build through build.xml. You lose the benefits of the incremental builder (namely dependency tracking), and editing won't work correctly without IDE files generated in 2.6.1. However, if you are using a version of Scala that can generate IDE files, then it should work well enough.
If you want to use a different library for your project, just point your .classpath at the library you want to use (you also probably need to import it into the project and put the library on the runtime classpath). If you are using Scala through a scala.home environment variable, just replace ch.epfl.lamp.sdt.launching.SCALA_CONTAINER with ch.epfl.lamp.sdt.launching.SCALA_HOME in your .classpath file.
Hope this helps,
Sean
On Sep 18, 2007, at 12:39 PM, David Pollak wrote:
Sean,
At some point I will start testing the plugin, but there's an absolute requirement for any plugin: it absolutely has to let me choose the version of Scala it works with, just like the Java mode in Eclipse allows for the choice of JDKs.
Each version of Scala has minor (and sometimes major) byte-code incompatibilities such that code compiled with one version will not work with any runtime but the runtime that the code way compiled against (as compared to Javac byte code which has always been forward compatible.)
Having the compiler version baked into the plugin (especially when the version is often a development version a week or two off from the actual releases) means that the code generated by the plugin cannot be used from the command line unless the exact same version of the runtime is the version invoked with "scala".
I'm looking forward to being able to use the new plugin with the same version of Scala as I have running from the command line.
Thanks,