Недавно я получил от кого-то относительно важное дополнение к некоторому программному обеспечению, которое я поддерживаю. К сожалению, вместо того, чтобы предоставить diff, он просто дал мне все свое дерево исходных текстов, и, что еще хуже, похоже, что он использовал какой-то код, который превосходит все, что я использовал или видел, включая такие вещи, как
- Вставка и удаление пробелов в различных точках внутри линий.
- Разбиение некоторых условных выражений на блоки в скобках, превращение некоторых в однострочные условные выражения и превращение некоторых в условные с переносом строки, но без скобок.
- Перемещение некоторых комбинированных операторов в отдельные строки и объединение некоторых разделенных операторов в одну строку.
- Вставка и удаление разрывов строк внутри таких мест, как аргументы функций.
- Etc
Запуск отступа (BSD) для файлов из его версии и более старой версии не сближает их. Использование astyle тоже не работает. В любом случае, есть еще довольно много остатков различных стилей форматирования.
Существует ли какой-либо модуль форматирования C, который по существу удалял бы как можно больше форматирования, а затем последовательно форматировал бы код? Или есть какой-нибудь способ заставить форматировщик сделать это? Это не должно выглядеть ужасно красиво, мне просто нужно иметь возможность получить разумную разницу, чтобы увидеть, что он на самом деле изменил.