[squeak-dev] How to force selection update in the debugger?

Eliot Miranda eliot.miranda at gmail.com
Thu Nov 15 20:33:48 UTC 2012


Thanks, Bob.  I'll try the occasional approach.  That indeed seems to do
what I want.


On Thu, Nov 15, 2012 at 5:40 AM, Bob Arning <arning315 at comcast.net> wrote:

>  If you want speed, then why not limit the visual updates to something
> you can see:
>
> doStepSeveral
>
>     | n t lastDisplay |
>     t := [
>         (n := 500) timesRepeat: [
>             self doStep.
>         ].
>     ] timeToRun.
>     Transcript show: t asString,' ms for ',n asString,' steps without
> display'; cr.
>
>     t := [
>         (n := 500) timesRepeat: [
>
>             self doStep.
>             self changed: #contentsSelection.
>             World displayWorldSafely.
>         ].
>     ] timeToRun.
>     Transcript show: t asString,' ms for ',n asString,' steps with
> display'; cr.
>
>     lastDisplay := Time millisecondClockValue.
>     t := [
>         (n := 500) timesRepeat: [
>             self doStep.
>             (lastDisplay - Time millisecondClockValue) abs > 20 ifTrue: [
>                 lastDisplay := Time millisecondClockValue.
>
>                 self changed: #contentsSelection.
>                 World displayWorldSafely.
>             ].
>         ].
>     ] timeToRun.
>     Transcript show: t asString,' ms for ',n asString,' steps with
> occasional display'; cr.
>
> yields:
>
> 68 ms for 500 steps without display
> 4290 ms for 500 steps with display
> 101 ms for 500 steps with occasional display
>
> Cheers,
> Bob
>
>  On 11/15/12 3:16 AM, Eliot Miranda wrote:
>
> Hi Bob,
>
>     thanks, but no thanks <blush>.  I want to see the update as fast as
> possible, even if it flickers like crazy.  I don't want to display the
> whole world, just the text morph in question.
>
>
> On Wed, Nov 14, 2012 at 11:13 AM, Bob Arning <arning315 at comcast.net>wrote:
>
>>  This works for me:
>>
>> doStepSeveral
>>
>>     10 timesRepeat: [
>>         self doStep.
>>         self changed: #contentsSelection.
>>         World displayWorldSafely.
>>         (Delay forMilliseconds: 100) wait.    "in case you want to see
>> each step"
>>     ]
>>
>>
>> Cheers,
>> Bob
>>
>>   On 11/14/12 1:26 PM, Eliot Miranda wrote:
>>
>> Hi All,
>>
>>      I submitted a run until feature for the debugger to the Squeak
>> inbox recently and would commit it to trunk except that I'd like the option
>> of having the selection update on each step.  But I can't see how to do
>> that.  I *think* selection update is done with a callback here in
>> Debugger>>contents:selection:
>>
>>
>>  Smalltalk isMorphic ifTrue:
>>  [World
>>  addAlarm: #changed:
>>  withArguments: #(contentsSelection)
>>  for: self
>>  at: (Time millisecondClockValue + 200)].
>>
>> And I'm not sure how this causes the selection to update.  Is it part of
>> text morph draw or a separate thing?  This is too convoluted to look
>> through.  So perhaps someone can help e.  If I want the selection to redraw
>> what's the minimum action necessary.  This is as part of a loop that looks
>> like
>>
>>   [self selectedContext == context
>>  and: [(value := receiver with: context executeMethod: method) ==
>> false]] whileTrue:
>>  [self doStep].
>>
>>  i.e. after the doStep I'd like to force the code pane to update its
>> selection.
>>
>>  AdvThanksance
>> --
>> best,
>> Eliot
>>
>>
>>
>>
>>
>>
>>
>>
>
>
>  --
> best,
> Eliot
>
>
>
>
>
>
>
>


-- 
best,
Eliot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20121115/0cd27a06/attachment.htm


More information about the Squeak-dev mailing list