【愚公系列】2022年10月 .NET CORE工具案例-DiffPlex文本差异组件
【摘要】 前言在开发工程师的工作日常里,时常需要对文本进行比较、MD5、Base64、格式化等处理,有时候还需要用nginx来搭建静态或转发服务器。虽然现在有许多在线网站可以处理,而且功能也挺丰富的,但可能有时无法较好处理本地文件,许多链接整理较为麻烦,同时还需保持可联网模式。对于开发人员来说,Git 是我们经常使用的工具,在每次编写完代码并提交后,我们可以通过 git diff 来对比不同版本之间...
前言
在开发工程师的工作日常里,时常需要对文本进行比较、MD5、Base64、格式化等处理,有时候还需要用nginx来搭建静态或转发服务器。虽然现在有许多在线网站可以处理,而且功能也挺丰富的,但可能有时无法较好处理本地文件,许多链接整理较为麻烦,同时还需保持可联网模式。
对于开发人员来说,Git 是我们经常使用的工具,在每次编写完代码并提交后,我们可以通过 git diff 来对比不同版本之间的代码的差异,当然也可以借助一下开发工具, 这样可以让我们很直观的看到修改了哪里? 不同版本之间有什么不同?这样也可以很方便的来做 code review。
最近发现了一个比较好用的内容DiffPlex库(就叫DiffPlex),非常方便js开发者实现文本内容的diff,既可以直接简单输出格式化的字符串比较内容,也可以输出较为复杂的changes数据结构,方便二次开发。这里笔者就基于这个库实现高仿github的文本diff效果。
对于c#就有一个DiffPlex文本差异组件来实现git的功能
git地址:https://github.com/mmanela/diffplex
一、DiffPlex文本差异组件
1.Nuget 安装 DiffPlex 组件
Install-Package DiffPlex
2.比较代码
using DiffPlex.DiffBuilder.Model;
using DiffPlex.DiffBuilder;
var before = $@"
XXXX0001,
XXXX0001。
ssss0001,
XXXX0001。
";
var after = $@"
XXXX0001,
XXXX0001。
XXXX0001,
XXXX0001。
";
var diff = InlineDiffBuilder.Diff(before, after);
var savedColor = Console.ForegroundColor;
foreach (var line in diff.Lines)
{
switch (line.Type)
{
case ChangeType.Inserted:
Console.ForegroundColor = ConsoleColor.Green;
Console.Write("+ ");
break;
case ChangeType.Deleted:
Console.ForegroundColor = ConsoleColor.Red;
Console.Write("- ");
break;
default:
Console.ForegroundColor = ConsoleColor.Gray;
Console.Write(" ");
break;
}
Console.WriteLine(line.Text);
}
Console.ForegroundColor = savedColor;
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)