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

Проверка стиля кодирования для C

Я работаю в компании, у которой есть строгие правила стиля кодирования, но нет автоматического инструмента для их проверки. Я осмотрелся, и единственными инструментами, которые я мог найти, были инструменты, подобные инструментам, которые, как представляется, направлены на проверку того, что делает код, и предотвращение ошибок, а не на правильность стиля кодирования.

Какой инструмент мы должны использовать, если вообще?

ПРИМЕЧАНИЕ. Я ищу что-то для кода C, хотя что-то, что работает для С++, было бы хорошо.

4b9b3361

Ответ 1

Традиционный декоратор indent, доступный на каждой машине Unix. Версия, найденная на некоторых, это отступ GNU, который может быть скомпилирован и установлен на каждой машине. Отступ GNU может читать набор правил из файла ~/.indent.pro, например:

--original --dont-format-first-column-comments --no-blank-lines-after-commas --parameter-indentation 8 --indent-level 8 --line-length 85 --no-space-after-parentheses --no-comment-delimiters-on-blank-lines 

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

Ответ 2

Вы ищете " code beautifier '. Uncrustify бесплатный.

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

Ответ 3

AStyle делает то, что вы хотите:

Художественный стиль - это индентор исходного кода, форматирование и декодер исходного кода для языков программирования C, С++, С# и Java.

Там есть AStyle Plugin, доступный для Eclipse.

Eclipse также имеет форматировщик кода, но я не уверен, работает ли он в CDT.

Ответ 4

Для этого существуют (или были) многочисленные инструменты. Один из старейших - cb (C Beautifier), который был в древних версиях Unix, то есть в этом случае версия 7 Unix:

CB ( 1 ) UNIX Programmer’s Manual CB ( 1 )

NAME
    cb – C program beautifier
SYNOPSIS
    cb
DESCRIPTION
   Cb places a copy of the C program from the standard input on the standard
   output with spacing and indentation that displays the structure of the
   program.
BUGS

GNU indent - это гораздо более сложное и настраиваемое beastie. Были и коммерческие инструменты. Например, Abraxas Software предоставляет инструмент CodeCheck, например; мы использовали это кратко в середине 90-х годов, но изменения, которые он хотел, чтобы мы сделали (очень необходимы, но) слишком навязчивы для управления.

Ответ 5

Я бы возражал против использования формального инструмента здесь. Лучшим применением стандартов кодирования является давление со стороны сверстников. Насилие со стороны сверстников и взаимное уважение между членами команды являются ключевыми элементами среды создания команды... ничем не отличается, что добродушное пристальное внимание, которое необходимо, когда кто-то непреднамеренно "разрушает сборку" и т.д.

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

Ответ 6

Из аналогичного вопроса: Vera ++: "Vera ++ можно использовать для поиска нарушений стиля кодирования и конвенций". Там есть бесплатное издание Community Edition и "все его правила реализованы как (Tcl) скрипты, которые могут быть изменены или добавлены пользователем".

Ответ 7

Попробуйте UniversalIndentGUI, который представляет собой оболочку GUI вокруг популярных indenters/beautifiers, таких как Uncrustify, Artistic Style и GNU Indent. Его графический интерфейс и функция предварительного просмотра позволяют легко попробовать разные индексы, и как только вы найдете индентор и конфигурацию, вы можете экспортировать конфигурацию или даже экспортировать оболочку script. Отлично, если вы все еще пытаетесь разобраться.

Ответ 8

Вы можете использовать clang-format. Более подробную информацию можно найти на официальном сайте: http://clang.llvm.org/docs/ClangFormat.html

Ответ 9

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

/renjith g