使用DiffMatchPatch修剪前导空格问题在C#中使用TextFile比较器

时间:2018-07-25 14:58:17

标签: c# visual-studio compare google-diff-match-patch

我在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&para;<BR></SPAN>
<DEL STYLE="background:#710505;" TITLE="i=31">  </DEL>
<SPAN TITLE="i=31">this one starts from tab&para;<BR> this one starts from space&para;<BR></SPAN>
<INS STYLE="background:#07792D;" TITLE="i=84">  </INS>
<SPAN TITLE="i=85">this is an indicator line</SPAN>

有人可以帮忙避免裁切前导空格吗?

0 个答案:

没有答案