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

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

14 ответов


проверить CLOC.

cloc подсчитывает пустые строки, строки комментариев и физические строки исходного кода на многих языках программирования.

(устаревшие сборки архивируются на SourceForge.)


Я вижу, что это плавает вокруг и использовать его сам:

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

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

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

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
-------------------------------------------------------------------------------

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

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

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

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

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

только для 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 + 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 '{}' \+

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


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

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

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


  1. открыть терминал
  2. перейдите к вашему проекту
  3. выполните следующую команду внутри вашего проекта:

    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
    

(*исключая количество файлов pod из общего количества)


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

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

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


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

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

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


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

используйте поиск регулярных выражений (найдите навигатор, выберите Найти > регулярное выражение).

.\n

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


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

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

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

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. Вы можете увидеть дополнительную информацию о тех выражениях в как использовать regex в файле find.

если вы работаете с Mac OS найти, тогда вам нужен немного другой подход, как пояснил Мотти Шнеор комментарии:

find -E . -regex ".*\.([hmc]|mm|cp+|swift|pch)$" -exec wc -l {} +

оба будут предоставлять вывод в виде:

234 ./file1
456 ./file2
690 total

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


простите за повторение. Это самый простой способ IMHO:

  1. В типа терминал

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

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

  1. скачать Статистика Xcode и использовать его с newFolder enter image description here

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

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

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

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

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