Hi Levente,<br>
<br>
> > Provides regression tests for an issue with background styling in Shout that is fixed in ShoutCore-ct.86.<br>
> <br>
> Is there a way for a human to trigger that issue without <br>
> explicitly mangling the deferred UI messages?<br>
<br>
I'm not aware of any real failure inside the Trunk that results from this bug. PluggableTextMorphPlus >> #stylerStyledInBackground: is pretty robust in this regard. You could try to remove the check from that method and block your VM for a moment while typing a character into a method (background styling) and resetting it via cmd + l (synchronous styling) so that both user events will be processed right after each other before the deferred message can be evaluated. However, I did not try this myself. I stumbled about this bug while looking at a defect in another project that uses a Shout styler and first sends #hasUnacceptedEdits: to a pluggable text morph and then #accept <a href="https://github.com/hpi-swa-lab/babylonian-programming-smalltalk/blob/7a198b0e0592a7e87e6f70837d00692be6c12b6b/packages/Babylonian-UI.package/CodeHolder.extension/instance/addAnnotation.in..st#L24-L27">[1]</a>.<br>
<br>
> Shout's tests live in a separate package: ShoutTests. Is there a reason to <br>
> add the these tests to the Tests package instead?<br>
<br>
This reason is called human error. :-) Will upload ShoutTests-ct.35 right now!<br>
<br>
> > +        [Project current lastDeferredUIMessage]<br>
> > +                whileNotNil: [Project current world runStepMethods].!<br>
> <br>
> Instead of introducing senders of never-used methods into the Trunk, <br>
> I suggest deprecating them and use "common" Smalltalk instead:<br>
> <br>
>     [Project current lastDeferredUIMessage isNil]<br>
>         whileFalse: [Project current world runStepMethods]<br>
<br>
In my image, #whileNil has one sender and #whileNotNil: has three. They feel actually pretty comvenient, but I also see your point of intermixing different domains, yes ...<br>
<br>
Best,<br>
Christoph<br>
<br>
[1] <a href="https://github.com/hpi-swa-lab/babylonian-programming-smalltalk/blob/7a198b0e0592a7e87e6f70837d00692be6c12b6b/packages/Babylonian-UI.package/CodeHolder.extension/instance/addAnnotation.in..st#L24-L27">https://github.com/hpi-swa-lab/babylonian-programming-smalltalk/blob/7a198b0e0592a7e87e6f70837d00692be6c12b6b/packages/Babylonian-UI.package/CodeHolder.extension/instance/addAnnotation.in..st#L24-L27</a><br>
<br>
<font color="#808080">---<br>
</font><i><font color="#808080">Sent from </font></i><i><u><a href="https://github.com/hpi-swa-lab/squeak-inbox-talk"><font color="#808080">Squeak Inbox Talk</font></a></u></i><br>
<br>
On 2021-10-22T16:44:54+02:00, leves@caesar.elte.hu wrote:<br>
<br>
> Hi Christoph,<br>
> <br>
> On Fri, 22 Oct 2021, Thiede, Christoph wrote:<br>
> <br>
> > ==================== Summary ====================<br>
> > <br>
> > Name: Tests-ct.466<br>
> > Author: ct<br>
> > Time: 22 October 2021, 3:28:55.369526 pm<br>
> > UUID: 359b8eb8-e155-4448-8039-42ef17ccb09d<br>
> > Ancestors: Tests-eem.464<br>
> > <br>
> > Provides regression tests for an issue with background styling in Shout that is fixed in ShoutCore-ct.86.<br>
> <br>
> Is there a way for a human to trigger that issue without <br>
> explicitly mangling the deferred UI messages?<br>
> <br>
> > + SystemOrganization addCategory: #'Tests-ShoutCore-Styling'!<br>
> <br>
> Shout's tests live in a separate package: ShoutTests. Is there a reason to <br>
> add the these tests to the Tests package instead?<br>
> <br>
> > Item was added:<br>
> > + ----- Method: ShoutBackgroundStylingTest>>runDeferredUIMessages (in category 'support') -----<br>
> > + runDeferredUIMessages<br>
> > +<br>
> > +        self assert: Smalltalk isMorphic.<br>
> > +       <br>
> > +        [Project current lastDeferredUIMessage]<br>
> > +                whileNotNil: [Project current world runStepMethods].!<br>
> <br>
> Instead of introducing senders of never-used methods into the Trunk, <br>
> I suggest deprecating them and use "common" Smalltalk instead:<br>
> <br>
>     [Project current lastDeferredUIMessage isNil]<br>
>         whileFalse: [Project current world runStepMethods]<br>
> <br>
> > Item was added:<br>
> > + ----- Method: ShoutBackgroundStylingTest>>waitForDeferredUIMessages (in category 'support') -----<br>
> > + waitForDeferredUIMessages<br>
> > +<br>
> > +        [Project current lastDeferredUIMessage]<br>
> > +                whileNil: [10 milliSeconds wait].!<br>
> <br>
> Same as above.<br>
> <br>
> <br>
> Levente<br>
> <br>