是否有任何用于编程语言的 diff/merge 工具,它以语法感知的方式工作(如 XML Diff Tool),不仅仅是逐行比较(并且可以选择忽略空格)。
我对一个实际上遵循语言语法和分隔符的程序感兴趣,它在不破坏语法正确性的情况下提出更改建议,或者将语句捆绑在多行中。示例行为是:
*在找到if(){
引入额外嵌套级别的一个时,会自动将右括号}
与它下面的几行捆绑在一起。)
*将匹配的语法元素保持在一起,避免像删除块这样的愚蠢往往会创建:
int function_A()
{
int ret;
ret = something;
ret += something_else;
return ret;
}
int function_B()
{
if(valid)
{
int ret;
ret = something;
ret += something_else;
return ret;
}
else return -1;
}
就个人而言,我很想找到能够处理 C++ 语法的软件,但了解其他语言的解决方案也会很有趣。