[squeak-dev] problem with OCompletion

Levente Uzonyi leves at elte.hu
Tue Dec 7 00:11:22 UTC 2010


On Mon, 6 Dec 2010, Chris Muller wrote:

> Ok, thanks.  But I'm wondering; how do I access OCompletion?
>
> Here is how I installed it:
>
>   trunk image
>   loaded RoelTyper-FredericPluquet.82
>   loaded Ocompletion-ul.88
>
> Then:
>
>    - Opened a hierarchy browser on one of my classes
>    - Select a method, select all text, begin a new method, "test"
>    - The class has an api of three messages that begin with the word "add"
>    - In the body of the method, I type "self ad" but nothing appears.
>    - I tried typing Tab, Alt+Space, Control+Space
>
> So I decided to study accessors of ECPreferences class>>#enabled.
>
> There do not seem to be any!  Browse refererences to ECPreferences,
> then filter by messages that send #enabled..
>
> How is OCompletion functionality invoked?

In Squeak 4.1, it's works after loading. In Squeak 4.2 you have to 
evaluate [ECToolSet register]. Then select ECToolSet as the default 
toolset (you will be asked).


Levente

>
>  - Chris
>
> On Mon, Dec 6, 2010 at 3:13 PM, Levente Uzonyi <leves at elte.hu> wrote:
>> On Mon, 6 Dec 2010, Chris Muller wrote:
>>
>>> Hi, I am trying OCompletion but have stumbled on an apparent problem
>>> right away.  When I simply press Command+b on a class name in a
>>> Smalltalk code editor, I receive the error below.
>>>
>>> I'm have Ocompletion-ul.87, OcompletionSqueakCompatibility-ul.1 loaded.
>>
>> Ocompletion-ul.87 is broken. For Squeak 4.2 use only Ocompletion-ul.88.
>> Don't load OcompletionSqueakCompatibility, because that's for Squeak 4.1.
>> For Squeak 4.1 use Ocompletion-ul.73 with
>> OcompletionSqueakCompatibility-ul.1.
>>
>>
>> Levente
>>
>>>
>>> In fact there are no definitions of ECController>>'editor', so it
>>> cannot ever be anything but nil, so this is almost certainly a bug..?
>>>
>>> Thanks,
>>>  Chris
>>>
>>>
>>> 6 December 2010 2:22:06.292 pm
>>>
>>> VM: unix - Smalltalk
>>> Image: Squeak4.2alpha [latest update: #10738]
>>>
>>> UndefinedObject(Object)>>error:
>>>        Receiver: nil
>>>        Arguments and temporary variables:
>>>                aString:        'Instances of UndefinedObject are not
>>> indexable'
>>>        Receiver's instance variables:
>>> nil
>>>
>>> UndefinedObject(Object)>>errorNotIndexable
>>>        Receiver: nil
>>>        Arguments and temporary variables:
>>>
>>>        Receiver's instance variables:
>>> nil
>>>
>>> UndefinedObject(Object)>>at:put:
>>>        Receiver: nil
>>>        Arguments and temporary variables:
>>>                index:  1
>>>                value:  a SmalltalkEditor
>>>        Receiver's instance variables:
>>> nil
>>>
>>> OController(ECController)>>editor:
>>>        Receiver: an OController
>>>        Arguments and temporary variables:
>>>                theEditor:      a SmalltalkEditor
>>>        Receiver's instance variables:
>>>                model:  a WeakArray(a Workspace)
>>>                menuMorph:      nil
>>>                editor:         nil
>>>                context:        nil
>>>                oppositeChar:   nil
>>>                caret:  nil
>>>                inverseMapping:         nil
>>>                expanded:       nil
>>>                contextClass:   OContext
>>>
>>>
>>> --- The full stack ---
>>> UndefinedObject(Object)>>error:
>>> UndefinedObject(Object)>>errorNotIndexable
>>> UndefinedObject(Object)>>at:put:
>>> OController(ECController)>>editor:
>>> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
>>> OController>>handleKeystrokeBefore:editor:
>>> TextMorphForEditView(TextMorph)>>keyStroke:
>>> TextMorphForEditView>>keyStroke:
>>> TextMorphForEditView(TextMorph)>>handleKeystroke:
>>> KeyboardEvent>>sentTo:
>>> TextMorphForEditView(Morph)>>handleEvent:
>>> TextMorphForEditView(Morph)>>handleFocusEvent:
>>> [] in HandMorph>>sendFocusEvent:to:clear:
>>> [] in PasteUpMorph>>becomeActiveDuring:
>>> BlockClosure>>on:do:
>>> PasteUpMorph>>becomeActiveDuring:
>>> HandMorph>>sendFocusEvent:to:clear:
>>> HandMorph>>sendEvent:focus:clear:
>>> HandMorph>>sendKeyboardEvent:
>>> HandMorph>>handleEvent:
>>> HandMorph>>processEvents
>>> [] in WorldState>>doOneCycleNowFor:
>>> Array(SequenceableCollection)>>do:
>>> WorldState>>handsDo:
>>> WorldState>>doOneCycleNowFor:
>>> WorldState>>doOneCycleFor:
>>> PasteUpMorph>>doOneCycle
>>> [] in Project class>>spawnNewProcess
>>> [] in BlockClosure>>newProcess
>>>
>>>
>>
>>
>
>


More information about the Squeak-dev mailing list