我在我的 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>
有人可以帮助避免修剪前导空格吗?