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
