Автоматический расчет параметров отступа

Как автоматически проанализировать исходный файл C/C++ и выяснить, какие параметры отступа больше подходят (например, произвести минимум изменений при фильтрации, хотя indent)?

1 ответ

Для этого нет распространенного инструмента, поэтому вам придется написать свой собственный. Я бы написал сценарий Bash, который вызывает indent с различными параметрами, чтобы создать большое количество альтернативных версий исходного исходного файла, а затем находит "лучший" diff вывод для каждой альтернативной версии, где "best" может быть просто наименьшим количеством измененных строк.

Мой опыт показывает, что вы можете разделить проблему, если знаете, кто написал оригинальный код. Программисты склонны принимать долгосрочные привычки форматирования, которые отличаются от программиста к программисту.

Следует ожидать, что даже в самых лучших случаях indent Внедрение сделает бесполезным svn / git. Это, вероятно, заставит вас принять один конкретный indent политика для всего кода и начать новый репозиторий с автоматически отформатированным кодом, или просто отказаться от всей идеи. Хранилище с несколькими разными indent политика, вероятно, вызовет больше путаницы и ухудшения, чем пользы.

Если вы работаете над новым кодом, а не просто вносите небольшие изменения в существующий код, то лучше всего будет требовать от всех участников использовать определенный indent или же astyle политика перед отправкой кода. Вы также можете сделать это автоматически, используя хуки для фиксации SVN / GIT, но это может вызвать ошибки компиляции или даже ошибки в редких случаях. Если вы работаете в организации и не запускаете онлайн-проект, в котором вы являетесь привратником, вам понадобится менеджер с достаточными полномочиями для реализации политики, поскольку большинство программистов уже знают из многолетнего опыта, что их собственное форматирование является единственным правильный путь и все остальные форматирования недопустимы.

Другие вопросы по тегам