How to import the existing fantom src. I don't create project at existing location. Thanks.
DanielFathSat 24 Sep 2011
@go4. Well in that case create a new project and copy the files manually.
I'd like to ask the kind guys that work on F4 to use util::PathEnv or fanr::FanrEnv to make a common place for all pods compiled with F4. I'm asking this because whenever I change my interpreter (which changes often along with Fantom) I need to copy my old pods into the new fantom directories. This isn't too big of a deal for me but will definitely turn away new-commers that want to update their F4.
Other than that and documentation, I have no big complaints. I really dig your new icon style guys.
ivanSun 25 Sep 2011
@go4, Does creating project at existing location fail for you? I've just verified that it I can, for instance, create a project compiler with sources from Fantom distribution basically in few clicks:
@Daniel, I completely agree, that would be really helpful and I've tracked your request here - http://jira4.xored.com/browse/IDE-102. And thanks for noticing icons - I'll cheer up our designer tomorrow :)
Oh, and by the way new F4 feature requests and bug reports now can be posted to support.xored.com
go4Mon 26 Sep 2011
I can open the compiler. But my code:
java.lang.reflect.InvocationTargetException
at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:421)
at org.eclipse.jface.wizard.WizardDialog.run(WizardDialog.java:1029)
at org.eclipse.dltk.ui.wizards.NewElementWizard.performFinish(NewElementWizard.java:130)
at org.eclipse.dltk.ui.wizards.ProjectWizard.performFinish(ProjectWizard.java:67)
at org.eclipse.jface.wizard.WizardDialog.finishPressed(WizardDialog.java:827)
at org.eclipse.jface.wizard.WizardDialog.buttonPressed(WizardDialog.java:432)
at org.eclipse.jface.dialogs.Dialog$2.widgetSelected(Dialog.java:624)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:240)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4165)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3754)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:825)
at org.eclipse.jface.window.Window.open(Window.java:801)
at org.eclipse.ui.internal.actions.NewWizardShortcutAction.run(NewWizardShortcutAction.java:135)
at org.eclipse.jface.action.Action.runWithEvent(Action.java:498)
at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:584)
at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:501)
at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:411)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4165)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3754)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2696)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2660)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2494)
at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:674)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:667)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:123)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
at org.eclipse.equinox.launcher.Main.run(Main.java:1410)
Caused by: sys::NullErr: Coerce to non-null
at fan.sys.NullErr.make(NullErr.java:25)
at fan.sys.NullErr.makeCoerce(NullErr.java:38)
at fan.f4core.FantomProject$makeFromProject$0.call(FantomProject.fan:73)
at fan.sys.Func$Indirect2.call(Func.java:173)
at fan.sys.List.reduce(List.java:743)
at fan.f4core.FantomProject.makeFromProject$(FantomProject.fan:73)
at fan.f4core.FantomProject.makeFromProject(FantomProject.fan:29)
at fan.f4core.FantomProjectManager.addProject(FantomProjectManager.fan:141)
at fan.f4core.FantomProjectManager.doGet(FantomProjectManager.fan:173)
at sun.reflect.GeneratedMethodAccessor7.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at fan.sys.Method.invoke(Method.java:558)
at fan.sys.Method$MethodFunc.callOn(Method.java:230)
at fan.sys.Method.callOn(Method.java:139)
at fan.f4core.FantomProjectManager.receive(FantomProjectManager.fan:51)
at fan.concurrent.Actor._dispatch(Actor.java:225)
at fan.concurrent.Actor._work(Actor.java:196)
at fan.concurrent.ThreadPool$Worker.run(ThreadPool.java:255)
ivanTue 27 Sep 2011
go4,
Looking at the stack trace it looks like that build.fan contents of your project cannot be parsed (more precisely - F4 cannot understand the depends field). Could you post your build.fan here?
go4Tue 27 Sep 2011
I think I caught it.
depends = [ "sys 1.0", "other 1.0", ]
I have a comma at the last of list literal.
Thank you, ivan
ivanTue 27 Sep 2011
Great! I have created an issue for displaying more user-friendly message in such case
JensSat 8 Oct 2011
This is my list for the most important features for code editing in my view. F4 seems to have almost all of them, only two more is on my which list: Quick Type Hierarchy and Rename.
It looks very good, almost everything there and only version 1.0!
Source generation:
MAYBE NEEDED: "using" organisation This seems to be less a problem in Fantom than in Java, .
DONE Content Assist
Navigation:
DONE Open Type
DONE Open Declaration
DONE Quick Outline
WISH: Quick Type Hierarchy, to jump quickly to sub- and supertypes.
Refactorings:
WISH: Rename. Its in the refactorings menu but does not seem to be working?
Other (minor things):
WISH: Show Tooltip Description (F2). Exists, but doesn't appear to be working.
WISH: Select enclosing element, Select next element. I find those very nice in Java.
yliuThu 13 Oct 2011
A "Run as.. Fantom .pod" that could find the most recently built pod depending on the current interpreter would be convenient. It wasn't obvious right off the bat where the pod was being compiled.
I am not sure what do you mean about "show tooltip descrption" - currently we always show API tooltips when we can find sources (though we need to switch to fandoc API, it is tracked as IDE-35). Another disadvantage is that we don't support cross-references in docs as Java does. Or did you mean something else?
yliu,
Currently launching mechanism we use is pretty simple – right-clicking on editor and secting run as -> fantom class in editor triggers the following actions:
define current class at cursor
if class has main slot, or extends util::AbstractMain, try to find existing launch configuration. If not found create new one.
launch class (basically just by executing fan pod::class)
The compilation targets to <interpreter dir>/lib/fan by default, if not overridden by setting outDir in build.fan explicitly. Thus, setting outDir to some non-default location most likely will "break" launching – either pod will not be found, or older version of pod will be used.
The shift to custom environment and smarter management of compiled pods is one of the most important things in my opinion, pods from workspace should belong to workspace and not deploy into fan/lib/fan automatically.
JensFri 14 Oct 2011
Ivan,
About Show Tooltip Description: This actually works fine. The problem was Ubuntu's white-on-black colour theme, I got black text on black background.
Another very useful, but not essential feature that's high on my prio list is Call hierarchy. Which I just now discovered is already in place!
DONE: Call hierarchy
Brilliant work!
The debugger seemed a little more experimental. But it was impressive that you could step from Fantom code to Java code and back again without a problem.
qualidafialSat 15 Oct 2011
Regarding the debugger, I found myself wishing I could skip the redirection boilerplate of the Func class, such that when I step into a function call, it goes straight to the function body and not the Func.call method.
Also built-in Java step filtering might slightly improve redirection situation, though not remember exactly whether it will affect this particular case with Func.call:
Go to Window -> Preferences -> Java -> Debug -> Step Filtering
Check Use Step Filters and Filter synthetic methods (requires VM support)
Optionally add filter like fan.sys.*
yliuMon 17 Oct 2011
Ivan,
A-Ha, I apologize, I didn't understand how the run as.. Fantom Class worked and assumed it would just run as a script. Also my project was not running because my external files were in the wrong location. (doh)
I'm so happy I can develop in eclipse now...
Many many thanks. bow/applaud
ivanTue 18 Oct 2011
Great, glad to hear! Looks like we definitely need to work on documentation, at least in format of FAQ.
andrey Wed 21 Sep 2011
Hi folks,
Xored released Fantom IDE for Eclipse (F4). Please download it here: http://www.xored.com/f4 and happy coding!
Kind Regards, Xored
DanielFath Wed 21 Sep 2011
Awesome :D any new important features (i.e. is the fandoc new-line working properly).
rfeldman Wed 21 Sep 2011
Congrats on the launch!
How cool is it that Fantom has two IDEs competing already? ;)
jessevdam Thu 22 Sep 2011
Yeh :) jippie, thanks a lot for the great work. Will download it and try it.
ttmrichter Fri 23 Sep 2011
Is there any way to make F4 an add-on to an existing Eclipse installation? All I see are whole-program downloads.
ivan Fri 23 Sep 2011
yes, F4 can be installed into Eclipse 3.6 or Eclipse 3.7 from http://dl.xored.com/f4/1.0/repository/
go4 Sat 24 Sep 2011
How to import the existing fantom src. I don't create project at existing location. Thanks.
DanielFath Sat 24 Sep 2011
@go4. Well in that case create a new project and copy the files manually.
I'd like to ask the kind guys that work on F4 to use
util::PathEnv
orfanr::FanrEnv
to make a common place for all pods compiled with F4. I'm asking this because whenever I change my interpreter (which changes often along with Fantom) I need to copy my old pods into the new fantom directories. This isn't too big of a deal for me but will definitely turn away new-commers that want to update their F4.Other than that and documentation, I have no big complaints. I really dig your new icon style guys.
ivan Sun 25 Sep 2011
@go4, Does creating project at existing location fail for you? I've just verified that it I can, for instance, create a project
compiler
with sources from Fantom distribution basically in few clicks:@Daniel, I completely agree, that would be really helpful and I've tracked your request here - http://jira4.xored.com/browse/IDE-102. And thanks for noticing icons - I'll cheer up our designer tomorrow :)
Oh, and by the way new F4 feature requests and bug reports now can be posted to support.xored.com
go4 Mon 26 Sep 2011
I can open the
compiler
. But my code:ivan Tue 27 Sep 2011
go4,
Looking at the stack trace it looks like that build.fan contents of your project cannot be parsed (more precisely - F4 cannot understand the
depends
field). Could you post your build.fan here?go4 Tue 27 Sep 2011
I think I caught it.
I have a
comma
at the last of list literal.Thank you, ivan
ivan Tue 27 Sep 2011
Great! I have created an issue for displaying more user-friendly message in such case
Jens Sat 8 Oct 2011
This is my list for the most important features for code editing in my view. F4 seems to have almost all of them, only two more is on my which list: Quick Type Hierarchy and Rename.
It looks very good, almost everything there and only version 1.0!
Source generation:
Navigation:
Refactorings:
Other (minor things):
yliu Thu 13 Oct 2011
A "Run as.. Fantom .pod" that could find the most recently built pod depending on the current interpreter would be convenient. It wasn't obvious right off the bat where the pod was being compiled.
ivan Fri 14 Oct 2011
Jens,
I've tracked your wishes in our jira:
I am not sure what do you mean about "show tooltip descrption" - currently we always show API tooltips when we can find sources (though we need to switch to fandoc API, it is tracked as IDE-35). Another disadvantage is that we don't support cross-references in docs as Java does. Or did you mean something else?
yliu,
Currently launching mechanism we use is pretty simple – right-clicking on editor and secting run as -> fantom class in editor triggers the following actions:
main
slot, or extendsutil::AbstractMain
, try to find existing launch configuration. If not found create new one.fan pod::class
)The compilation targets to <interpreter dir>/lib/fan by default, if not overridden by setting outDir in
build.fan
explicitly. Thus, settingoutDir
to some non-default location most likely will "break" launching – either pod will not be found, or older version of pod will be used.The shift to custom environment and smarter management of compiled pods is one of the most important things in my opinion, pods from workspace should belong to workspace and not
deploy
into fan/lib/fan automatically.Jens Fri 14 Oct 2011
Ivan,
About Show Tooltip Description: This actually works fine. The problem was Ubuntu's white-on-black colour theme, I got black text on black background.
Another very useful, but not essential feature that's high on my prio list is Call hierarchy. Which I just now discovered is already in place!
DONE: Call hierarchy
Brilliant work!
The debugger seemed a little more experimental. But it was impressive that you could step from Fantom code to Java code and back again without a problem.
qualidafial Sat 15 Oct 2011
Regarding the debugger, I found myself wishing I could skip the redirection boilerplate of the Func class, such that when I step into a function call, it goes straight to the function body and not the Func.call method.
ivan Sun 16 Oct 2011
I've created IDE-147 Improve user experience during debugging for further work.
Also built-in Java step filtering might slightly improve redirection situation, though not remember exactly whether it will affect this particular case with Func.call:
Window -> Preferences -> Java -> Debug -> Step Filtering
Use Step Filters
andFilter synthetic methods (requires VM support)
fan.sys.*
yliu Mon 17 Oct 2011
Ivan,
A-Ha, I apologize, I didn't understand how the run as.. Fantom Class worked and assumed it would just run as a script. Also my project was not running because my external files were in the wrong location. (doh)
I'm so happy I can develop in eclipse now...
Many many thanks. bow/applaud
ivan Tue 18 Oct 2011
Great, glad to hear! Looks like we definitely need to work on documentation, at least in format of FAQ.