Ответ 1
Я играл с Atomiq, который находит дубликаты внутри одного файла. Пока он выглядит достойным инструментом.
Я ищу инструмент diff, который позволит мне сравнить только часть раздела файла с разделом другого файла или даже самого себя. Предпочтительно затмение основывается, но будет принимать все предложения.
Да, я знаю, что могу скопировать два раздела в разные файлы и сравнить их, но это очень утомительно, когда вы пытаетесь сделать большой объем рефакторинга.
В основном я пытаюсь удалить как можно больше дублированного кода из базы кодов, которая страдает от большого количества наследования ctrl-V ';-) Однако вставляемые части немного выросли со временем.
Я играл с Atomiq, который находит дубликаты внутри одного файла. Пока он выглядит достойным инструментом.
Попробуйте использовать Diffuse. Просто вставьте два подраздела, которые вы хотите сравнить, в отдельные панели и нажмите CTRL-L, чтобы повторно выровнять их. Вы также можете загрузить файлы и вручную настроить выравнивание, чтобы соответствовать интересующим подразделам.
Два двух инструмента, которые я использовал для выработки дублирующего кода: Simian и CopyPasteKiller. Оба они полезны, хотя IMO CopyPasteKiller немного легче начать. Похоже, что для Simian существует плагин Eclipse, хотя я сам его не использовал.
CheckStyle прекрасно интегрируется с Eclipse и будет выполнять эту работу. Он уведомит вас и сообщит вам об ошибке/предупреждении, если ваш код дублируется, сколько раз... и т.д.
http://eclipse-cs.sourceforge.net/
Kdiff3 был бы другим выбором. Not Eclipse интегрирован, но очень хороший бесплатный кросс-платформенный инструмент для слияния, сравнения файлов и т.д.
См. SD CloneDR - инструмент, который обнаруживает точные и близкие к пропуску клоны в соответствии с синтаксисом языка для большого количества языков (Java, С#, PHP, С++, C, COBOL, Ada,...). В настоящее время готовится API Eclipse, и, вероятно, он доступен 1 января 2010 года.