是否有任何(理想的GUI)diff工具可以识别语法?
作为我正在寻找的那种事物的一个例子,我一直发现我当前的工具错过了重复的代码:
Foo = { 'hello': 'world', | Foo = { 'hello': 'world',
'goodnight': 'moon' | 'goodnight': 'moon'
} <
<
Bar = { 'picture': 1000, <
} | }
Run Code Online (Sandbox Code Playgroud)
我想要一个工具,试图在一侧使匹配的支架与另一侧的匹配支架对齐.
编辑:我正在寻找一种工具,可以自动发现该条件并纠正它的对齐.
不是基于 GUI,而是完全由语法驱动:我公司的Smart Differencer工具适用于多种语言(包括 Java、C#、C++、PHP、Python、JavaScript、HTML、XML、COBOL 等)
Smart Differencer像编译器一样解析源文本,因此它可以按照编译器的方式理解语言语法和结构。它比较这些结构(使用 AST)以确定在这些结构上的编辑操作(移动、复制、删除、替换、重命名块中的标识符)方面的“最小编辑距离”并报告它们。
在您的示例中,它会知道右侧的大括号属于 foo,而不是 bar,并且会告诉您涉及 bar 的整个语句被简单地删除了。
如果您想将结果提供给另一个工具,则输出样式类似于 diff,如果您想直接检查它,则输出样式更具人类可读性。