We haven't really looked into it but SyntaxEditor's UI features are ideal for displaying text differences. With the use of span indicators, it's easy to highlight difference areas in the text.
Maybe in the future we could make some sort of add-on that does this automatically by using two SyntaxEditors side-by-side. It would be great since there would be full syntax-highlighting in the code as well.
This is something I've thought about using SyntaxEditor for as well. The biggest issue with having two editors side-by-side deals with line numbering. You may have to insert "buffer" lines in one editor to keep the portions of the document side-by-side. SyntaxEditor lets you start numbering at any location, but I don't think it lets you break up the line numbering like that.
So it could likely be done, but without line numbering present.
Actually, that used to be an issue however we added a DocumentLine.CustomLineNumber property a little while back. If you set it to an empty string ("") then it will not show a number. You can set it to any other string (most likely a number) and it will display that. So you do have total control over the line number display.
I'm actually using SyntaxEditor for this purpose. I managed to to find a DifferenceEngine in C# that works quite well and I subsequently modified it slightly and ported it over to VB.NET.
Having two SyntaxEditors side by side works really well too. The DifferenceEngine I'm using automatically adds line buffers where necessary so the two documents will always line up when side by side.
I'm using SyntaxEditor's ViewVerticalScroll and ViewHorizontalScroll events to make sure that both editor's scroll simultaneously.
I can't remember the exact link for the C# Difference Engine but have a look for "Difference Engine" or "Difference Algorithm" on google or codeproject.com. That's assuming you're willing to mess about with it to get it working as you wish.
If you're interested in the engine dll that I have in VB.NET I can mail it to you if you want but of course I can't offer in guarantees with it.
That's right... I forgot about the custom line numbering option. SyntaxEditor handles everything! :)
Karl, It's great that you've made this work. I'd love to take a look at the DLL you've created if you don't mind to e-mail it. Could you please send it to bpatterson@patterson-consulting.net? Source Code would be lovely, but anything would be appreciated.
That second link, on codeproject, is what I've based my diff viewer on - except mine is in vb.net. I've also watered it down a lot, removing a lot of unnecessary stuff. And rather than compare two files I'm comparing to string variables.
I'll send you the source code and a test project that uses syntaxeditor.