ccw-ide / ccw

Counterclockwise is an Eclipse plugin helping developers write Clojure code
https://github.com/laurentpetit/ccw/wiki/GoogleCodeHome
Eclipse Public License 1.0
218 stars 49 forks source link

Folding feature #846

Open arichiardi opened 8 years ago

arichiardi commented 8 years ago

Hello Laurent, this is the feature for folding, I tried to keep the commits small...

I have already noticed some issue, but please test if/when you can so that we can find more and fix them!

Thanks! :smile: Andrea.

arichiardi commented 8 years ago

I am adding some functional tests..things are still a bit rough..

laurentpetit commented 8 years ago

Hey, is it ready for a review, or is still a bit rough on the edge and you need still some time?

arichiardi commented 8 years ago

I still need some time...

arichiardi commented 8 years ago

Hello Laurent, I think that if you feel like/have time, you can start reviewing this one. I still have to fix some stuff but I don't think I am going to change what is below the commit marked Rebasable/In Progress. It was pretty tough to put all the pieces together and I still have some glitch that I prefer to test so that I am not going to leave anything undocumented. This is especially true for the dreaded #799 fix, which is hard to test directly (I don't think I can grab the background color of the AnnotationRulerColumn, there are many...it takes time to study), but easier to test through invariants on our ClojureEditor. I also took heed of SWTBot's advice and implemented a FoldingBot. They basically say that it becomes easier you create a bot for each "functionality" to test that wrap common actions. I am ready to answer to your comments promply :smile: :smiley: Go go Go !

arichiardi commented 8 years ago

Laurent, I rebased on master and I get:`

Exception in thread "Thread-5" org.eclipse.e4.core.di.InjectionException: Unable to process "EventBroker.logger": no actual value was found for the argument "Logger".
    at org.eclipse.e4.core.internal.di.InjectorImpl.reportUnresolvedArgument(InjectorImpl.java:412)
    at org.eclipse.e4.core.internal.di.InjectorImpl.resolveRequestorArgs(InjectorImpl.java:403)
    at org.eclipse.e4.core.internal.di.InjectorImpl.inject(InjectorImpl.java:108)
    at org.eclipse.e4.core.internal.di.InjectorImpl.internalMake(InjectorImpl.java:333)
    at org.eclipse.e4.core.internal.di.InjectorImpl.make(InjectorImpl.java:254)
    at org.eclipse.e4.core.contexts.ContextInjectionFactory.make(ContextInjectionFactory.java:162)
    at org.eclipse.e4.ui.services.events.EventBrokerFactory.compute(EventBrokerFactory.java:29)
    at org.eclipse.e4.core.internal.contexts.ValueComputation.get(ValueComputation.java:61)
    at org.eclipse.e4.core.internal.contexts.EclipseContext.internalGet(EclipseContext.java:242)
    at org.eclipse.e4.core.internal.contexts.EclipseContext.get(EclipseContext.java:209)
    at org.eclipse.e4.core.internal.contexts.EclipseContext.get(EclipseContext.java:567)
    at ccw.CCWPlugin$2$1.run(CCWPlugin.java:348)
    at java.lang.Thread.run(Thread.java:745)

I remember having had some pain with this Logger. We will prolly need to push a Logger instance. see here

arichiardi commented 8 years ago

Actually, this link is better to see the issue.

arichiardi commented 8 years ago

This feature is ready to review!

I will add ChangeLog and probably a section in our doc of course...