[Cuis-dev] Fix for VectorCanvas>>#image:at:

Juan Vuletich juan at cuis.st
Tue Jun 6 12:21:42 PDT 2023


Hi Luciano,

I did a few tweaks. Instead of TextColor dominating any Shout Attribute, 
I made TextStyle normal do that. Additionally, the final $. is added 
without any attribute, so whatever follows it is back to normal. Just 
pushed it to github.

Thanks,


On 6/6/2023 1:47 PM, Luciano Notarfrancesco via Cuis-dev wrote:
> Hi Juan,
> Here are the changes. I've been using it like this for a few days. 
> It's very nice that the syntax highlighter doesn't get confused with 
> printIts... I like it, and I think I'll continue using it like this, 
> unless we come up with other better ideas.
> Still I've been experiencing some problems, sometimes underscores are 
> not converted to arrows, and sometimes the syntax highlighter seems to 
> stop working. I suspect the color attribute I put might be spreading 
> to the text I type into the workspace, but I'm not sure, my workspaces 
> tend to get very messy so there might be other reasons.
> (It seems the clock is wrong in my computer, I just noticed the wrong 
> date in the change set name, sorry)
>
> On Tue, Jun 6, 2023 at 11:04 PM Juan Vuletich <juan at cuis.st 
> <mailto:juan at cuis.st>> wrote:
>
>     Did this work well? Would you post your code?
>
>     Thanks,
>
>     On 6/2/2023 12:28 PM, Luciano Notarfrancesco via Cuis-dev wrote:
>>     Ah, great, I’m trying a mix of both approaches: I enclose it in
>>     double quotes and add a dot at the end, and also set the color to
>>     the default text color so shout doesn’t color it as a comment.
>>     I’ll use it like this for a while and see how it feels, and see
>>     if there are still any problems with coloring or underscores.
>>
>>     Thanks!
>>     Luciano
>>
>>     On Fri, 2 Jun 2023 at 16:31 Juan Vuletich <juan at cuis.st
>>     <mailto:juan at cuis.st>> wrote:
>>
>>         My previous answer is completely wrong, because I conflated
>>         two issues you raised.
>>
>>         Your solution works well to avoid styling the result of a
>>         printIt as if it was Smalltalk code. But it doesn't address
>>         the other issue you raised, that is, after that point, the
>>         styling of the rest of the workspace is messed up.
>>
>>         My suggestion (modifying #printIt to enclose the result in
>>         double quotes) actually addresses both issues: comments are
>>         not styled, and smalltalk code after them is styled
>>         correctly. Maybe we'd push this instead? Perhaps we'd also
>>         tweak the style so it doesn't look like comments, but the
>>         main point is that parsing will be correct afterward. We
>>         could also add a dot after the comment, maybe that makes
>>         Shout happier in case you forgot to type it.
>>
>>         The real fix would be to shout from scratch after 2 empty
>>         lines. That was the intended behavior some time ago, and it
>>         works for coloring but not for assignment arrows. Fixing this
>>         is a bit more complicated. so I'd sugges opening an issue on
>>         GitHub so we don't forget.
>>
>>         Thanks,
>>
>>
>>         On 6/2/2023 11:36 AM, Luciano Notarfrancesco via Cuis-dev wrote:
>>>         Last week I did the change to enclose printIt output in
>>>         double quotes, and I used it like that for a couple of days.
>>>         I didn’t really like it, but perhaps I’m just not used to
>>>         it. It colored the printIt output with the gray color that I
>>>         use for comments, and for some reason it didn’t feel right
>>>         to me.
>>>
>>>         Another thing that seems to cause problems with highlighting
>>>         is my habit of neglecting to type the last dot in the last
>>>         sentence, because it’s optional in Smalltalk and I never
>>>         type it… but then it confuses the syntax highlighter, even
>>>         if I leave several empty lines between fragments of code, it
>>>         seems.
>>>
>>>         It’s weird that my change doesn’t work for you. I just tried
>>>         it in the latest image and it doesn’t seem to work, but it
>>>         works in my project image and I can’t figure out why it
>>>         fails in the stock image. See the attached change set. I
>>>         guess it would be more correct to change
>>>         TextColor>>dominates: adding "or: [other isForShout and:
>>>         [self isForShout not]]", or something like that... but
>>>         still, why doesn't it work? If some part of the text has
>>>         attributes that dominate over shout attributes it shouldn't
>>>         change them, right? Is this a bug?
>>>
>>>         BTW, I'm not pushing to adopt my change, I don't know yet
>>>         what's the best solution.
>>>
>>>
>>>         On Fri, 2 Jun 2023 at 15:23 Juan Vuletich <juan at cuis.st
>>>         <mailto:juan at cuis.st>> wrote:
>>>
>>>             Please see inline.
>>>
>>>             On 6/2/2023 10:09 AM, Juan Vuletich via Cuis-dev wrote:
>>>>             I couldn't get that idea to work. Would you attach a
>>>>             changeset?
>>>>
>>>>             In any case, another simple but maybe less comfortable
>>>>             solution is to enclose the result in double quotes,
>>>>             making it comment.
>>>>
>>>>             Thanks,
>>>
>>>             Of course the above is completely wrong, because I
>>>             conflated two issues you raised.
>>>
>>>             Your solution works well to avoid styling the result of
>>>             a printIt as if it was Smalltalk code. But it doesn't
>>>             address the other issue you raised, that is, after that
>>>             point, the styling of the rest of the workspace is
>>>             messed up.
>>>
>>>             My suggestion (modifying #printIt to enclose the result
>>>             in double quotes) actually addresses both issues:
>>>             comments are not styled, and smalltalk code after them
>>>             is styled correctly. Maybe we'd push this instead?
>>>
>>>
>>>             Thanks,
>>>
>>>>
>>>>             On 6/2/2023 7:23 AM, Luciano Notarfrancesco via
>>>>             Cuis-dev wrote:
>>>>>             Oh, just after sending this email I gave it another
>>>>>             try and found a simple solution. In
>>>>>             SmalltalkEditor>>#printIt I set the color of the
>>>>>             output text to Theme current text, and I changed
>>>>>             TextColor>>dominates: adding “or: [other isForShout]”.
>>>>>             That’s all :)
>>>>>
>>>>>             On Fri, 2 Jun 2023 at 11:59 Luciano Notarfrancesco
>>>>>             <luchiano at gmail.com <mailto:luchiano at gmail.com>> wrote:
>>>>>
>>>>>                 I’ve been thinking how to prevent the printIt
>>>>>                 output to be syntax highlighted. I think it’s best
>>>>>                 to do that because the output is not Smalltalk
>>>>>                 code, so the syntax highlighter gets it almost
>>>>>                 always wrong. It could be a preference, or it
>>>>>                 could be specified in the printOn: methods that
>>>>>                 know that the output is not Smalltalk code. What
>>>>>                 do you think? How would you implement it? A new
>>>>>                 text attribute makes sense to you or do you have
>>>>>                 any other idea?
>>>>>
>>>>>                 On Thu, 1 Jun 2023 at 20:53 Luciano Notarfrancesco
>>>>>                 <luchiano at gmail.com <mailto:luchiano at gmail.com>>
>>>>>                 wrote:
>>>>>
>>>>>                     Oh, that’s great, using subpixel antialiasing
>>>>>                     just solved the problem! Thanks!
>>>>>
>>>>>                     I’ll try NeoEuler. It would be nice to have
>>>>>                     fallback fonts too… some math glyphs are
>>>>>                     missing in DejaVu… but it’s not a big deal.
>>>>>                     Another minor aesthetic problem is that the
>>>>>                     syntax highlighter sometimes gets confused
>>>>>                     with the output of printIt, perhaps would be
>>>>>                     better to not apply syntax highlighting to the
>>>>>                     output, or to have the option to “lock” the
>>>>>                     output text in some printOn: methods so that
>>>>>                     the syntax highlighter doesn’t change it
>>>>>                     (perhaps a new attribute? not sure if this
>>>>>                     makes sense). Also sometimes the underscores
>>>>>                     are not converted to arrows in a workspace,
>>>>>                     perhaps this is related to the syntax
>>>>>                     highlighter getting confused.
>>>>>
>>>>>                     Thanks!
>>>>>                     Luciano
>>>>>
>>>>>                     On Thu, 1 Jun 2023 at 17:42 Juan Vuletich
>>>>>                     <juan at cuis.st <mailto:juan at cuis.st>> wrote:
>>>>>
>>>>>                         Hi Luciano,
>>>>>
>>>>>                         On 5/30/2023 9:06 AM, Luciano
>>>>>                         Notarfrancesco via Cuis-dev wrote:
>>>>>>                         BTW, in case anyone is curious, here is
>>>>>>                         how matrices look when printing them on a
>>>>>>                         workspace with cmd-p. I draw matrices
>>>>>>                         over the binary field in a special way
>>>>>>                         (first screenshot), and I scale them down
>>>>>>                         if they are too big.
>>>>>>                         I did this because it was hard to make
>>>>>>                         matrices look good when printing them as
>>>>>>                         text, so instead I draw them on a form
>>>>>>                         and embed the form when printing them. I
>>>>>>                         only do this with matrices, they are
>>>>>>                         especially problematic when printing
>>>>>>                         because they print with more than one
>>>>>>                         line, they are the only objects in my
>>>>>>                         system that need more than one line for
>>>>>>                         printing. When I printed them as text
>>>>>>                         with more than one line, printing a list
>>>>>>                         of matrices (for example an array of
>>>>>>                         matrices, as in the example where I print
>>>>>>                         a basis of a vector space in the
>>>>>>                         screenshots) they would look horrible.
>>>>>>                         Now a list of matrices is printed in a
>>>>>>                         single line as expected, and the point
>>>>>>                         size of the enclosing parentheses is
>>>>>>                         adjusted automatically (I have messages
>>>>>>                         Stream>>#withParentheses:,
>>>>>>                         #withBrackets:, #withAngleBrackets:, etc,
>>>>>>                         that do this automatically).
>>>>>
>>>>>                         It looks beautiful!
>>>>>
>>>>>>                         I still have two little problems that I
>>>>>>                         might want to tweak:
>>>>>>                         1) the parentheses are too thick, setting
>>>>>>                         the point size is not the right thing to
>>>>>>                         do, maybe we need a new text attribute
>>>>>>                         for scaling text without changing the
>>>>>>                         point size?;
>>>>>
>>>>>                         The easiest solution is to use a different
>>>>>                         font, just for the parentheses. For
>>>>>                         example, NeoEuler parentheses are much
>>>>>                         lighter at large point sizes.
>>>>>
>>>>>>                         2) matrices inside matrices loose the
>>>>>>                         transparent background, the background
>>>>>>                         becomes black, as you see in the example
>>>>>>                         in the second screenshot.
>>>>>
>>>>>                         I guess this should be fixable. If you can
>>>>>                         prepare an image with such example for me
>>>>>                         to play with, I'll give it a try. For
>>>>>                         example (not sure if related) VectorEngine
>>>>>                         can do blending over translucent
>>>>>                         backgrounds, but only if subpixel sampling
>>>>>                         is used. I know, there is no relation
>>>>>                         between these two features... But I wanted
>>>>>                         to keep options to a small number, and
>>>>>                         usually we only use cheaper whole pixel AA
>>>>>                         and cheaper alpha blending that can't
>>>>>                         blend over translucent backgrounds. So,
>>>>>                         maybe just using the SubPixel engine
>>>>>                         solves this problem, or I'll be happy to
>>>>>                         take a look.
>>>>>
>>>>>>
>>>>>>                         On Tue, May 30, 2023 at 7:27 PM Luciano
>>>>>>                         Notarfrancesco <luchiano at gmail.com
>>>>>>                         <mailto:luchiano at gmail.com>> wrote:
>>>>>>
>>>>>>                             This change set fixes a little bug in
>>>>>>                             VectorCanvas that cames up when using
>>>>>>                             the canvas to draw text with images
>>>>>>                             on a form (outside morphic). I do
>>>>>>                             this to draw matrices, and when
>>>>>>                             drawing a matrix whose coefficients
>>>>>>                             are also matrices this came up. The
>>>>>>                             fix is simply checking that the world
>>>>>>                             is not nil.
>>>>>>
>>>>>
>>>>>                         Integrated and at GitHub. Thanks!
>>>>>
>>>>>                         Cheers,
>>>>>
>>>>>                         -- 
>>>>>                         Juan Vuletich
>>>>>                         cuis.st  <http://cuis.st>
>>>>>                         github.com/jvuletich  <http://github.com/jvuletich>
>>>>>                         researchgate.net/profile/Juan-Vuletich  <http://researchgate.net/profile/Juan-Vuletich>
>>>>>                         independent.academia.edu/JuanVuletich  <http://independent.academia.edu/JuanVuletich>
>>>>>                         patents.justia.com/inventor/juan-manuel-vuletich  <http://patents.justia.com/inventor/juan-manuel-vuletich>
>>>>>                         linkedin.com/in/juan-vuletich-75611b3  <http://linkedin.com/in/juan-vuletich-75611b3>
>>>>>                         twitter.com/JuanVuletich  <http://twitter.com/JuanVuletich>
>>>>>
>>>>
>>>>
>>>>             -- 
>>>>             Juan Vuletich
>>>>             cuis.st  <http://cuis.st>
>>>>             github.com/jvuletich  <http://github.com/jvuletich>
>>>>             researchgate.net/profile/Juan-Vuletich  <http://researchgate.net/profile/Juan-Vuletich>
>>>>             independent.academia.edu/JuanVuletich  <http://independent.academia.edu/JuanVuletich>
>>>>             patents.justia.com/inventor/juan-manuel-vuletich  <http://patents.justia.com/inventor/juan-manuel-vuletich>
>>>>             linkedin.com/in/juan-vuletich-75611b3  <http://linkedin.com/in/juan-vuletich-75611b3>
>>>>             twitter.com/JuanVuletich  <http://twitter.com/JuanVuletich>
>>>
>>>
>>>             -- 
>>>             Juan Vuletich
>>>             cuis.st  <http://cuis.st>
>>>             github.com/jvuletich  <http://github.com/jvuletich>
>>>             researchgate.net/profile/Juan-Vuletich  <http://researchgate.net/profile/Juan-Vuletich>
>>>             independent.academia.edu/JuanVuletich  <http://independent.academia.edu/JuanVuletich>
>>>             patents.justia.com/inventor/juan-manuel-vuletich  <http://patents.justia.com/inventor/juan-manuel-vuletich>
>>>             linkedin.com/in/juan-vuletich-75611b3  <http://linkedin.com/in/juan-vuletich-75611b3>
>>>             twitter.com/JuanVuletich  <http://twitter.com/JuanVuletich>
>>>
>>
>>
>>         -- 
>>         Juan Vuletich
>>         cuis.st  <http://cuis.st>
>>         github.com/jvuletich  <http://github.com/jvuletich>
>>         researchgate.net/profile/Juan-Vuletich  <http://researchgate.net/profile/Juan-Vuletich>
>>         independent.academia.edu/JuanVuletich  <http://independent.academia.edu/JuanVuletich>
>>         patents.justia.com/inventor/juan-manuel-vuletich  <http://patents.justia.com/inventor/juan-manuel-vuletich>
>>         linkedin.com/in/juan-vuletich-75611b3  <http://linkedin.com/in/juan-vuletich-75611b3>
>>         twitter.com/JuanVuletich  <http://twitter.com/JuanVuletich>
>>
>
>
>     -- 
>     Juan Vuletich
>     cuis.st  <http://cuis.st>
>     github.com/jvuletich  <http://github.com/jvuletich>
>     researchgate.net/profile/Juan-Vuletich  <http://researchgate.net/profile/Juan-Vuletich>
>     independent.academia.edu/JuanVuletich  <http://independent.academia.edu/JuanVuletich>
>     patents.justia.com/inventor/juan-manuel-vuletich  <http://patents.justia.com/inventor/juan-manuel-vuletich>
>     linkedin.com/in/juan-vuletich-75611b3  <http://linkedin.com/in/juan-vuletich-75611b3>
>     twitter.com/JuanVuletich  <http://twitter.com/JuanVuletich>
>


-- 
Juan Vuletich
cuis.st
github.com/jvuletich
researchgate.net/profile/Juan-Vuletich
independent.academia.edu/JuanVuletich
patents.justia.com/inventor/juan-manuel-vuletich
linkedin.com/in/juan-vuletich-75611b3
twitter.com/JuanVuletich

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cuis.st/mailman/archives/cuis-dev/attachments/20230606/0acedbfd/attachment-0001.htm>


More information about the Cuis-dev mailing list