Подтвердить что ты не робот

Расширенный (С++) Исходный код Повторное форматирование с помощью Visual Studio?

Мы хотели бы иметь возможность переформатировать блоки/функции кода С++ непосредственно из среды Visual Studio IDE, чтобы разработчики легко могли гарантировать, что новый код, который они вставляют, придерживается наших правил форматирования.

Я нашел инструмент Artistic Style, который в значительной степени охватывает те функции, которые нам нужны. Тем не менее, он может работать только с целыми файлами из CLI, поэтому он не очень помогает в том, что мы хотим использовать. (Переформатирование целых файлов, конечно же, не является тем, что мы хотим [a].)

Visual Studio (2005) имеет ограниченные возможности автоформата, но AFAICS, в основном это правильный отступ, чего немного не хватает.

Итак, мой вопрос заключается в том, есть ли какие-либо инструменты, которые могут выполнять переформатирование при выборе из VS IDE, или, может быть, если есть плагин VS IDE, использующий AStyle?

Изменить: вопрос, связанный с рекомендацией инструмента - ProFactor StyleManager - есть ли другие инструменты, подобные этому?

Примечание [a]: Переформатирование целых файлов или всего дерева проектов полезно только для личных проектов или для начальных кодовых проверок, IMHO. Для (крупного) командного проекта переформатирование вложений будет испортить историю изменений файлов или строк в файлах, что значительно затрудняет отслеживание того, кто что изменил.

4b9b3361

Ответ 1

Я нашел сообщение в блоге, в котором описывается, как интегрировать внешний форматир кода с Visual Studio: Форматирование кода для одного проекта в Visual Studio

(...) Затем вы можете настроить свои IDE (ы), чтобы что их команды форматирования по умолчанию вместо этого используйте Uncrustify. В Visual Например, в Studio можно настроить внешний инструмент. Предполагая uncrustify.cfg находится рядом с файлом решения, затем командной строки

-c $(SolutionDir)uncrustify.cfg --no-backup "$(ItemPath)"

переформатирует текущий исходный файл. Затем вы можете назначить отображение клавиатуры (или переназначить Edit.FormatDocument, как и я) для быстрый доступ.

Я не пробовал, но, похоже, нужно сконфигурировать ваш форматировщик (например, AStlye/Uncrustify) в качестве внешнего инструмента в Visual Studio, чтобы иметь возможность вызывать его в исходном файле из среды IDE.

Все еще только для каждого файла, но, похоже, одна из лучших идей, которые я нашел.

Ответ 2

Похоже, уже есть ответ для https://stackoverflow.com/questions/1663794/visual-studio-unmanaged-c-code-formatter

Кроме того. Я знаю, что в KDevelop и code:: blocks у них есть хороший С++ code reformatters, и вы можете очень точно настроить стиль. Мне нравятся и то, и другое. Но код:: блоки на меня постоянно падает: (

Ответ 3

Вопрос немного старый, но проблема не в этом.

Я использую макрос VS для стирания кода С++ с помощью uncrustify и запускать его с помощью сочетания клавиш (ALT + SHIFT + U, мои предпочтения). Макрос запускает uncrustify в текущем активном документе редактора, отправляет результат в файл temp и затем заменяет текущий текст редактора на uncrustify output.

Очевидно, что этот рабочий процесс изменяет весь код в файле, но частое использование ярлыка будет держать ваш код красивым и чистым. Возможно ли, что макрос запускается автоматически, когда изменяется n% текста редактора? Я оставлю это гуру EnvDTE.