Eclipse С++: форматирование исходных файлов в пакетном режиме

Возможно ли использовать Eclipse для массового переформатирования кучи файлов С++ (порядка нескольких тысяч), не имея при этом необходимости открывать каждый из них в среде IDE?


Update:

В настоящее время у пары людей есть решения для Java IDE, но это означает, что не работает для С++ IDE, потому что в Project Explorer нет подменю "Источник".: (

Ответ 1

Эта функция будет поступать в следующую версию CDT (ожидается в июне 2011 года), CDT 8 в Eclipse 3.7. Вы можете попробовать это сейчас, используя вехи сборки платформы + cdt: http://eclipse.org/downloads/packages/release/indigo/m6

Исправлена ​​ошибка, в которой была добавлена ​​эта функция: https://bugs.eclipse.org/bugs/show_bug.cgi?id=245747

Ответ 2

Я не пробовал, но как насчет использования командной строки Jindent?

Предполагая, что вы хотите сделать это один раз, даже если решение немного Хит Робинсон, все должно быть хорошо, пока вы получите правильные результаты. Вы всегда можете использовать Perl для генерации оболочки script, чтобы вызвать многократный многократный агент с различными параметрами на разных файлах/путях, если это необходимо. Вы даже можете попробовать AutoHotKey для действительно уродливого, но, возможно, успешного подхода.

Ответ 4

Не специально для Eclipse...

Наш SD С++ Formatter переформатирует исходные файлы.

  • Две приятные функции для вашей проблемы: вы можете сгенерировать файл проекта, рассказывающий, какие файлы переформатировать. Он будет делать все в пакетном режиме.

  • Он использует полный синтаксический анализатор С++ для этого, строит AST, и справедливые отпечатки получаются из AST. Он не может сломать ваш код. Если вы собираетесь переформатировать тысячи файлов, вы можете это оценить.

Ответ 5

В Eclipse 3.0 или новее вы можете щелкнуть правой кнопкой мыши по папке и выбрать "Источник" > "Формат". Это должно форматировать все исходные файлы в папке с использованием конкретных параметров проекта.

Файлы должны быть извлечены (и, следовательно, доступны для записи), чтобы это работало.