> On 24 Jul 2016, at 15:55, Peter Uhnak <[email protected]> wrote: > > On Sun, Jul 24, 2016 at 02:35:13PM +0200, Yuriy Tymchuk wrote: >> I’ve found a partial hack: >> >> whenEdited: aBlock >> "Set a block to perform when the text wasEddited & the widget entered >> hasUnacceptedEdits mode" >> >> hasUnacceptedEdits whenChangedDo: [ :val | >> val ifTrue: aBlock value ] >> >> So now before the text is accepted I can block some other widgets > > wtf is whenEdited: :-o
Thing that is called when the text is edited (when the orange triangle appears). I need a way to know that the text in the editor is different on from the excepted. > > There are couple of bugs I've reported last week in regards to this, because > it's quite annoying. > https://pharo.fogbugz.com/f/cases/18799/TextModel-whenTextChanged-and-whenTextIsAccepted-should-behave-differently > https://pharo.fogbugz.com/f/cases/18800/TextModel-has-inconsistent-text-changed-API > > I guess whenEdited: should be added to those issues. > > Btw, what are you trying to do? Because I was playing around with custom > styling for my DSL (parsed & highlighted by PetitParser), > but got stopped by this same issue. Just RB highlight, but I want it to be switchable i.e. #parseExpression:, #parseMethod:, #parseRewriteExpression:, #parseRewriteMethod: Uko > > Do you use a similar setup? Could we extrapolate something generically useful > from this? > > Peter > > >> >> Uko >> >>> On 24 Jul 2016, at 14:17, Nicolai Hess <[email protected]> wrote: >>> >>> >>> >>> 2016-07-24 13:45 GMT+02:00 Yuriy Tymchuk <[email protected] >>> <mailto:[email protected]>>: >>> There is #pendingText to access it, finally found that. Now I want to >>> detect when someone starts typing and do actions (like disable something >>> until the text is accepted). There is whenTextChanged: but it’s not that >>> useful because it checks if the accepted text has changed. Is there a way >>> to check if pendingCode has changed? Or if the model is entering >>> “hasUnacceptedEdits”? >>> >>> No :( >>> >>> I don't think this is possible. >>> You could turn autoAccept to true and listen for set a whenTextChanged >>> block, but of course, you can not display "unaccepted" text anymore, >>> because all text is accepted. >>> >>> Uko >>> >>>> On 24 Jul 2016, at 12:48, Yuriy Tymchuk <[email protected] >>>> <mailto:[email protected]>> wrote: >>>> >>>> Cool. Thank you Nicolai. While we are on this, is there an example of how >>>> to display the parsing/compilation error as is done in playground? >>>> >>>> Uko >>>> >>>> >>>>> On 24 Jul 2016, at 11:37, Nicolai Hess <[email protected] >>>>> <mailto:[email protected]>> wrote: >>>>> >>>>> >>>>> >>>>> 2016-07-24 11:35 GMT+02:00 Nicolai Hess <[email protected] >>>>> <mailto:[email protected]>>: >>>>> >>>>> >>>>> 2016-07-24 11:14 GMT+02:00 Yuriy Tymchuk <[email protected] >>>>> <mailto:[email protected]>>: >>>>> Hi, >>>>> >>>>> at some moment I wrote a super angry comment about Spec. But as there is >>>>> a big effort put into documentation & improving the framework I’ve >>>>> decided to give it another try. >>>>> >>>>> And guess what, after 10 min I ran into yet one more problem. I was >>>>> expecting that it will be tough to have a custom styling for code, but no >>>>> it’s much simpler: how do I get a text from text model? I type something >>>>> in, sent #getText to the model => nothing. I expect that the problem is >>>>> that the text is not accepted… Why in the first place a basic text model >>>>> needs this “accept” stuff? What if I have just a dialog where someone >>>>> types something and submits it? I don’t need accepts with orange corners >>>>> for that. >>>>> >>>>> textmodel autoAccept: true. >>>>> >>>>> >>>>> I think that you’ve got the idea. I just want to build a simple UI and it >>>>> looks like it’s easier to do it with Morphic… >>>>> >>>>> Cheers. >>>>> Uko >>>>> >>>>> >>>>> But I agree, it is not *that* obvious and I think the behavior even >>>>> changed as we replaced the PluggableTextMorph with Rubric ones - (maybe?) >>>>> >>>>> Anyway, maybe we need a way to distinguish between >>>>> - get visible text (view get text?) >>>>> and >>>>> - get accepted text (model get text?) >>>>> >>>>> nicolai >>>>> >>>> >>> >>> >> >
