A new version of Morphic was added to project The Inbox:
http://source.squeak.org/inbox/Morphic-ct.1586.mcz ==================== Summary ==================== Name: Morphic-ct.1586 Author: ct Time: 10 November 2019, 4:06:17.228559 pm UUID: d752eb23-2116-0945-b043-aff08fed94fd Ancestors: Morphic-mt.1584 Proposal: Style printIt results as a pluggable link that can be clicked to inspect the result. To enable this behavior, this commit also extends #insertAndSelect:at: to allow for inserting both strings and texts. =============== Diff against Morphic-mt.1584 =============== Item was changed: ----- Method: PluggableTextMorph>>printIt (in category 'menu commands') ----- printIt | oldEditor | textMorph editor selectFrom: selectionInterval first to: selectionInterval last; model: model. "For, eg, evaluateSelection" textMorph handleEdit: [(oldEditor := textMorph editor) evaluateSelectionAndDo: [:result | selectionInterval := oldEditor selectionInterval. textMorph installEditorToReplace: oldEditor. + textMorph handleEdit: [ oldEditor afterSelectionInsertAndSelect: + (oldEditor printTextFor: result)]. - textMorph handleEdit: [oldEditor afterSelectionInsertAndSelect: result printString]. selectionInterval := oldEditor selectionInterval. textMorph editor selectFrom: selectionInterval first to: selectionInterval last. self scrollSelectionIntoView]]! Item was changed: ----- Method: TextEditor>>afterSelectionInsertAndSelect: (in category 'new selection') ----- + afterSelectionInsertAndSelect: aStringOrText - afterSelectionInsertAndSelect: aString + self insertAndSelect: aStringOrText at: self stopIndex ! - self insertAndSelect: aString at: self stopIndex ! Item was changed: ----- Method: TextEditor>>insertAndSelect:at: (in category 'new selection') ----- + insertAndSelect: aStringOrText at: anInteger - insertAndSelect: aString at: anInteger + aStringOrText isString ifTrue: [ + ^ self + insertAndSelect: (Text string: aStringOrText attributes: emphasisHere) + at: anInteger]. - self closeTypeIn. + self closeTypeIn. self selectInvisiblyFrom: anInteger to: anInteger - 1. self openTypeIn. self replace: self selectionInterval + with: (Text string: ' ' attributes: emphasisHere), aStringOrText - with: (Text string: (' ', aString) attributes: emphasisHere) and: []. - self closeTypeIn.! Item was changed: ----- Method: TextEditor>>printIt (in category 'do-its') ----- printIt self evaluateSelectionAndDo: [:result | (model respondsTo: #printIt:result:) ifTrue: [model perform: #printIt:result: with: self selection with: result] + ifFalse: [self afterSelectionInsertAndSelect: (self printTextFor: result)]]! - ifFalse: [self afterSelectionInsertAndSelect: result printString]]! Item was added: + ----- Method: TextEditor>>printTextFor: (in category 'do-its') ----- + printTextFor: anObject + + ^ Text + string: anObject printString + attributes: {PluggableTextAttribute evalBlock: [anObject inspect]}! |
Von: Squeak-dev <[hidden email]> im Auftrag von [hidden email] <[hidden email]>
Gesendet: Sonntag, 10. November 2019 16:06:26 An: [hidden email] Betreff: [squeak-dev] The Inbox: Morphic-ct.1586.mcz A new version of Morphic was added to project The Inbox:
http://source.squeak.org/inbox/Morphic-ct.1586.mcz ==================== Summary ==================== Name: Morphic-ct.1586 Author: ct Time: 10 November 2019, 4:06:17.228559 pm UUID: d752eb23-2116-0945-b043-aff08fed94fd Ancestors: Morphic-mt.1584 Proposal: Style printIt results as a pluggable link that can be clicked to inspect the result. To enable this behavior, this commit also extends #insertAndSelect:at: to allow for inserting both strings and texts. =============== Diff against Morphic-mt.1584 =============== Item was changed: ----- Method: PluggableTextMorph>>printIt (in category 'menu commands') ----- printIt | oldEditor | textMorph editor selectFrom: selectionInterval first to: selectionInterval last; model: model. "For, eg, evaluateSelection" textMorph handleEdit: [(oldEditor := textMorph editor) evaluateSelectionAndDo: [:result | selectionInterval := oldEditor selectionInterval. textMorph installEditorToReplace: oldEditor. + textMorph handleEdit: [ oldEditor afterSelectionInsertAndSelect: + (oldEditor printTextFor: result)]. - textMorph handleEdit: [oldEditor afterSelectionInsertAndSelect: result printString]. selectionInterval := oldEditor selectionInterval. textMorph editor selectFrom: selectionInterval first to: selectionInterval last. self scrollSelectionIntoView]]! Item was changed: ----- Method: TextEditor>>afterSelectionInsertAndSelect: (in category 'new selection') ----- + afterSelectionInsertAndSelect: aStringOrText - afterSelectionInsertAndSelect: aString + self insertAndSelect: aStringOrText at: self stopIndex ! - self insertAndSelect: aString at: self stopIndex ! Item was changed: ----- Method: TextEditor>>insertAndSelect:at: (in category 'new selection') ----- + insertAndSelect: aStringOrText at: anInteger - insertAndSelect: aString at: anInteger + aStringOrText isString ifTrue: [ + ^ self + insertAndSelect: (Text string: aStringOrText attributes: emphasisHere) + at: anInteger]. - self closeTypeIn. + self closeTypeIn. self selectInvisiblyFrom: anInteger to: anInteger - 1. self openTypeIn. self replace: self selectionInterval + with: (Text string: ' ' attributes: emphasisHere), aStringOrText - with: (Text string: (' ', aString) attributes: emphasisHere) and: []. - self closeTypeIn.! Item was changed: ----- Method: TextEditor>>printIt (in category 'do-its') ----- printIt self evaluateSelectionAndDo: [:result | (model respondsTo: #printIt:result:) ifTrue: [model perform: #printIt:result: with: self selection with: result] + ifFalse: [self afterSelectionInsertAndSelect: (self printTextFor: result)]]! - ifFalse: [self afterSelectionInsertAndSelect: result printString]]! Item was added: + ----- Method: TextEditor>>printTextFor: (in category 'do-its') ----- + printTextFor: anObject + + ^ Text + string: anObject printString + attributes: {PluggableTextAttribute evalBlock: [anObject inspect]}!
Carpe Squeak!
|
+1 Best, Marcel
|
Only drawback: If you copy the result to use it for another computation, you spread the link formatting all over your code ... Von: Squeak-dev <[hidden email]> im Auftrag von Taeumel, Marcel
Gesendet: Dienstag, 12. November 2019 10:36:07 An: John Pfersich via Squeak-dev Betreff: Re: [squeak-dev] The Inbox: Morphic-ct.1586.mcz
+1
Best,
Marcel
Carpe Squeak!
|
Is it because you do not append "emphasisHere" after your custom emphasis?
|
Hi Marcel,
Thanks for the hint, I played a bit around with emphasisHere. But if I am not mistaken, you cannot set emphasisHere for the next character to be typed while another text (the printIt result) is currently selected?
This is also only one half of the problem. Personally, I often copy one printIt result to use it at another place. (I know, variables would be a better option, however, I feel convenient to do this.) It looks kind of weird if this link is spread all over your workspace:
So unless someone has a great idea to avoid this (a special RunArray of attributes that are private to an editor? a TextAttribute that cannot be copied?), I would rather tend to withdraw my proposal ...
(Btw: A somehow related issue is that the search bar accepts formatted text from clipboard but does not style it, so in my image, it often looks kind of missstyled: )
Best, Christoph Von: Squeak-dev <[hidden email]> im Auftrag von Taeumel, Marcel
Gesendet: Dienstag, 12. November 2019 14:05:23 An: John Pfersich via Squeak-dev Betreff: Re: [squeak-dev] The Inbox: Morphic-ct.1586.mcz
Is it because you do not append "emphasisHere" after your custom emphasis?
Carpe Squeak!
|
> ... spread all over your workspace ... What do you mean by that? Copy-and-paste of text should always carry those attributes. With "spreading" I thought you mean you would unintentionally extend those text links to other characters. What about this style after a print-it : World extent 3840@2004 [explore] Tricky. We want to preserve to preserve the actual #printString ... Does [cmd]+[0] still work? Best, Marcel
|
Hi Marcel,
yes, <cmd>0 still works. It is an interesting idea to put the link aside to the actual print string, but I have to admit that both approaches would make the usual workflow of copying and reusing the printIt string more complicated, unfortunately ...
Another idea, should we maybe consider some kind of TextMorph/editor extension that is indeed not affected by clipboard? Visually, something like:
Such a text attachment would need to be laid out like regular TextAnchors, however, they must not be selected by the cursor. One could describe the idea as an extension to the TextAnchor that prohibits an editor to select it.
***
BTW: Another related problem is that unless you delete the printed-it string, all following commands in a workspace will be miss-styled (see above). Someone recently mentioned that Pharo restarts styling after #codeExcess in each new line, which sounds great. Should we maybe add a similar feature to Shout?
Best, Christoph Von: Squeak-dev <[hidden email]> im Auftrag von Taeumel, Marcel
Gesendet: Donnerstag, 14. November 2019 09:28:58 An: John Pfersich via Squeak-dev Betreff: Re: [squeak-dev] The Inbox: Morphic-ct.1586.mcz
> ... spread all over your workspace ...
What do you mean by that? Copy-and-paste of text should always
carry those attributes. With "spreading" I thought you mean you would unintentionally extend those text links to other characters.
What about this style after a print-it :
World extent
3840@2004
[explore]
Tricky. We want to preserve to preserve the actual #printString
... Does [cmd]+[0] still work?
Best,
Marcel
Carpe Squeak!
|
If you're wanting the result of a printit to be easily inspectable I see a couple of easy options -
a) the printit is already highlighted so all you have to do is cmd-i b) if that isn't good enough - maybe you clicked somewhere else and want to go back, and it's too much work to select the relevant text - how about adding another text attribute for 'inspect this'? We already have 'do it', 'print it' and 'link', and I assume you're intending to add 'code style it' sometime soon. tim -- tim Rowledge; [hidden email]; http://www.rowledge.org/tim Florida: more red in the face |
In reply to this post by Christoph Thiede
> ... the usual workflow of copying and reusing the printIt string more complicated ... Note that print-it does not always produce a "store string" and is thus not always executable. ;-) Best, Marcel
|
I know, but sometimes it is executable, and I would not like to miss this possibility :-)
@tim: Such a TextPrintIt (subclass of TextDoIt) sounds interesting! However, it does not solve the problem that you are not able to copy the plain text even longer, I think.
Just another idea (I seem to have too many of them :D): Some kind of UnderlyingObjectAttribute (with a better name, of course) an editor can check the selection before compiling it when inspectIt/exploreIt is pressed?
Example 1: ('2 + 3' asText) -> User presses inspectIt -> Editor checks for UnderylingObjectAttribute -> none found, so the string is compilaed as usual. Example 2: (Text string: '2 + 3' attributes: (UnderylingObjectAttribute for: 5)) -> User presses inspectIt -> Editor finds an UnderylingObjectAttribute -> instead of compiling the selection, the cached result is reused for the inspector. We would not even need to display this Attribute visually if it works reliably.
Best, Christoph Von: Squeak-dev <[hidden email]> im Auftrag von Taeumel, Marcel
Gesendet: Freitag, 15. November 2019 09:25:12 An: John Pfersich via Squeak-dev Betreff: Re: [squeak-dev] The Inbox: Morphic-ct.1586.mcz
> ... the usual workflow of copying and reusing the printIt string more complicated ...
Note that print-it does not always produce a "store string" and is thus not always executable. ;-)
Best,
Marcel
Carpe Squeak!
|
Thiede, Christoph <[hidden email]> schrieb am Fr., 15. Nov. 2019, 09:38:
Make sure it is transient in some way because it would be quite annoying if the hidden object were out of date with regards to the text. |
Hi all! It is now in Trunk. You can opt-out via the preference browser. Still, you will be asked the first time when you update your image. CI scripts will default to "true". Best, Marcel
|
Hi Marcel, it's great that you have found a solution to this idea! :-)
> + ^ (self class interactivePrintIt and: [(anObject isString or: [anObject isNumber]) not]) Is this necessary? I know that an inspector for a literal object like these does not make great sense, but this just feels like an unnecessary heuristic and limitation for me and adds complexity. I would like to be able to open an inspector always. Also
consider this snippet where the print-link does not exist for an MCVersionName: :-)
> CI scripts will default to "true".
Unfortunately, no, mine just timed out while preparing the image. Also, my server images for @SqueakSmalltalkBot were interrupted. I'd opt for keeping preamble/postscript content in the update stream strictly non-interactive. :-)
Best, Christoph
Von: Squeak-dev <[hidden email]> im Auftrag von Taeumel, Marcel
Gesendet: Freitag, 16. April 2021 17:27:54 An: squeak-dev Betreff: Re: [squeak-dev] The Inbox: Morphic-ct.1586.mcz
Hi all!
It is now in Trunk. You can opt-out via the preference browser. Still, you will be asked the first time when you update your image. CI scripts will default to "true".
Best,
Marcel
Carpe Squeak!
|
Hi Christoph, I think that this clickable link is a compromise between printString and storeString. For mouse navigation, you can always choose "inspect it" from the context menu on that text selection. ;-) I also found the link color annyoing for simple literals. > Also consider this snippet where the print-link does not exist for an MCVersionName Looks fine. ^__^ I am certain that we will collect more feedback on this feature during the next weeks and months. Let's refine it then. Best, Marcel
|
Hi Marcel,
I still stumble upon this edge case for some print-it results that do not support click-to-inspect. Why do we need this exception? :-) > > Also consider this snippet where the print-link does not exist for an MCVersionName
>
> Looks fine.
I don't think it looks fine, why do you think so? :-)
Best,
Christoph
Von: Squeak-dev <[hidden email]> im Auftrag von Taeumel, Marcel
Gesendet: Freitag, 16. April 2021 19:52:16 An: squeak-dev Betreff: Re: [squeak-dev] The Inbox: Morphic-ct.1586.mcz
Hi Christoph,
I think that this clickable link is a compromise between printString and storeString. For mouse navigation, you can always choose "inspect it" from the context menu on that text selection. ;-) I also found the link color annyoing for simple literals.
> Also consider this snippet where the print-link does not exist for an MCVersionName
Looks fine. ^__^ I am certain that we will collect more feedback on this feature during the next weeks and months. Let's refine it then.
Best,
Marcel
Carpe Squeak!
|
Hi Christoph, hi all. I think that we should not highlight the following kinds of Objects to reserve this feature for really interesting structures that are worth inspecting without an extra evaluate. The kinds to ignore are: ByteString ByteSymbol Number Boolean UndefinedObject So, we can use both (1) visuals and (2) interactivity to let the more complex objects say: "Hey, I have interesting structure! Did you mix up print-it with inspect-it? No worries, just click on me." This effect will not be if any stoopid literal gets this treatment. :-) Best, Marcel
|
All,
How about: Object>>isInspectable ^true ByteString>>isInspectable ^false Number>>isInspectable ^false ... so inspectors can skip unitary objects? Just a thought .. Subbu On 19/04/21 8:36 pm, Marcel Taeumel wrote: > Hi Christoph, hi all. > > I think that we should not highlight the following kinds of Objects to > reserve this feature for really interesting structures that are worth > inspecting without an extra evaluate. The kinds to ignore are: > > ByteString > ByteSymbol > Number > Boolean > UndefinedObject > > So, we can use both (1) visuals and (2) interactivity to let the more > complex objects say: "Hey, I have interesting structure! Did you mix up > print-it with inspect-it? No worries, just click on me." > > This effect will not be if any stoopid literal gets this treatment. :-) > > Best, > Marcel >> >> Am 19.04.2021 13:21:53 schrieb Thiede, Christoph >> <[hidden email]>: >> >> Hi Marcel, >> >> >> I still stumble upon this edge case for some print-it results that do >> not support click-to-inspect. Why do we need this exception? :-) >> >> >> > > Also consider this snippet where the print-link does not exist for >> an MCVersionName >> > >> > Looks fine. >> >> I don't think it looks fine, why do you think so? :-) >> >> Best, >> Christoph >> ------------------------------------------------------------------------ >> *Von:* Squeak-dev <[hidden email]> im >> Auftrag von Taeumel, Marcel >> *Gesendet:* Freitag, 16. April 2021 19:52:16 >> *An:* squeak-dev >> *Betreff:* Re: [squeak-dev] The Inbox: Morphic-ct.1586.mcz >> Hi Christoph, >> >> I think that this clickable link is a compromise between printString >> and storeString. For mouse navigation, you can always choose "inspect >> it" from the context menu on that text selection. ;-) I also found the >> link color annyoing for simple literals. >> >> > Also consider this snippet where the print-link does not exist for >> an MCVersionName >> >> Looks fine. ^__^ I am certain that we will collect more feedback on >> this feature during the next weeks and months. Let's refine it then. >> >> Best, >> Marcel >>> >>> Am 16.04.2021 18:39:10 schrieb Thiede, Christoph >>> <[hidden email]>: >>> >>> Hi Marcel, it's great that you have found a solution to this idea! :-) >>> >>> >>> > + ^ (self class interactivePrintIt and: [(anObject isString >>> or: [anObject isNumber]) not]) >>> >>> >>> Is this necessary? I know that an inspector for a literal object like >>> these does not make great sense, but this just feels like an >>> unnecessary heuristic and limitation for me and adds complexity. I >>> would like to be able to open an inspector always. Also consider this >>> snippet where the print-link does not exist for an MCVersionName: :-) >>> >>> MCRepository inbox allFileNames first >>> >>> >>> > CI scripts will default to "true". >>> >>> >>> Unfortunately, no, mine just timed out while preparing the image. >>> Also, my server images for @SqueakSmalltalkBot were interrupted. I'd >>> opt for keeping preamble/postscript content in the update stream >>> strictly non-interactive. :-) >>> >>> >>> Best, >>> >>> Christoph >>> >>> >>> ------------------------------------------------------------------------ >>> *Von:* Squeak-dev <[hidden email]> im >>> Auftrag von Taeumel, Marcel >>> *Gesendet:* Freitag, 16. April 2021 17:27:54 >>> *An:* squeak-dev >>> *Betreff:* Re: [squeak-dev] The Inbox: Morphic-ct.1586.mcz >>> Hi all! >>> >>> It is now in Trunk. You can opt-out via the preference browser. >>> Still, you will be asked the first time when you update your image. >>> CI scripts will default to "true". >>> >>> Best, >>> Marcel >>>> >>>> Am 17.11.2019 17:36:11 schrieb Jakob Reschke <[hidden email]>: >>>> >>>> Thiede, Christoph <[hidden email] >>>> <mailto:[hidden email]>> schrieb am >>>> Fr., 15. Nov. 2019, 09:38: >>>> >>>> >>>> Just another idea (I seem to have too many of them :D): Some >>>> kind of UnderlyingObjectAttribute (with a better name, of >>>> course) an editor can check the selection before compiling it >>>> when inspectIt/exploreIt is pressed? >>>> >>>> >>>> Example 1: ('2 + 3' asText) -> User presses inspectIt -> Editor >>>> checks for UnderylingObjectAttribute -> none found, so the >>>> string is compilaed as usual. >>>> >>>> Example 2: (Text string: '2 + 3' attributes: >>>> (UnderylingObjectAttribute for: 5)) -> User presses inspectIt -> >>>> Editor finds an UnderylingObjectAttribute -> instead of >>>> compiling the selection, the cached result is reused for >>>> the inspector. >>>> >>>> We would not even need to display this Attribute visually if it >>>> works reliably. >>>> >>>> >>>> Make sure it is transient in some way because it would be quite >>>> annoying if the hidden object were out of date with regards to the text. > > |
Hi Marcel, hi all,
I keeping considering this type check as something bad and unexpected. :-)
First, as I have mentioned earlier, subclasses of ByteString can be indeed non-trivial. This applies to MCVersionName, for example. Second, even a string can be non-trivial, for instance, "String value: 1234", where I only will see a question mark unless I inspect the result. Yes, in the second example, I could also trouble the Compiler again for a new inspect-it, but I just don't see why we should restrict these useful links for certain types of results. Also, in all situations where you do some experiments concerning identity, an inspector would be very helpful to track individual instances. Re-evaluating the expression would not be a solution here.
To summarize, I just would not say that any object in Squeak can have a boring structure. It's just the other way around, these clickable results are a great way to make the inspector more visible in the system.
PS: We should also consider making the new links available for print-its in the search bar.
Best, Christoph Von: Squeak-dev <[hidden email]> im Auftrag von K K Subbu <[hidden email]>
Gesendet: Montag, 19. April 2021 18:23:22 An: [hidden email] Betreff: Re: [squeak-dev] The Inbox: Morphic-ct.1586.mcz All,
How about: Object>>isInspectable ^true ByteString>>isInspectable ^false Number>>isInspectable ^false ... so inspectors can skip unitary objects? Just a thought .. Subbu On 19/04/21 8:36 pm, Marcel Taeumel wrote: > Hi Christoph, hi all. > > I think that we should not highlight the following kinds of Objects to > reserve this feature for really interesting structures that are worth > inspecting without an extra evaluate. The kinds to ignore are: > > ByteString > ByteSymbol > Number > Boolean > UndefinedObject > > So, we can use both (1) visuals and (2) interactivity to let the more > complex objects say: "Hey, I have interesting structure! Did you mix up > print-it with inspect-it? No worries, just click on me." > > This effect will not be if any stoopid literal gets this treatment. :-) > > Best, > Marcel >> >> Am 19.04.2021 13:21:53 schrieb Thiede, Christoph >> <[hidden email]>: >> >> Hi Marcel, >> >> >> I still stumble upon this edge case for some print-it results that do >> not support click-to-inspect. Why do we need this exception? :-) >> >> >> > > Also consider this snippet where the print-link does not exist for >> an MCVersionName >> > >> > Looks fine. >> >> I don't think it looks fine, why do you think so? :-) >> >> Best, >> Christoph >> ------------------------------------------------------------------------ >> *Von:* Squeak-dev <[hidden email]> im >> Auftrag von Taeumel, Marcel >> *Gesendet:* Freitag, 16. April 2021 19:52:16 >> *An:* squeak-dev >> *Betreff:* Re: [squeak-dev] The Inbox: Morphic-ct.1586.mcz >> Hi Christoph, >> >> I think that this clickable link is a compromise between printString >> and storeString. For mouse navigation, you can always choose "inspect >> it" from the context menu on that text selection. ;-) I also found the >> link color annyoing for simple literals. >> >> > Also consider this snippet where the print-link does not exist for >> an MCVersionName >> >> Looks fine. ^__^ I am certain that we will collect more feedback on >> this feature during the next weeks and months. Let's refine it then. >> >> Best, >> Marcel >>> >>> Am 16.04.2021 18:39:10 schrieb Thiede, Christoph >>> <[hidden email]>: >>> >>> Hi Marcel, it's great that you have found a solution to this idea! :-) >>> >>> >>> > + ^ (self class interactivePrintIt and: [(anObject isString >>> or: [anObject isNumber]) not]) >>> >>> >>> Is this necessary? I know that an inspector for a literal object like >>> these does not make great sense, but this just feels like an >>> unnecessary heuristic and limitation for me and adds complexity. I >>> would like to be able to open an inspector always. Also consider this >>> snippet where the print-link does not exist for an MCVersionName: :-) >>> >>> MCRepository inbox allFileNames first >>> >>> >>> > CI scripts will default to "true". >>> >>> >>> Unfortunately, no, mine just timed out while preparing the image. >>> Also, my server images for @SqueakSmalltalkBot were interrupted. I'd >>> opt for keeping preamble/postscript content in the update stream >>> strictly non-interactive. :-) >>> >>> >>> Best, >>> >>> Christoph >>> >>> >>> ------------------------------------------------------------------------ >>> *Von:* Squeak-dev <[hidden email]> im >>> Auftrag von Taeumel, Marcel >>> *Gesendet:* Freitag, 16. April 2021 17:27:54 >>> *An:* squeak-dev >>> *Betreff:* Re: [squeak-dev] The Inbox: Morphic-ct.1586.mcz >>> Hi all! >>> >>> It is now in Trunk. You can opt-out via the preference browser. >>> Still, you will be asked the first time when you update your image. >>> CI scripts will default to "true". >>> >>> Best, >>> Marcel >>>> >>>> Am 17.11.2019 17:36:11 schrieb Jakob Reschke <[hidden email]>: >>>> >>>> Thiede, Christoph <[hidden email] >>>> <[hidden email]>> schrieb am >>>> Fr., 15. Nov. 2019, 09:38: >>>> >>>> >>>> Just another idea (I seem to have too many of them :D): Some >>>> kind of UnderlyingObjectAttribute (with a better name, of >>>> course) an editor can check the selection before compiling it >>>> when inspectIt/exploreIt is pressed? >>>> >>>> >>>> Example 1: ('2 + 3' asText) -> User presses inspectIt -> Editor >>>> checks for UnderylingObjectAttribute -> none found, so the >>>> string is compilaed as usual. >>>> >>>> Example 2: (Text string: '2 + 3' attributes: >>>> (UnderylingObjectAttribute for: 5)) -> User presses inspectIt -> >>>> Editor finds an UnderylingObjectAttribute -> instead of >>>> compiling the selection, the cached result is reused for >>>> the inspector. >>>> >>>> We would not even need to display this Attribute visually if it >>>> works reliably. >>>> >>>> >>>> Make sure it is transient in some way because it would be quite >>>> annoying if the hidden object were out of date with regards to the text. > >
Carpe Squeak!
|
Hi Christoph
> On 19. Apr 2021, at 19:29, Thiede, Christoph <[hidden email]> wrote: > > Hi Marcel, hi all, > > I keeping considering this type check as something bad and unexpected. :-) Note that in this instance, 'isInspectable' is actually a plain behavior check, not a type check at all. It's not "isMorph" or something. While "is*" is often used/misused/abused as type check, this kind here is actually not one of these : Best regards -Tobias > > First, as I have mentioned earlier, subclasses of ByteString can be indeed non-trivial. This applies to MCVersionName, for example. Second, even a string can be non-trivial, for instance, "String value: 1234", where I only will see a question mark unless I inspect the result. Yes, in the second example, I could also trouble the Compiler again for a new inspect-it, but I just don't see why we should restrict these useful links for certain types of results. Also, in all situations where you do some experiments concerning identity, an inspector would be very helpful to track individual instances. Re-evaluating the expression would not be a solution here. > > To summarize, I just would not say that any object in Squeak can have a boring structure. It's just the other way around, these clickable results are a great way to make the inspector more visible in the system. > > PS: We should also consider making the new links available for print-its in the search bar. > > Best, > Christoph > Von: Squeak-dev <[hidden email]> im Auftrag von K K Subbu <[hidden email]> > Gesendet: Montag, 19. April 2021 18:23:22 > An: [hidden email] > Betreff: Re: [squeak-dev] The Inbox: Morphic-ct.1586.mcz > > All, > > How about: > > Object>>isInspectable ^true > ByteString>>isInspectable ^false > Number>>isInspectable ^false > ... > > so inspectors can skip unitary objects? > > Just a thought .. Subbu > > On 19/04/21 8:36 pm, Marcel Taeumel wrote: > > Hi Christoph, hi all. > > > > I think that we should not highlight the following kinds of Objects to > > reserve this feature for really interesting structures that are worth > > inspecting without an extra evaluate. The kinds to ignore are: > > > > ByteString > > ByteSymbol > > Number > > Boolean > > UndefinedObject > > > > So, we can use both (1) visuals and (2) interactivity to let the more > > complex objects say: "Hey, I have interesting structure! Did you mix up > > print-it with inspect-it? No worries, just click on me." > > > > This effect will not be if any stoopid literal gets this treatment. :-) > > > > Best, > > Marcel > >> > >> Am 19.04.2021 13:21:53 schrieb Thiede, Christoph > >> <[hidden email]>: > >> > >> Hi Marcel, > >> > >> > >> I still stumble upon this edge case for some print-it results that do > >> not support click-to-inspect. Why do we need this exception? :-) > >> > >> > >> > > Also consider this snippet where the print-link does not exist for > >> an MCVersionName > >> > > >> > Looks fine. > >> > >> I don't think it looks fine, why do you think so? :-) > >> > >> Best, > >> Christoph > >> ------------------------------------------------------------------------ > >> *Von:* Squeak-dev <[hidden email]> im > >> Auftrag von Taeumel, Marcel > >> *Gesendet:* Freitag, 16. April 2021 19:52:16 > >> *An:* squeak-dev > >> *Betreff:* Re: [squeak-dev] The Inbox: Morphic-ct.1586.mcz > >> Hi Christoph, > >> > >> I think that this clickable link is a compromise between printString > >> and storeString. For mouse navigation, you can always choose "inspect > >> it" from the context menu on that text selection. ;-) I also found the > >> link color annyoing for simple literals. > >> > >> > Also consider this snippet where the print-link does not exist for > >> an MCVersionName > >> > >> Looks fine. ^__^ I am certain that we will collect more feedback on > >> this feature during the next weeks and months. Let's refine it then. > >> > >> Best, > >> Marcel > >>> > >>> Am 16.04.2021 18:39:10 schrieb Thiede, Christoph > >>> <[hidden email]>: > >>> > >>> Hi Marcel, it's great that you have found a solution to this idea! :-) > >>> > >>> > >>> > + ^ (self class interactivePrintIt and: [(anObject isString > >>> or: [anObject isNumber]) not]) > >>> > >>> > >>> Is this necessary? I know that an inspector for a literal object like > >>> these does not make great sense, but this just feels like an > >>> unnecessary heuristic and limitation for me and adds complexity. I > >>> would like to be able to open an inspector always. Also consider this > >>> snippet where the print-link does not exist for an MCVersionName: :-) > >>> > >>> MCRepository inbox allFileNames first > >>> > >>> > >>> > CI scripts will default to "true". > >>> > >>> > >>> Unfortunately, no, mine just timed out while preparing the image. > >>> Also, my server images for @SqueakSmalltalkBot were interrupted. I'd > >>> opt for keeping preamble/postscript content in the update stream > >>> strictly non-interactive. :-) > >>> > >>> > >>> Best, > >>> > >>> Christoph > >>> > >>> > >>> ------------------------------------------------------------------------ > >>> *Von:* Squeak-dev <[hidden email]> im > >>> Auftrag von Taeumel, Marcel > >>> *Gesendet:* Freitag, 16. April 2021 17:27:54 > >>> *An:* squeak-dev > >>> *Betreff:* Re: [squeak-dev] The Inbox: Morphic-ct.1586.mcz > >>> Hi all! > >>> > >>> It is now in Trunk. You can opt-out via the preference browser. > >>> Still, you will be asked the first time when you update your image. > >>> CI scripts will default to "true". > >>> > >>> Best, > >>> Marcel > >>>> > >>>> Am 17.11.2019 17:36:11 schrieb Jakob Reschke <[hidden email]>: > >>>> > >>>> Thiede, Christoph <[hidden email] > >>>> <mailto:[hidden email]>> schrieb am > >>>> Fr., 15. Nov. 2019, 09:38: > >>>> > >>>> > >>>> Just another idea (I seem to have too many of them :D): Some > >>>> kind of UnderlyingObjectAttribute (with a better name, of > >>>> course) an editor can check the selection before compiling it > >>>> when inspectIt/exploreIt is pressed? > >>>> > >>>> > >>>> Example 1: ('2 + 3' asText) -> User presses inspectIt -> Editor > >>>> checks for UnderylingObjectAttribute -> none found, so the > >>>> string is compilaed as usual. > >>>> > >>>> Example 2: (Text string: '2 + 3' attributes: > >>>> (UnderylingObjectAttribute for: 5)) -> User presses inspectIt -> > >>>> Editor finds an UnderylingObjectAttribute -> instead of > >>>> compiling the selection, the cached result is reused for > >>>> the inspector. > >>>> > >>>> We would not even need to display this Attribute visually if it > >>>> works reliably. > >>>> > >>>> > >>>> Make sure it is transient in some way because it would be quite > >>>> annoying if the hidden object were out of date with regards to the text. > > > > |
Free forum by Nabble | Edit this page |