gpt4 book ai didi

merge - 上下文感知合并?

转载 作者:行者123 更新时间:2023-12-03 08:45:54 24 4
gpt4 key购买 nike

是否有任何用于编程语言的差异/合并工具,都可以以语法感知的方式工作(例如XML Diff工具),而不是逐行比较(并且可以选择忽略空格)。

我对实际上遵循语言语法和分隔符的程序感兴趣,建议在不破坏语法正确性的情况下进行更改,或将语句 bundle 成多行。行为示例为:

*一旦找到引入了额外嵌套级别的if(){,它就会在下面几行自动将右括号} bundle 在一起。)

*将匹配的语法元素保持在一起,避免像删除块这样的愚蠢行为容易造成:

 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++语法的软件,但是了解其他语言的解决方案也会很有趣。

最佳答案

Beyond Compare完成了您的要求。它不会一次保持语法正确性,也不一次比较语言块,但是可以执行以下操作:

  • 对语言语法有一定了解,因此它可以对比较文件进行语法高亮显示,并且还可以识别并有选择地忽略不重要的差异(例如注释,包括多行注释)。
  • 支持使用外部转换程序加载和保存数据。开箱即用,它支持使用它在比较XML和HTML之前对其进行美化。您可以在比较两个C文件之前设置GNU Indent以标准化语法。
  • 可选的线粗,可让您为匹配(例如右括号)赋予更高的权重。我没有尝试过此功能。
  • 替换,忽略单个 session ,将左侧old_variable_name替换为右侧new_variable_name的每个位置。

  • 到目前为止,它是我使用过的最好的差异合并工具。它也是跨平台的,价格便宜(标准版为30美元,专业版为50美元),而且评估期非常宽裕,因此值得一试。

    关于merge - 上下文感知合并?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5067839/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com