It's Freaky


   

Fantom IDE - FantomIDE


Netbeans based Standalone IDE / Plugin for the Fantom Language


This can be installed as a plugin to an existing Netbeans installation or as a standalone IDE for the Fantom language (based on Netbeans)

It contains out of the box support for Fantom as well as Java, Javascript, CSS, HTML, XML, Subversion, Mercurial.

Also any other features you need, say hudson support are just a few clicks away under tools/plugins.

Screen shot


You can also check a demo "screencast("movie") in the demo section.

fannb.png

Infos


I have written the Grammar/Lexer/Parser using the ANTLR tool (together with the great ANTLRWorks debugger).
Update: Replaced ANTLR with parboiled (Mrach 2010)

On the Netbeans Side i'm using the brand new (NB 6.7) CSL API (Language support).

Learning ANTLR has been a challenge as well as the new CSL API, which is not yet much documented.

However Caoyuan's Blog and help has been immensely useful (Thank you !)

Many thanks to Geertjan Wielenga as well, for all the useful tutorials / blog entries he made available.

And all the authors of the other NB plugins I've been looking at.

Used Libraries


The following opensource libraries are bundled:
  • ANTLR-runtime : Used to parse source files (grammar)
  • Parboiled: Used to parse source files (grammar)
  • JavaOnTracks: My own java frameworks. I use some templating and database features.
  • H2: I use this database for Indexing source code (completion etc...)




Last modified: Wed Aug 25 12:55:24 EDT 2010 by Thibaut Colar

Post time:12/29/2011 12:11 By:Guest (Guest)
Title: NetBeans 7.1
Will this plugin get NetBeans 7.1 support? I'd love to try Fantom with full IDE support, but I'd rather not downgrade to NetBeans 7.0. With NetBeans 7.1, I was able to successfully install, but the source parsing/highlighting is clearly not working.

Post time:09/03/2011 14:20 By:Guest (Guest)
Title: "semi" bug
When I run the fan fwt hello world example, with a couple of trivial lines inserted prior to the Window creation, I get the following error message:

Not able to submit breakpoint LineBreakpoint Main.fan : 19, reason: No executable location available at line 19 in class fan.FanTest1.Main$main$0.

The thing is, it does break at line 19...in general, executes just fine except for the error message.Here's the program:

class Main
{
Void main()
{
a := 1
b := 1

Window
{
size = Size(300,200)
Label { text = "Hello world"; halign=Halign.center },
}.open
}
}

Line 19 where I put the breakpoint is: b := 1


Post time:04/28/2011 11:06 By:Guest (Guest)
Title: Netbeans FantomIDE with Netbeans 7.0
Hi,

This is from NB 7.0 IDE log:

WARNING [org.netbeans.modules.autoupdate.updateprovider.AutoupdateCatalogParser]: http://www.colar.net/fantomide/plugin/7.0/:1:55: White spaces are required between publicId and systemId.
INFO [org.netbeans.modules.autoupdate.services.UpdateUnitFactory]: Cannot read UpdateItem from UpdateProvider Fantom[Fantom] to http://www.colar.net/fantomide/plugin/7.0/
org.xml.sax.SAXParseException: White spaces are required between publicId and systemId.
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1231)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
at javax.xml.parsers.SAXParser.parse(SAXParser.java:395)
at org.netbeans.modules.autoupdate.updateprovider.AutoupdateCatalogParser.getUpdateItems(AutoupdateCatalogParser.java:187)
Caused: java.io.IOException: Failed to parse http://www.colar.net/fantomide/plugin/7.0/
at org.netbeans.modules.autoupdate.updateprovider.AutoupdateCatalogParser.getUpdateItems(AutoupdateCatalogParser.java:189)
at org.netbeans.modules.autoupdate.updateprovider.AutoupdateCatalogProvider.getUpdateItems(AutoupdateCatalogProvider.java:126)
[catch] at org.netbeans.modules.autoupdate.services.UpdateUnitFactory.appendUpdateItems(UpdateUnitFactory.java:173)
at org.netbeans.modules.autoupdate.services.UpdateUnitFactory.getUpdateUnits(UpdateUnitFactory.java:143)
at org.netbeans.modules.autoupdate.services.UpdateManagerImpl$Cache.<init>(UpdateManagerImpl.java:225)
at org.netbeans.modules.autoupdate.services.UpdateManagerImpl.getCache(UpdateManagerImpl.java:199)
at org.netbeans.modules.autoupdate.services.UpdateManagerImpl.getUpdateUnits(UpdateManagerImpl.java:96)
at org.netbeans.api.autoupdate.UpdateManager.getUpdateUnits(UpdateManager.java:103)
at org.netbeans.modules.autoupdate.ui.PluginManagerUI.updateUnitsChanged(PluginManagerUI.java:665)
at org.netbeans.modules.autoupdate.ui.UnitTab$3.updateUnitsChanged(UnitTab.java:195)
at org.netbeans.modules.autoupdate.ui.UnitCategoryTableModel.fireUpdataUnitChange(UnitCategoryTableModel.java:286)
at org.netbeans.modules.autoupdate.ui.UnitTab.fireUpdataUnitChange(UnitTab.java:599)
at org.netbeans.modules.autoupdate.ui.UnitTab$13$1.run(UnitTab.java:764)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:596)
at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:148)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

Vladimir Kokovic, DP senior, Belgrade, Serbia

Post time:10/29/2010 15:15 By:Guest (Guest)
Title: Happy to give it a run
I am commercially developing products and learn new structures quickly. I like what you have done so am very happy to give it a look. Tried out JavaFX and liked that. Yours looks great but still to try it in implementations. Pay commercial usage when published too. :)