我正在寻找一些优秀的语义差异/合并工具的好例子。传统的比较源代码文件的范式是通过比较行和字符来实现的...但是是否有任何工具(适用于任何语言)在比较文件时实际上考虑到代码的结构?
例如,现有的差异程序会报告“在第125行的第2个字符发现差异。文件x包含v-o-i-d,而文件y包含b-o-o-l”。专用的工具应该能够报告“方法doSomething()的返回类型已从void更改为bool”。
我认为,这种语义信息实际上是用户在比较代码时寻找的内容,也应该是下一代编程工具的目标。是否有任何可用工具中存在这种例子?