Saturday March 24, 2007
Breathing Life into a Dead Coyote (Part 1)
The Coyote project on java.net aimed at bringing, amongst others, Groovy support into NetBeans IDE. The project is dead since the release of NetBeans IDE 5.5, but there's enough useful code in there for integration with the Schliemann-related code that I've blogged about recently. In fact, with a little bit of tweaking (mainly involving the throwing out of the syntax support in Coyote), one is left with a project template and file templates for Groovy, which, when combined with most of what I blogged about over the past week, has this result:
Above, I've clicked on an entry in the Navigator and, as a result, the cursor is blinking happily in the related code in the editor. Bear in mind that one can open multiple Groovy documents, thanks to the NetBeans window system, and even undock documents, and that full functionality is available for undocked documents, as shown in the following screenshot, which shows code completion in an undocked Groovy document:
One other difference between Coyote and my code, i.e., in addition to the syntax point made above, is that Coyote assumes you've downloaded Groovy and requires you to set a path in the Options window to the Groovy installation directory, while my code bundles the JAR file that provides all the classes, so that the Options window extension isn't needed anymore. So I threw that out too. One problem with my approach is that the final size of all the modules is larger than Coyote, because I'm bundling the Groovy JAR, but I think that that inconvenience is mitigated by the ease of use (i.e., no need to download Groovy and no need to set anything in the Options window, everything just works out of the box).
I estimate I'll need about a week (bearing in mind that this is a 'weekend project') to finish the integration of the Schliemann code (and the multiview editor code, providing an embedded Groovy Console) with the 5.0 Coyote code. Then I will add my 6.0 version of Coyote to the Coyote project CVS. No point in creating a new project when the existing Coyote project provides all the infrastructure needed. After that, anyone who wants to can contribute modules to the 6.0 version of Coyote. At some point, something similar to the Matisse GUI Builder, in some form (possibly using the approach discussed in yesterday's blog entry, but more likely something a lot simpler), should also be available to Groovy.
On the Schliemann front, I need to learn how to extract information from libaries such as SwingBuilder, so that the related tokens do not need to be defined manually in the NBS file. That's needed for syntax coloring and code completion. I also need to learn more about grammar so that code folding can be added.
Mar 24 2007, 12:40:05 PM PDT Permalink


