Eclipse считает количество строк кода
Я попробовал плагин Metrics, и хотя он хорош и все такое, это не то, что ищет мой начальник. Считает строку только с одним }
как линия, и он не хочет, чтобы это считалось "это не линия, это выбор стиля". Мне также нужно сформировать отчет о предоставленных показателях. Есть ли хорошие инструменты для этого?
9 ответов
Установите плагин Eclipse Metrics. Чтобы создать отчет в формате HTML (с дополнительными XML и CSV) right-click a project -> Export -> Other -> Metrics
,
Вы можете настроить метрики "Строки кода", игнорируя пустые строки и строки только для комментариев или исключая Javadoc, если хотите. Для этого проверьте вкладку на Preferences -> Metrics -> LoC
,
Вот и все. Специальных опций для исключения фигурных скобок не существует {}
,
Плагин предлагает альтернативную метрику LoC, которая называется Количество операторов. Вот что автор говорит об этом:
Этот показатель представляет количество операторов в методе. Я считаю, что это более надежная мера, чем строки кода, поскольку последняя является хрупкой по отношению к различным соглашениям о форматировании.
Редактировать:
После того, как вы прояснили свой вопрос, я понимаю, что вам необходимо просматривать нарушения метрик в реальном времени, например предупреждения компилятора или ошибки. Вам также нужна функциональность отчетов для создания отчетов для вашего босса. Плагин, который я описал выше, предназначен для отчетов, потому что вы должны экспортировать метрики, когда хотите их увидеть.
Всегда есть "грубая сила":
Search-> Файл
Введите следующее в "Содержащий текст" ->
^.*$
, Затем установите флажок "Регулярное выражение"Введите следующее в "Шаблоны имен файлов" ->
*.java
Нажмите "Поиск"
Проверьте количество совпадений во вкладке "Поиск".
Если на OSX или *NIX используйте
Получить все фактические строки кода Java из файлов *.java
find . -name "*.java" -exec grep "[a-zA-Z0-9{}]" {} \; | wc -l
Получить все строки из файлов *.java, включая пустые строки и комментарии
find . -name "*.java" -exec cat | wc -l
Получить информацию для каждого файла, это даст вам [путь к файлу + "," + количество строк]
find . -name "*.java" -exec wc -l {} \;
Один из возможных способов подсчета строк кода в Eclipse:
используя меню Поиск / Файл..., выберите вкладку Поиск файла, укажите \n[\s]* для Содержащего текста (это не будет считать пустые строки) и отметьте Регулярное выражение.
Наконечник шляпы: http://www.monblocnotes.com/node/2030
Другой способ - использовать другую утилиту loc, например, LocMetrics.
В нем также перечислены многие другие инструменты loc. Интеграция с Eclipse была бы не всегда (как это было бы с Metrics2, которую вы можете проверить, потому что это более свежая версия, чем Metrics), но, по крайней мере, эти инструменты могут рассуждать в терминах логических линий (вычисляемых суммированием конечные точки с запятой и конечные фигурные скобки).
Вы также можете проверить с помощью eclipse-метрики, более адаптированной к тому, что вы ожидаете.
Другим инструментом является Google Analytix, который также позволит вам запускать метрики, даже если вы не можете построить проект в случае ошибок.
Первое, что нужно сделать, это определить ваше определение "строки кода" (LOC). В обоих ваш вопрос
Он считает строку только с одним} как строку, и он не хочет, чтобы это считалось "это не строка, это выбор стиля"
и в ответах, например,
Вы можете настроить метрики "Строки кода", игнорируя пустые строки и строки, содержащие только комментарии, или исключив Javadoc, если хотите.
Вы можете сказать, что люди по-разному относятся к тому, что представляет собой строка кода. В частности, люди часто не могут точно сказать, действительно ли им нужно количество строк кода или количество операторов. Например, если у вас есть следующая действительно длинная строка, заполненная операторами, о чем вы хотите сообщить: 1 LOC или сотни утверждений?
{ a = 1; b = 2; if (a==c) b++; /* etc. for another 1000 characters */ }
И когда кто-то спрашивает вас, что вы называете LOC, убедитесь, что вы можете ответить, даже если это просто "мое определение LOC - это определение Metrics2". В общем, для наиболее часто отформатированного кода (в отличие от моего примера) популярные инструменты будут давать довольно похожие числа, поэтому Metrics2, SonarQube и т. Д. Должны подойти, если вы используете их последовательно. Другими словами, не следует подсчитывать LOC некоторого кода с помощью одного инструмента и сравнивать это значение с более поздней версией этого кода, измеренной с помощью другого инструмента.
Я создал плагин Eclipse, который может считать строки исходного кода. Он поддерживает Kotlin, Java, Java Script, JSP, XML, C/C++, C# и многие другие типы файлов.
Пожалуйста, посмотрите на это. Любая обратная связь будет оценена!
Для статического анализа я использовал и рекомендую SonarQube, который запускает практически все метрики, которые вы, возможно, захотите на широком диапазоне языков, и бесплатен в базовой версии (вам придется заплатить, чтобы проанализировать типы языков, которые я хотел бы только код с пистолетом в мою голову).
Вы должны установить его как веб-приложение, выполняющее анализ из вашего репозитория исходного кода, но оно также имеет плагин Eclipse.
Это излишне, если вы просто хотите узнать, как многократно, сколько строк кода в вашем проекте. Если вы хотите отслеживать показатели во времени, сравнивать проекты, выдавать предупреждения при превышении порога и т. Д., Это просто фантастика.
Раскрытие информации: у меня нет финансовых отношений с SonarSource.
ProjectCodeMeter считает LLOC (логические строки кода) в точности так, как вы описали (только эффективные строки). он интегрируется в Eclipse как инструмент метрик внешнего кода, но не в режиме реального времени, но генерирует отчет. На самом деле он подсчитывает многие метрики исходного кода, такие как сложность, сложность арифметики, жестко закодированные строки, числовые константы... даже оценивает время разработки в часах,