Как узнать, сколько строк кода есть в проекте Xcode?

Есть ли способ определить, сколько строк кода содержит проект Xcode? Я обещаю не использовать такую ​​информацию для целей управленческого измерения или для бенчмаркинга сотрудников.;)

Ответ 2

Я вижу это всплывающее и использую его сам:

find . "(" -name "*.m" -or -name "*.mm" -or -name "*.cpp" -or -name "*.swift" ")" -print0 | xargs -0 wc -l

Ответ 3

Я использовал CLOC, как упоминалось в Nathan Kinsinger, и он довольно прост в использовании. Это PERL script, который можно добавить и запустить из каталога проекта.

PERL уже является частью Mac OS, и вы можете вызвать script таким образом, чтобы узнать свое количество строк, которые вы написали:

perl cloc-1.56.pl ./YourDirectoryWhereYourSourcesAre

Это пример вывода, полученного из такой команды:

   176 text files.
   176 unique files.                                          
     4 files ignored.

http://cloc.sourceforge.net v 1.56  T=2.0 s (86.0 files/s, 10838.0 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
Objective C                     80           3848           1876          11844
C/C++ Header                    92            980           1716           1412
-------------------------------------------------------------------------------
SUM:                           172           4828           3592          13256
-------------------------------------------------------------------------------

Ответ 4

В терминале перейдите в каталог проекта и запустите:

find . -type f -print0 | xargs -0 cat | wc -l

Если вы хотите только определенные типы файлов, попробуйте что-то вроде

find . -type f -name \*.[ch]* -print0 | xargs -0 cat | wc -l

Ответ 5

Проверьте статистик Xcode, он делает именно то, что вы хотите. Он также предоставляет другие интересные статистические данные, поэтому стоит потратить время и время.

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

Примечание: По состоянию на июнь 2012 года, похоже, что это не работает должным образом с последними версиями Xcode.

Ответ 6

Откройте Terminal.app, зайдите в корневой каталог проекта и выполните следующую команду:

Только для Swift:

find . \( -iname \*.swift \) -exec wc -l '{}' \+

Только для Obj-C:

find . \( -iname \*.m -o -iname \*.mm -o -iname \*.h \) -exec wc -l '{}' \+

Для Obj-C + Swift:

find . \( -iname \*.m -o -iname \*.mm -o -iname \*.h -o -iname \*.swift \) -exec wc -l '{}' \+

Для Obj-C + Swift + C + С++:

find . \( -iname \*.m -o -iname \*.mm -o -iname \*.c -o -iname \*.cc -o -iname \*.h -o -iname \*.hh -o -iname \*.hpp -o -iname \*.cpp -o -iname \*.swift \) -exec wc -l '{}' \+

Краткие советы терминалов:
ls: список содержимого каталога
cd: изменить каталог
Нажмите вкладку для автозаполнения
Не забудьте поставить "\" обратную косую черту перед пробелами
Я предлагаю перейти в одну папку из основного проекта, чтобы вы избавились от количества кодов из фреймворков

Ответ 7

Если вы перейдете в каталог проекта в терминале и введите:

find . "(" -name "*.h" -or -name "*.m" -or -name "*.mm" -or -name "*.hpp" -or -name "*.cpp"  -or  -name "*.c" -or -name "*.cc" -or -name "*.swift" ")" -print0 | xargs -0 wc -l

Это даст вам разбивку проекта, а также общую сумму для каждого файла и проекта в целом.

Ответ 8

  • открытый терминал
  • перейти к вашему проекту
  • выполните следующую команду внутри вашего проекта:

    find . -path ./Pods -prune -o -name "*.swift" -print0 ! -name "/Pods" | xargs -0 wc -l
    

    Или:

    find . -path ./Pods -prune -o -name "*[hm]" -print0 ! -name "/Pods" | xargs -0 wc -l
    

(* Исключая файлы подкадров из общего количества)

Ответ 9

Версия Nozzi не работает для меня, но эта:

find . -type f -print0 | xargs -0 cat | wc -l

Ответ 10

Вы можете установить SLOCCount через MacPorts. Или, более грубо, вы можете использовать wc -l.

Ответ 11

Быстрый и простой способ:

Используйте поиск по регулярному выражению (Find Navigator, выберите Find > Regular Expression).

.\П

Удобно работает с областями поиска Xcode, и вы можете легко настроить его на любой тип строки, которую вы хотели бы сосчитать;).

Ответ 12

Я не знаком с xcode, но если вам нужно только подсчитать количество строк из всех этих конкретных файлов в дереве каталогов, вы можете использовать следующую команду:

find .... match of all those files ... -exec wc -l {} +

После ответа Джошуа Ноцци, регулярное выражение для таких файлов будет выглядеть так:

find . "(" -name "*.m" -or -name "*.mm" -or -name "*.cpp" -or -name "*.swift" ")" -exec wc -l {} +

или даже

find -regex ".*\.\(m\|mm\|cpp\|swift\)$" -exec wc -l {} +

для этого используется регулярное выражение для соответствия всем файлам, заканчивающимся на .m, .mm, .cpp или .swift. Вы можете увидеть дополнительную информацию об этих выражениях в Как использовать регулярное выражение в поиске файлов.

Это даст результат в форме

234 ./file1
456 ./file2
690 total

Таким образом, вы можете либо сохранить его так, либо просто подключиться к tail -1 (т.е. find ... | tail -1), чтобы вы могли просто получить последнюю строку.

Ответ 13

Извините за повторение. Это самый простой способ ИМХО:

  • В терминальном типе

find /users/<#username#>/documents/folderWithProject/ -type f -exec cp {} /users/<#username#>/documents/folderWithProject/newFolder/ \;

Это скопирует все файлы из папки проекта в newFolder.

  1. Загрузите Xcode Statistician и используйте его с newFolder введите описание изображения здесь

Ответ 14

line-counter - хорошая альтернатива. Он легче CLOC и намного более мощный и простой в использовании, чем другие команды.

Краткий обзор

Вот как вы получаете инструмент

$ pip install line-counter

Используйте команду line, чтобы получить количество файлов и количество строк в текущем каталоге (рекурсивно)

$ line
Search in /Users/Morgan/Documents/Example/
file count: 4
line count: 839

Если вам нужна дополнительная информация, просто используйте line -d.

$ line -d
Search in /Users/Morgan/Documents/Example/
Dir A/file C.c                                             72
Dir A/file D.py                                           268
file A.py                                                 467
file B.c                                                   32
file count: 4
line count: 839

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

Больше описания и использования здесь: https://github.com/MorganZhang100/line-counter

Я автор этого простого инструмента. Надеюсь, это может помочь кому-то.

Любая звезда или вилка оценивается: P