Congrats, Sean! This sounds exciting. I really hope you won't be
> Hi,
>
> As some of you might know, I've been working on a new Scala plugin
> for the past year and a half with the intention of replacing the
> current plugin, which I hacked together in the course of a couple of
> months. Our goals with the new plugin are pretty ambitious and have
> required exploring lots of new technology (incremental parsing, type
> checking) as well as obtaining a better understanding of Eclipse. I'm
> happy to announce that it is kind of done and I'd like to start BETA
> testing in the community. The update site for the new plugin BETA is
> at
http://lamp.epfl.ch/~mcdirmid/scala.update (
http://lamp.epfl.ch/> ~mcdirmid/scala.update/site.jar if you prefer an archive install).
> Notable features:
>
> * Truly incremental syntax/type checking and semantic highlighting
> (no more ctrl-shift-z!), works fast even in very large files.
>
> * Code completion (content assist) that works reliably and responsively
>
> * Almost 100% semantic highlighting coverage (better for search and
> refactoring later...)
>
> * Better integration with Java. Java-doc comments from Java source
> now show in hover help (if the Java-doc attachment is set) and can
> hyperlink to Java definitions (if the Java source attachment is set).
>
> * The incremental builder now knows about changes to classfiles in
> other Scala and Java projects, and will rebuild accordingly
> (hopefully, still needs more testing). The Scala editor also knows
> about classfile changes.
>
> * Can now set breakpoints in Scala-derived classfiles. When the
> debugger triggers a break point in a Scala-derived classfile, the
> debugger opens the breakpoint in a Scala editor and not a Java editor
> as before. Also, when Scala-derived classfiles are opened up through
> the Project Explorer (but unfortunately, not the Package Explorer),
> they will open up in a Scala editor rather than a Java editor as before.
>
> * Position/highlighting information is saved so Scala-derived
> classfiles can be opened very quickly (assuming the Scala source
> attachment is set).
>
> * Folding and Scala-centric auto indenting!
>
> * Better editor preferences dialogue.
>
> * For keyboard junkies, goto declaration has been implemented (using
> the JDT configured key binding, by default F3).
>
> Because the technology used in the plugin is very new and untested, I
> initially expect that there will be ALOT of bugs. I'm continuously
> afraid whenever I'm editing in the new plugin that any keystroke will
> cause a crash :) I really need the community's help if the plugin is
> going to become stable. Please keep your error log view open while
> using the plugin, as this could fill up pretty quickly and you'll
> only be notified of the first crash. We'll use trac to manage bug
> reports, but check the open bug reports to avoid wasting time on
> duplicate reports. Also, I've checked in the source if you want to
> hack on it or add features. In particular, Documentation would be
> greatly appreciated. I haven't documented the code yet, and we don't
> have a DOM, so if you want to implement a feature that requires
> compiler information, please talk to me.
>
> On a personal note, I'm leaving EPFL (and the western hemisphere) at
> the end of October, and we don't know who will take this over yet.
> I'm still going to try and fix bugs and keep releases going, but for
> this to work we really need to open it up and attract community
> contributions. Suggestions on how to do this would be greatly
> appreciated.
>
> Please read the following release notes if you want to use the new
> plugin (also included in the plugin documentation):
>
> * The plugin is currently based on (and comes with) the unfinished
> 2.6.1 Scala release. No feature for 2.6.1 has yet been set in stone
> and 2.6.1 probably contains some new bugs not in 2.6.0.
>
> * The plugin currently relies heavily on "IDE" files. Please clean-
> rebuild your existing projects in the new plugin before opening up
> files in the editor.
>
> * Existing .project files must be updated in the following way:
> ch.epfl.lamp.sdt.core.scalabuilder becomes scala.plugin.scalabuilder
> and ch.epfl.lamp.sdt.core.scalanature becomes
> scala.plugin.scalanature. Thankfully, .classpath files don't need to
> be migrated.
>
> * Existing application and Scala breakpoint profiles cannot be
> migrated. Please remove them from your workspace before installing
> the new plugin.
>
> * Its probably not a good idea to have both the old and new plugin
> installed on the same Eclipse installation. Please uninstall or
> disable the old plugin before installing the new one, or use a
> different configuration profile.
>
> * The IDE file is used to ensure that the file is opened quickly, but
> parsing and type checking will not occur until the first edit
> ("breaking the ice"). This means that there will be a lag on the
> first edit of a large file (due to parsing, which occurs in the UI
> thread) and then later when type checking completes (as the type
> checking results are integrated into the UI). While type checking is
> occurring, no type-dependent services will work (e.g., hover help,
> code completion). Type checking for most edits is incremental and so
> completes fast enough that this is not an issue. The biggest type
> checking times occur when (a) modifying a top-level import in a large
> file or (b) when you start editing a large file. As an example,
> Typers.scala, which is around 3300 lines of DENSE Scala code, takes
> around 8 seconds to type check initially in the editor. This will
> balloon to 20 or so seconds if you edit a top-level import. Import
> statements are currently a big problem given the way they are
> represented in the compiler, we still don't have a fix in mind for this.
>
> * You are free to change the parse tree while type checking occurs in
> the background, it shouldn't crash the compiler :) All changed parse
> nodes are scheduled for type checking in the background.
>
> * Parsing and type checking will not occur if braces (including
> comments and double quotes) in the file are unbalanced. For this
> reason, brace completion (as implemented in the IDE) is essential to
> keep things lively and is definitely not a save-on-typing
> convenience. If you type over any closing brace, a new closing brace
> won't be inserted. Braces can go unbalanced (e.g., if you block paste
> in some code with unbalanced braces), but many IDE features will not
> work during this time. There are a few more features that aid in
> keeping braces balanced: deleting an opening brace will delete its
> matched closing brace; typing a closing brace will move out or in an
> existing closing brace in certain contexts; and you can select a
> block of text and type ",`,(,{,[,/ to enclose the block in double
> quotes, back quotes, parentheses, curly braces, brackets, or a multi-
> line comment, respectively.
>
> * There is currently no XML support. Support is planned, but not
> right now.
>
> * The content outliner, interpreter, and test pad views are not yet
> implemented for the new plugin.
>
> * There is still no support for refactoring or search.
>
> * The Project Explorer replaces the Package Explorer as the preferred
> navigation view of Scala projects (the Package Explorer will still
> work). However, I've noticed some conflicts with the JDT "Java
> Element" content view, you'll probably have to disable it (click the
> down white triangle in the project explorer view, select the
> "Customize View" menu, select the "Content" tab, uncheck "Java
> Elements").
>
> * For some strange reason, no default highlighting colors are
> configured when the plugin is first installed. Go to Preferences/
> Scala/Scala Editor Preferences, hit "Restore Defaults", "Ok" then
> colors will be enabled. I know the default color scheme is atrocious,
> but you can also customize Scala highlighting colors.
>
> * Scala classpath entries do not make use of Java-doc attachments
> (all scala-doc entries are extracted from source attachments) while
> Java requires these attachments even if source is available. Make
> sure your Java-doc/source code attachments are configured correctly
> for your JRE_CONTAINER. Source attachments are included for the
> embedded Scala library.
>
>