2009-01-04 2 views
14

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

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

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

ответ

12

Традиционный декоратор indent, доступный на каждой машине Unix. Версия, найденная на некоторых, - GNU indent, которая может быть скомпилирована и установлена ​​на каждом компьютере. 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 

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

10

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

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

2

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

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

+1

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

+0

@ Vinko - Вы могли бы это сделать, и было бы полезно разделить вкладчиков времени или импортировать внешний код, но для полноправных членов команды я действительно считаю, что вы хотите, чтобы все они «думали о стандарте кодирования», чтобы вы реальное преимущество наличия стандарта кодирования в первую очередь. –

+1

Не могу договориться больше. Проверка кода и нормализация стандартов кодирования должны выполнять эту работу. – Ilya

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-х годов, но изменения, которые он хотел, чтобы мы сделали (очень необходимо, но) слишком навязчивы для управления.

9

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

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

Для Eclipse имеется AStyle Plugin.

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

2

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

-7

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

/Renjith г

+2

Вы игнорируетесь, потому что исходный вопрос был о довольно симпатичном принтере или проверке стиля. И вы отвечаете текстовым редактором. Разница заключается в том, что текстовым редактором является место, где вы пишете код, а проверка стиля проверяет формат исходного кода независимо от используемого текстового редактора. например, это проверка стиля: https://en.wikipedia.org/wiki/Checkstyle – elviejo79

2

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

Смежные вопросы