Существуют ли какие-либо инструменты lint для C и C ++, которые проверяют форматирование? - PullRequest
13 голосов
/ 14 марта 2010

У меня есть кодовая база, которую тронули многие люди. В то время как большинство людей прилагают усилия к тому, чтобы сохранить код в надлежащем формате (например, последовательные отступы и использование фигурных скобок), некоторые этого не делают, и даже те, которые делают это, не всегда могут это сделать, потому что мы все используем разные редакторы, поэтому такие настройки, как пробелы и . вкладки разные.

Существует ли какой-либо стандартный инструмент для удаления пуха, который проверяет , правильно ли отформатирован код, но не меняет его (например, indent, но возвращает только ошибки и предупреждения)?

Несмотря на то, что на этот вопрос можно было ответить в целом, я концентрируюсь на C и C ++, потому что это то, для чего этот проект написан.

Ответы [ 4 ]

8 голосов
/ 14 марта 2010

Google использует cpplint . Это их руководство по стилю .

3 голосов
/ 14 марта 2010

Ядро Linux использует инструмент, который делает именно это - он называется checkpatch. Вам нужно изменить его, чтобы проверить ваши стандарты кодирования, а не их, но это может стать хорошей основой для работы. (Он также предназначен для кода C, а не C ++).

2 голосов
/ 14 марта 2010

Взгляните на Vera ++ , у него уже есть несколько правил , но приятно то, что вы можете изменить их или написать свои собственные.

1 голос
/ 14 марта 2010

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

Также возможно автоматически применять такое форматирование при фиксации кода. Когда вы используете SVN, система для этого называется svn hooks. Это в основном запускает программу для обработки (или проверки и отклонения) форматирования, когда происходит фиксация.

Этот сайт объясняет, как вы можете сделать свой собственный. Но и для этого уже существуют.

...