是否有任何(理想的GUI)diff工具可以识别语法?
作为我正在寻找的那种事物的一个例子,我一直发现我当前的工具错过了重复的代码:
Foo = { 'hello': 'world', | Foo = { 'hello': 'world',
'goodnight': 'moon' | 'goodnight': 'moon'
} <
<
Bar = { 'picture': 1000, <
} | }
我想要一种工具,可以尝试在一侧使用匹配的支架与另一侧的匹配支架对齐。
编辑:我正在寻找一种可以自动识别该条件并纠正其对齐的工具。
答案 0 :(得分:4)
不是基于GUI,而是完全由语法驱动:我公司的Smart Differencer工具适用于许多语言(包括Java,C#,C ++,PHP,Python,JavaScript,HTML,XML,COBOL,......)
智能差异器解析源文本,就像编译器一样,因此它理解语言语法和结构与编译器的方式相同。它比较这些结构(使用AST)来确定这些结构上的编辑操作(移动,复制,删除,替换,重命名标识符在块中)的“最小编辑距离”并报告它们。
在你的例子中,它会知道右边的花括号属于foo,而不是bar,并且会告诉你整个涉及bar的语句都被删除了。
如果您想将结果提供给另一个工具,则输出样式是差异的,如果您想直接检查它,则输出样式更具人性化。
答案 1 :(得分:0)
Beyond Compare会让您重新排列不匹配的行。我通常可以很好地匹配线条。
答案 2 :(得分:0)
我认为Beyond Compare有你想要的东西 http://www.scootersoftware.com/index.php
答案 3 :(得分:0)
我喜欢Source Gear的DiffMerge。
答案 4 :(得分:0)
Pretty Diff工具会自动识别语法。它使用的过程是缩小代码以删除注释,然后美化代码以规范化格式和空白。它只支持一些Web客户端语言。此工具在客户端工作,因此您可以在浏览器中测试它,并且有一个包含一些演示的示例页面。