My 2 cents:

we need a diff model. Because for now there is TextDiffBuilder which ���diffs��� text by lines i.e. bad granularity, and there is a DiffMorph that produces nice diffs but it���s hard to reuse it in other contexts.

Uko



On 22 Jun 2015, at 15:18, Martin Dias <tinchodias@gmail.com> wrote:

After debugging a bit and discovering the mess around... I think the best decision is to first migrate the DiffMorph to the new text widget, and then see...

Mart��n




On Mon, Jun 22, 2015 at 9:53 AM, Thierry Goubier <thierry.goubier@gmail.com> wrote:


2015-06-22 9:11 GMT+02:00 Marcus Denker <marcus.denker@inria.fr>:

> On 17 Jun 2015, at 18:54, Martin Dias <tinchodias@gmail.com> wrote:
>
> Hello,
>
> Suppose that you want to show the diff between the source code of two methods. In the case that both methods are in the same class, and that such class is present in the system, then no problem: In a DiffModel, one can set a context to the smalltalk syntax styler and get a nice output.
>
> DiffModel new
>       leftText: (Point >> #x) sourceCode;
>       rightText: (Point >> #y) sourceCode;
>       contextClass: Point;
>       openWithSpec.
>
> <Screen Shot 2015-06-17 at 18.33.22.png>
>
> But what happens in the case that the class does not exist in the system?
>
> If one doesn't set any context to the styler, then the string will be shown all in black, which is not nice. A partial solution could be to set Object as a context, then the styler will color the code, but instance variables are in red:
>
> DiffModel new
>       leftText: (Point >> #x) sourceCode;
>       rightText: (Point >> #y) sourceCode;
>       contextClass: Object;
>       openWithSpec.
>
> <Screen Shot 2015-06-17 at 18.33.27.png>
>
> Which is also not nice. In my opinion, there should be a styler that just colors the code following the syntax, without checking if the variables or classes are present in the system. It would be an environment-independent styler.
>
> What do you recommend to implement this? I guess it should be easy to subclass SHTextStylerST80 and override some methods to do not check anything in the environment.
>
> What's your opinion?
>

Right now we have the problem that we have 3 Stylers��� (for the old text model one based on Shout, one AST, and one for TxText based on the AST. Ah, and Rubric subclasses the
shout one, too. Which means 4.

One question is: could a styler fall back onto a being environment independent as soon as the environment is not set?

Yes. With a bit of ternary logic which says that symbols are in three states: defined, undefined and unknown. First two require a context; third one applies if you don't have a context.

Thierry