[ANN] eCompletion 3.0b1

Ruben Bakker ruben.bakker1 at gmail.com
Fri Mar 31 07:10:53 UTC 2006


Thank you all for the positive feedback!!!

@chris: I've fixed the bug. It would be great if you could test it.
Just download the latest version from squeaksource and give it a try.
Here is the link:
http://www.squeaksource.com/eCompletion/ECompletion-bar.78.mcz.
Concerning #mouseOverForKeyboardFocus - I'll look into it... and give
you feedback.

Ruben

On 3/31/06, Chris Muller <chris at funkyobjects.org> wrote:
> Stunning.  Simply gorgeous.
>
> It is high time Squeak got a such a nice and serious productivity
> update to its core dev tools.  I knew someone would do it eventually.
> This level of auto-completion is finally on par with eclipse.
>
> It looks like you've really given great consideration to the subtle
> usability.  I *really* like the keyboard support; thank you for that.
> Good keyboard support really helps me go faster.
>
> Even the web site is gorgeous, simple and.. heh, uncomplex!  :)
>
> I had tried the previous version of eCompletion a while ago (still have
> it installed) but eventually turned it off because it doesn't seem to
> work well with #mouseOverForKeyboardFocus enabled.  I run with this on
> all the time just so I can easily close windows with command+w.  I'm
> always opening a (hierarchy or tracing-messages) browser and then
> conveniently closing via keyboard.  Ha!  Ironically, I suppose this has
> been my "poor-mans" ecompletion, I'll probably switch to the real thing
> now (I will miss command+w)..
>
> Thanks for the great contribution!
>  Chris
>
> PS - I hit a couple of notifications..  Here's one of them.
>
> 30 March 2006 9:52:44 pm
>
> VM: Win32 - a SmalltalkImage
> Image: Squeak3.8 [latest update: #6665]
>
> SecurityManager state:
> Restricted: false
> FileAccess: true
> SocketAccess: true
> Working Dir C:\Development\Chris\Development\Squeak
> Trusted Dir C:\Development\Chris\Development\Squeak\Chris
> Untrusted Dir C:\My Squeak\Chris
>
> UndefinedObject(Object)>>doesNotUnderstand: #model
>         Receiver: nil
>         Arguments and temporary variables:
>                 aMessage:       model
>         Receiver's instance variables:
> nil
>
> TextMorph>>keyStroke:
>         Receiver: a TextMorph(2873)
>         Arguments and temporary variables:
>                 evt:    [keystroke '<left>']
>                 action:         nil
>                 completionAllowed:      nil
>                 stringHolder:   nil
>         Receiver's instance variables:
>                 bounds:         522 at 482 corner: 894 at 652
>                 owner:  an ECDetailMorph(1665)
>                 submorphs:      #()
>                 fullBounds:     522 at 482 corner: 894 at 652
>                 color:  Color black
>                 extension:      a MorphExtension (1702) [other:  (autoFitContents ->
> false)]
>                 borderWidth:    0
>                 borderColor:    Color black
>                 textStyle:      a TextStyle Verdana
>                 text:   a Text for 'actionMap
>
>         ^EventManager actionMapFor: self'
>                 wrapFlag:       true
>                 paragraph:      a MultiNewParagraph
>                 editor:         nil
>                 container:      nil
>                 predecessor:    nil
>                 successor:      nil
>                 backgroundColor:        nil
>                 margins:        nil
>
> TextMorph>>handleKeystroke:
>         Receiver: a TextMorph(2873)
>         Arguments and temporary variables:
>                 anEvent:        [keystroke '<left>']
>                 pasteUp:        nil
>         Receiver's instance variables:
>                 bounds:         522 at 482 corner: 894 at 652
>                 owner:  an ECDetailMorph(1665)
>                 submorphs:      #()
>                 fullBounds:     522 at 482 corner: 894 at 652
>                 color:  Color black
>                 extension:      a MorphExtension (1702) [other:  (autoFitContents ->
> false)]
>                 borderWidth:    0
>                 borderColor:    Color black
>                 textStyle:      a TextStyle Verdana
>                 text:   a Text for 'actionMap
>
>         ^EventManager actionMapFor: self'
>                 wrapFlag:       true
>                 paragraph:      a MultiNewParagraph
>                 editor:         nil
>                 container:      nil
>                 predecessor:    nil
>                 successor:      nil
>                 backgroundColor:        nil
>                 margins:        nil
>
> KeyboardEvent>>sentTo:
>         Receiver: [keystroke '<left>']
>         Arguments and temporary variables:
>                 anObject:       a TextMorph(2873)
>         Receiver's instance variables:
>                 timeStamp:      35880924
>                 source:         a HandMorph(2006)
>                 type:   #keystroke
>                 buttons:        0
>                 position:       704 at 523
>                 handler:        nil
>                 wasHandled:     true
>                 keyValue:       28
>
>
> --- The full stack ---
> UndefinedObject(Object)>>doesNotUnderstand: #model
> TextMorph>>keyStroke:
> TextMorph>>handleKeystroke:
> KeyboardEvent>>sentTo:
>  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> TextMorph(Morph)>>handleEvent:
> MorphicEventDispatcher>>dispatchDefault:with:
> MorphicEventDispatcher>>dispatchEvent:with:
> TextMorph(Morph)>>processEvent:using:
> MorphicEventDispatcher>>dispatchDefault:with:
> MorphicEventDispatcher>>dispatchEvent:with:
> ECDetailMorph(Morph)>>processEvent:using:
> MorphicEventDispatcher>>dispatchDefault:with:
> MorphicEventDispatcher>>dispatchEvent:with:
> ECMenuMorph(Morph)>>processEvent:using:
> MorphicEventDispatcher>>dispatchDefault:with:
> MorphicEventDispatcher>>dispatchEvent:with:
> PasteUpMorph(Morph)>>processEvent:using:
> PasteUpMorph>>processEvent:using:
> PasteUpMorph(Morph)>>processEvent:
> HandMorph>>sendEvent:focus:clear:
> HandMorph>>sendKeyboardEvent:
> HandMorph>>handleEvent:
> HandMorph>>processEvents
> [] in WorldState>>doOneCycleNowFor: {[:h |  ActiveHand := h.  h
> processEvents.  capturingGesture := capturingGest...]}
> Array(SequenceableCollection)>>do:
> WorldState>>handsDo:
> WorldState>>doOneCycleNowFor:
> WorldState>>doOneCycleFor:
> PasteUpMorph>>doOneCycle
> [] in Project class>>spawnNewProcess {[[World doOneCycle.  Processor
> yield.  false] whileFalse.  nil]}
> [] in BlockContext>>newProcess {[self value.  Processor
> terminateActive]}
>
>
>
> --- Ruben Bakker <ruben.bakker1 at gmail.com> wrote:
>
> > On SqueakMap you'll find a new release of eCompletion. There are a
> > bunch of new features to be tried and tested:
> >
> > - Integration with RoelTyper (created by Roel Wuyts) for better
> > instance variable type determination.
> > - New detail pane for current menu entry
> > - Open a (class, implementers) browser on a menu entry
> > - menu paging (PageUp, PageDown, Home, End)
> > - Character completion for quotes, brackets etc.
> > - Uses same colors as Shout
> > - Help
> >
> > 3.0b1 is beta, so I didn't publish it. In "Squeakmap Package Loader"
> > you need to open the eCompletion entry and install the version 3.0b1
> > by right clicking and choosing "install" on it.
> >
> > eCompletion got a new home: http://uncomplex.net/ecompletion. You'll
> > find more documentation there.
> >
> > Please don't hesitate to send me bug reports, suggestions and
> > feedback!
> >
> > Ruben
> >
> >
> >
>
>
>
>
>



More information about the Squeak-dev mailing list