Download NetBeans!

20070328 Wednesday March 28, 2007

Breathing Life into a Dead Coyote (Part 2)

In Breathing Life into a Dead Coyote (Part 1), I stated my intention to commit the Schliemann code I've been working on to an upgraded version of the Groovy support module on Coyote. Well, today I did just that. So as not to mess up other things on Coyote, I created a separate directory and put everything in there. By "everything", I mean that I started with the 5.0 version of Groovy, opened the suite in my development build of 6.0, built everything, threw away stuff that prevented compilation from succeeding, threw away the 'syntax' package (based on Lexer), which I replaced with my half-baked Schliemann code, threw away some more stuff (all neatly recorded in the README.txt in the new directory on Coyote) and then eventually ran the suite without a problem. This is the best case scenario of what is currently possible with Coyote for 6.0:

Somewhere along the line I broke something, because the 'Run Script' button is never enabled, now. So that needs to be investigated. But, the point is, I now have the old Groovy data object working together with my Groovy.nbs file. "How is that possible?" you ask in incredulity, tinged with awe. The answer is this example snippet that I received this morning from Hanz Jancura, who is the NetBeans engineer behind Schliemann:

<folder name="Editors">
       <folder name="text">
           <folder name="css2">
               <file name="language.nbs" url="CSS.nbs"/>
               <attr name="createDataObject" boolvalue="false"/>
           </folder>
       </folder>
</folder>

Note the line in bold. This way, you can continue using your old data object, while reaping the benefits of Schliemann.

Update: I found that the above approach does not actually work. To make my data object work together with Schliemann, I had to add this line to my manifest file, below my loader's declaration, to ensure that the data objects are installed in the correct order:

Install-Before: org.netbeans.modules.languages.dataobject.LanguagesDataObject

If you now go to Coyote, you just need to check out the content of one directory, the one indicated by the hand icon below:

That contains everything I've committed. Some stuff may be broken, while other stuff is unstable. But this is a starting point for further integration, specifically integration of the Schliemann-related code, over the next days/weeks. Remember to use a very recent 6.0 daily build, like I'm doing; get the Generic Languages Framework Studio from the development Update Center, as described recently in this blog. Anyone is welcome to join the project and contribute.

Mar 28 2007, 09:29:45 AM PDT Permalink