[ANN] eCompletion 3.0b1
Chris Muller
chris at funkyobjects.org
Fri Mar 31 04:02:11 UTC 2006
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
|