<div dir="ltr"><div dir="ltr"><div class="gmail_default" style="font-size:small">Hi Marcel,</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Mar 1, 2022 at 10:59 PM Marcel Taeumel <<a href="mailto:marcel.taeumel@hpi.de">marcel.taeumel@hpi.de</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div id="gmail-m_-8857109971386894054__MailbirdStyleContent" style="font-size:10pt;font-family:Arial;color:rgb(0,0,0);text-align:left" dir="ltr">
                                        :-D <div></div>
                                        <div><br></div><div><img id="gmail-m_-8857109971386894054d19ce182-26b9-4a4c-969b-e7e72b733613" src="cid:17f4bfdf1decb971f161" width="382" height="364"><br></div></div></blockquote><div><br></div><div class="gmail_default" style="font-size:small">Off topic, but producing this pointed out what I consider is a severe problem with the new enclose/unenclose protocol.  If one has a literal string with embedded single quotes (as one does with codeSample above) and one wants to edit it down to a method (imagine copying the string in codeSmaple into a Workspace to evaluate part of it) then if one selects the first embedded pair of single quotes 'a' (which will be ''a'') and types a single quote, intending to replace the double quote with a single, one now ends up with four quotes.  Instead one has to copy a single quote to the copy buffer, select the pair of single quotes and use paste... to paste in the single quote.  It's horrible,  Try it.  </div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">I do things like this fairly frequently.  e.g. MethodMassage is a bytecode (dis)assembler framework I use to copy single methods between images without having to import an entire framework.  The "interchange" format is an assemblerString, which is an evaluable expression that creates a CompiledMethod.  One has to convert from the string with embedded pairs of single quotes to the expression with single quotes.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">So for me we either need a way of typing a single quote which does not enclose, or we need a one-off convert to/from literal string which does it for us.</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div id="gmail-m_-8857109971386894054__MailbirdStyleContent" style="font-size:10pt;font-family:Arial;color:rgb(0,0,0);text-align:left" dir="ltr"><div></div><blockquote type="cite" style="border-left-style:solid;border-width:1px;margin-top:20px;margin-left:0px;padding-left:10px;min-width:500px">
                        <p style="color:rgb(170,170,170);margin-top:10px">Am 01.03.2022 21:40:06 schrieb <a href="mailto:commits@source.squeak.org" target="_blank">commits@source.squeak.org</a> <<a href="mailto:commits@source.squeak.org" target="_blank">commits@source.squeak.org</a>>:</p><div style="font-family:Arial,Helvetica,sans-serif">Eliot Miranda uploaded a new version of Collections to project The Trunk:<br><a href="http://source.squeak.org/trunk/Collections-eem.992.mcz" target="_blank">http://source.squeak.org/trunk/Collections-eem.992.mcz</a><br><br>==================== Summary ====================<br><br>Name: Collections-eem.992<br>Author: eem<br>Time: 1 March 2022, 12:39:53.850609 pm<br>UUID: 677dd86e-ae58-41d3-b125-af837d2cdb61<br>Ancestors: Collections-mt.991<br><br>Add some missing features to the imfamous postcard.<br><br>=============== Diff against Collections-mt.991 ===============<br><br>Item was changed:<br>  ----- Method: Text class>>codeSample (in category 'filler text') -----<br>  codeSample<br>  <br>    ^ 'exampleWithNumber: x<br>   "A method that illustrates every part of Smalltalk method syntax<br>         including primitives. It has unary, binary, and keyboard messages,<br>    declares arguments and temporaries, accesses a global variable<br>+       (but not an instance variable), uses literals (array, character, symbol,<br>+     string, integer, float, byte array), uses the pseudo variables nil, true,<br>+    false, self, super, and thisContext, shows that within a literal array<br>+       nil, true and false are symbols not pseudo variables, and has sequence,<br>+      assignment, return, cascade, and tuple (array) creation. It has both<br>+         zero argument and one argument blocks, and has a block temporary."<br>-      (but not an instance variable), uses literals (array, character,<br>-     symbol, string, integer, float), uses the pseudo variables true,<br>-     false, nil, self, and super, and has sequence, assignment, return<br>-    and cascade. It has both zero argument and one argument blocks."<br>         <u></u><br>   | y |<br>         true & false not & (nil isNil) ifFalse: [self halt].<br>          y := self size + super size.<br>+         #($a #a ''a'' "a" 1 1.0 nil true false), { #[65]. thisContext. nil. true. false }<br>+          do: [ :each | | class |<br>+                      class := each class.<br>-         #($a #a ''a'' "a" 1 1.0)<br>-           do: [ :each |<br>                         Transcript<br>+                           show: (class name);<br>-                          show: (each class name);<br>                              show: '' ''].<br>         ^ x < y'!<br><br><br><u></u></div></blockquote></div><br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><span style="font-size:small;border-collapse:separate"><div>_,,,^..^,,,_<br></div><div>best, Eliot</div></span></div></div></div></div>