|
|
|
|
|
|
Re: How to extend OpenGeneratedFileHandler to position the cursor in the right region [message #1777103 is a reply to message #1777102] |
Fri, 24 November 2017 13:01 |
Steve Hostettler Messages: 81 Registered: June 2016 |
Member |
|
|
I think I got it this is probably the reason:
!STACK 0
java.lang.IllegalArgumentException: Produced region is inconsistent with parent, this: TraceRegion [myOffset=318, myLength=142] associations={
LocationData [TextRegionWithLineInformation [107:54][lineNumber=8, endLineNumber=10]][path=Forex-1.0.0.wkfs]
}, parent: TraceRegion [myOffset=0, myLength=457] associations={
LocationData [TextRegionWithLineInformation [107:54][lineNumber=8, endLineNumber=10]][path=Forex-1.0.0.wkfs]
} nestedRegions={
TraceRegion [myOffset=177, myLength=140] associations={
LocationData [TextRegionWithLineInformation [107:54][lineNumber=8, endLineNumber=10]][path=Forex-1.0.0.wkfs]
}
TraceRegion [myOffset=318, myLength=142] associations={
LocationData [TextRegionWithLineInformation [107:54][lineNumber=8, endLineNumber=10]][path=Forex-1.0.0.wkfs]
}
}
at org.eclipse.xtext.generator.trace.AbstractStatefulTraceRegion.<init>(AbstractStatefulTraceRegion.java:36)
at org.eclipse.xtext.generator.trace.TraceRegion.<init>(TraceRegion.java:58)
at org.eclipse.xtext.generator.trace.TraceRegionSerializer$IdentityStrategy.createRegion(TraceRegionSerializer.java:63)
at org.eclipse.xtext.generator.trace.TraceRegionSerializer$IdentityStrategy.createRegion(TraceRegionSerializer.java:53)
at org.eclipse.xtext.generator.trace.TraceRegionSerializer.doReadFrom(TraceRegionSerializer.java:334)
at org.eclipse.xtext.generator.trace.TraceRegionSerializer.doReadFrom(TraceRegionSerializer.java:337)
at org.eclipse.xtext.generator.trace.TraceRegionSerializer.doReadFrom(TraceRegionSerializer.java:285)
at org.eclipse.xtext.generator.trace.TraceRegionSerializer.readTraceRegionFrom(TraceRegionSerializer.java:169)
at org.eclipse.xtext.generator.trace.internal.AbstractTraceForURIProvider$CachedTraces.getTraceRegion(AbstractTraceForURIProvider.java:125)
at org.eclipse.xtext.generator.trace.internal.AbstractTraceForURIProvider$1.getTraceRegion(AbstractTraceForURIProvider.java:208)
at org.eclipse.xtext.generator.trace.internal.AbstractTrace.doGetRootTraceRegion(AbstractTrace.java:126)
at org.eclipse.xtext.generator.trace.internal.AbstractTrace.getRootTraceRegion(AbstractTrace.java:102)
at org.eclipse.xtext.generator.trace.internal.AbstractTrace.hasTraceData(AbstractTrace.java:109)
at org.eclipse.xtext.ui.generator.trace.TraceBasedOpenerContributor.collectSourceFileOpeners(TraceBasedOpenerContributor.java:75)
at org.eclipse.xtext.ui.generator.trace.TraceOrMarkerBasedOpenerContributor.collectSourceFileOpeners(TraceOrMarkerBasedOpenerContributor.java:35)
at org.eclipse.xtext.ui.shared.internal.OpenSourceFilePropertyTester.canOpenSourceFile(OpenSourceFilePropertyTester.java:43)
at org.eclipse.xtext.ui.shared.internal.OpenSourceFilePropertyTester.test(OpenSourceFilePropertyTester.java:59)
at org.eclipse.core.internal.expressions.Property.test(Property.java:58)
at org.eclipse.core.internal.expressions.TestExpression.evaluate(TestExpression.java:100)
at org.eclipse.core.internal.expressions.CompositeExpression.evaluateAnd(CompositeExpression.java:51)
at org.eclipse.core.internal.expressions.WithExpression.evaluate(WithExpression.java:75)
at org.eclipse.e4.ui.internal.workbench.ContributionsAnalyzer.isCoreExpressionVisible(ContributionsAnalyzer.java:285)
at org.eclipse.e4.ui.internal.workbench.ContributionsAnalyzer.isVisible(ContributionsAnalyzer.java:259)
at org.eclipse.e4.ui.workbench.renderers.swt.ContributionRecord.computeVisibility(ContributionRecord.java:167)
at org.eclipse.e4.ui.workbench.renderers.swt.ContributionRecord.updateVisibility(ContributionRecord.java:98)
at org.eclipse.e4.ui.workbench.renderers.swt.MenuManagerRendererFilter.updateElementVisibility(MenuManagerRendererFilter.java:191)
at org.eclipse.e4.ui.workbench.renderers.swt.MenuManagerRendererFilter.updateElementVisibility(MenuManagerRendererFilter.java:202)
at org.eclipse.ui.internal.WorkbenchWindow$8.run(WorkbenchWindow.java:704)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:37)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:182)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4213)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3820)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1155)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1044)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:153)
at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:680)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:594)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:148)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:151)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:653)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:590)
at org.eclipse.equinox.launcher.Main.run(Main.java:1499)
at org.eclipse.equinox.launcher.Main.main(Main.java:1472)
So now the question is how did I end up generated bad traces.
Thanks so much for your help
|
|
|
|
|
|
|
|
|
Re: How to extend OpenGeneratedFileHandler to position the cursor in the right region [message #1777141 is a reply to message #1777123] |
Fri, 24 November 2017 22:27 |
Steve Hostettler Messages: 81 Registered: June 2016 |
Member |
|
|
Hello,
I did add both
def Class<? extends LineSeparatorHarmonizer> bindLineSeparatorHarmonizer() {
TraceAwarePostProcessor
}
in the RuntimeModule and
def Class<? extends EclipseSourceFolderProvider> bindEclipseSourceFolderProvider() {
JDTAwareSourceFolderProvider
}
in the UIModule but the problem remains.
I also reduced the DSL file to the bare miinimum and I still have that error
!STACK 0
java.lang.IllegalArgumentException: Produced region is inconsistent with parent, this: TraceRegion [myOffset=318, myLength=142] associations={
LocationData [TextRegionWithLineInformation [72:54][lineNumber=5, endLineNumber=7]][path=Forex-1.0.0.wkfs]
}, parent: TraceRegion [myOffset=0, myLength=457] associations={
LocationData [TextRegionWithLineInformation [72:54][lineNumber=5, endLineNumber=7]][path=Forex-1.0.0.wkfs]
} nestedRegions={
TraceRegion [myOffset=177, myLength=140] associations={
LocationData [TextRegionWithLineInformation [72:54][lineNumber=5, endLineNumber=7]][path=Forex-1.0.0.wkfs]
}
TraceRegion [myOffset=318, myLength=142] associations={
LocationData [TextRegionWithLineInformation [72:54][lineNumber=5, endLineNumber=7]][path=Forex-1.0.0.wkfs]
}
}
at org.eclipse.xtext.generator.trace.AbstractStatefulTraceRegion.<init>(AbstractStatefulTraceRegion.java:36)
at org.eclipse.xtext.generator.trace.TraceRegion.<init>(TraceRegion.java:58)
at org.eclipse.xtext.generator.trace.TraceRegionSerializer$IdentityStrategy.createRegion(TraceRegionSerializer.java:63)
at org.eclipse.xtext.generator.trace.TraceRegionSerializer$IdentityStrategy.createRegion(TraceRegionSerializer.java:53)
at org.eclipse.xtext.generator.trace.TraceRegionSerializer.doReadFrom(TraceRegionSerializer.java:334)
at org.eclipse.xtext.generator.trace.TraceRegionSerializer.doReadFrom(TraceRegionSerializer.java:337)
at org.eclipse.xtext.generator.trace.TraceRegionSerializer.doReadFrom(TraceRegionSerializer.java:285)
at org.eclipse.xtext.generator.trace.TraceRegionSerializer.readTraceRegionFrom(TraceRegionSerializer.java:169)
at org.eclipse.xtext.generator.trace.internal.AbstractTraceForURIProvider$CachedTraces.getTraceRegion(AbstractTraceForURIProvider.java:125)
at org.eclipse.xtext.generator.trace.internal.AbstractTraceForURIProvider$1.getTraceRegion(AbstractTraceForURIProvider.java:208)
at org.eclipse.xtext.generator.trace.internal.AbstractTrace.doGetRootTraceRegion(AbstractTrace.java:126)
at org.eclipse.xtext.generator.trace.internal.AbstractTrace.getRootTraceRegion(AbstractTrace.java:102)
at org.eclipse.xtext.generator.trace.internal.AbstractTrace$3.iterator(AbstractTrace.java:460)
at org.eclipse.xtext.generator.trace.internal.AbstractTrace$1$1.<init>(AbstractTrace.java:368)
at org.eclipse.xtext.generator.trace.internal.AbstractTrace$1.iterator(AbstractTrace.java:366)
at org.eclipse.xtext.common.types.shared.jdt38.OriginalEditorSelector.getXtextEditor(OriginalEditorSelector.java:162)
at org.eclipse.xtext.common.types.shared.jdt38.OriginalEditorSelector.findXbaseEditor(OriginalEditorSelector.java:154)
at org.eclipse.xtext.common.types.shared.jdt38.OriginalEditorSelector.overrideEditors(OriginalEditorSelector.java:71)
at org.eclipse.ui.ide.IDE.overrideEditorAssociations(IDE.java:937)
I enabled the traces just by replacing
fsa.generateFile(
function.
toClassFileName, getFunctionStructure(function, context))
by
fsa.generateTracedFile(
function.
toClassFileName, function, getFunctionStructure(function, context))
|
|
|
|
Re: How to extend OpenGeneratedFileHandler to position the cursor in the right region [message #1777155 is a reply to message #1777154] |
Sat, 25 November 2017 08:35 |
Steve Hostettler Messages: 81 Registered: June 2016 |
Member |
|
|
yes on windows, I will try to build a sample.
Did some more investigation and it seems that the problem is that on the following line:
if (parent.getMyOffset() + parent.getMyLength() < getMyOffset() + getMyLength())
return false;
the line
parent.getMyOffset() + parent.getMyLength() = 457
whereas
getMyOffset() + getMyLength() = 460
I understand from your question that you think of a carriage return problem or something of the sort.
The problem with that theory is that I have 26 lines and the difference should be higher. And indeed looking at the generated files:
the actual length is : 26 lines and 482 characters with lines ending with CR/LF
This is however in line with 457 (from the trace My end offset field) + 25 (CR)
So I think the CRLF does explain the missing 25 characters (do not have CRLF on the last line) but the +3 characters mentionned previously.
[Updated on: Sat, 25 November 2017 09:03] Report message to a moderator
|
|
|
|
|
Re: How to extend OpenGeneratedFileHandler to position the cursor in the right region [message #1777790 is a reply to message #1777162] |
Mon, 04 December 2017 16:18 |
Steve Hostettler Messages: 81 Registered: June 2016 |
Member |
|
|
Hello,
sorry for the late answer but I was not able to work on this project for a solid week.
So I reduced the code generation to the bare mimimum and it did work.
Now I am re-emabling step by step code generation.
I get a lot of "Type mismatch: cannot convert from IGeneratorNode to StringConcatenationClient"
What I do not get is that I explicit set the return type:
@Traced def dispatch StringConcatenationClient generatePath(ValueExpression root, Column target, Key key, GeneratorContext context) {
if (root instanceof LookupExpression) {
generatePathForLookup(root as LookupExpression, target, key, context)
}
@Traced def StringConcatenationClient generatePathForLookup(LookupExpression root, Column target, Key key, GeneratorContext context) {
val targetType = DatamodelTypeProvider.typeFor(target)
switch (targetType.class) {
Any idea?
|
|
|
|
|
|
|
|
|
|
|
Powered by
FUDForum. Page generated in 0.07800 seconds