Today I subscribed to the Meld mailing list and my 3 messages are still 
awaiting moderation. Unfortunately, but very understandable in these times.

Before my message's are approved however, 2 e-mail adresses were already 
revealed to me by this mail. Pedruzzi's  and Willadsen's. In my humble opinion 
this should be treated as a bug in (the configuration of?) the mailing list 
software.



On Mon, 18 Mar 2013 14:57:04 -0300
Pedro Pedruzzi <[email protected]> wrote:

> On Thu, Mar 14, 2013 at 6:15 PM, Kai Willadsen <[email protected]> 
> wrote:
> > I'm actually surprised how well that works! I think we need to figure
> > out a way of doing what other diff tools do, and indicating the areas
> > that have been inserted to get the alignment right. I'm not sure
> > whether GtkTextView will let us do that easily, but we can see.
> >
> > I've just had an alternative crazy idea. If tags don't give us the
> > flexibility we need, we could always insert a custom GTK widget after
> > each chunk, and give allocation to the widget based on required
> > padding. That should allow us to use whatever presentation we like.
> >
> > ...don't do that though. That's a crazy idea.
> 
> I've just managed to indicate the inserted areas with a nice hatch
> pattern. I think it is actually very close to what I imagined before.
> Please take a look:
> 
> https://github.com/pedrox/meld/commit/92974e0754da4e45dd9f111c6bc8cd06cafc9157
> 
> But there is still a problem that might be solved by your crazy idea.
> There is a particular case that we cannot fix the alignment with
> pixel-below-lines. We can't add a space before line 1 with
> pixel-below-lines. It is the case when there is change in the form
> DiffChunk(tag='insert', start_a=0, end_a=0, start_b=0, end_b=X).
> 
> We can't use pixel-above-lines as well, because the displayed line
> numbers would be aligned at the beginning of the padding not where the
> text line really begins
> 
> We actually want to add a space _between_ lines, not below nor above.
> Can we do that with your trick?
> 
> >> I have some questions:
> >>
> >> 1. Where is a good place to do the tag creation? I tried somewhere in
> >> the constructor but it seems that the linediffer was not ready to
> >> iterate over changes yet.
> >
> > I can't see any way of getting away from having a tag per chunk, which
> > means that there's no way to do it in the constructor. You can do this
> > is many places, but FileDiff._diff_files() is the first place where
> > we're guaranteed to have the diffs. Of course, those diffs can change,
> > and if they do then we'll get a callback to
> > FileDiff.on_diffs_changed(), which would probably be the right place
> > to update and revalidate tags.
> >
> >> 2. How about 3 way filediffs? I would need to iterate over chunks on
> >> the 3 panes.
> >
> > Exactly. Things are always complicated by 3-way diffs, but in this
> > case I think it's just a matter of adapting your code to use
> > linediffer.all_changes() instead of single_changes() and taking the
> > max of three offsets rather than of two.
> 
> Ok, I'll try to do that next.
> 
> ızznɹpǝԀ oɹpǝԀ
> _______________________________________________
> meld-list mailing list
> [email protected]
> https://mail.gnome.org/mailman/listinfo/meld-list
_______________________________________________
meld-list mailing list
[email protected]
https://mail.gnome.org/mailman/listinfo/meld-list

Reply via email to