我在C#项目中使用https://github.com/google/diff-match-patch来比较文本文件。如果发现差异,则将差异转储为html并将其作为电子邮件正文发送到我的邮件中。我使用的方式如下:
var dump = DiffMatchPatchModule.Default;
var diffs = dump.DiffMain(linesOrigin, linesRemoved);
var beforeHtml = dump.DiffPrettyHtml(diffs);
但是我发现,当我添加/删除前导空格时,由于会修剪所有前导空格,因此不会突出显示任何内容,标记INS和DEL被添加到html,并且仅当发现差异时才添加。因此,例如,如果我比较.py文件,我可以看到文件本身的变化,但是由于缺少空格,我不能立即将其用于html文件。
以下是我在文本中添加和删除一些空格时生成的html文件的示例:
<INS STYLE="background:#07792D;" TITLE="i=0"> </INS>
<SPAN TITLE="i=3">this one starts from symbol¶<BR></SPAN>
<DEL STYLE="background:#710505;" TITLE="i=31"> </DEL>
<SPAN TITLE="i=31">this one starts from tab¶<BR> this one starts from space¶<BR></SPAN>
<INS STYLE="background:#07792D;" TITLE="i=84"> </INS>
<SPAN TITLE="i=85">this is an indicator line</SPAN>
有人可以帮忙避免裁切前导空格吗?