web-dev-qa-db-ja.com

Xcodeプロジェクトにあるコードの行数を調べる方法は?

Xcodeプロジェクトに含まれるコードの行数を決定する方法はありますか?そのような情報を管理上の測定や従業員のベンチマークの目的に使用しないことを約束します。 ;)

138
Dave Gallagher

CLOC を確認してください。

clocは、多くのプログラミング言語の空白行、コメント行、およびソースコードの物理行をカウントします。

レガシービルドはSourceForgeでアーカイブされます 。)

118

私はこれが浮かんでいるのを見て、自分で使っています:

find . "(" -name "*.m" -or -name "*.mm" -or -name "*.cpp" -or -name "*.Swift" ")" -print0 | xargs -0 wc -l
219
Joshua Nozzi

私は CLOCNathan 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
-------------------------------------------------------------------------------
73
tiguero

ターミナルで、プロジェクトディレクトリに移動し、次を実行します。

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

特定のファイルタイプのみが必要な場合は、次のようなものを試してください

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

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 + 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:ディレクトリの変更
タブを押してオートコンプリートします
スペースの前に「\」バックスラッシュを置くことを忘れないでください
メインプロジェクトから1つ下のフォルダに移動して、フレームワークからコードカウントを取り除くことをお勧めします。

42
Esqarrouth

Xcode Statisticianをチェックしてください。まさにあなたが望むことをします。また、他の興味深い統計も提供するので、時々楽しみにしてみる価値があります。

グループでは見えますが、実際のフォルダの中では見えないことに注意してください。おそらく、実際のフォルダを使用していないので、うまく動作するでしょう。フォルダーを使用している場合は、各フォルダーでカウントを行い、それらを一緒に追加するだけです。

注: 2012年6月現在、これはXcodeの最新バージョンでは適切に動作しないようです。

34
  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
    

(*合計数からポッドファイル数を除く)

27
Shan Shafiq

ターミナルでプロジェクトのディレクトリに移動して、次のように入力すると:

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

これにより、プロジェクトの内訳、および各ファイルとプロジェクト全体の行の合計が表示されます。

15
RileyE

Nozziのバージョンは動作しませんが、これは:

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

MacPortsから SLOCCount をインストールできます。または、より大雑把に言うと、wc -lを使用できます。

6
anthony

すばやく簡単な方法:

正規表現検索を使用します(ナビゲータを検索、検索>正規表現を選択)。

。\ n

Xcodeの検索スコープで便利に動作し、カウントする行の種類に合わせて簡単にカスタマイズできます;)。

5

繰り返してすみません。それが私見の最も簡単な方法です:

  1. ターミナルタイプ

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

これにより、プロジェクトフォルダーのすべてのファイルがnewFolderにコピーされます。

  1. Xcode Statistician をダウンロードし、newFolderenter image description here
2
Nik Kov

私はxcodeに精通していませんが、必要なのがディレクトリツリー内のすべての特定のファイルの行数をカウントすることだけであれば、次のコマンドを使用できます。

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

Joshua Nozzi's answer に従い、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で終わるすべてのファイルと一致します。これらの式の詳細については、 ファイル検索での正規表現の使用方法 を参照してください。

Mac OS findで作業している場合、コメントで Motti Shneor で説明されているように、少し異なるアプローチが必要です。

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

どちらも次の形式で出力を提供します。

234 ./file1
456 ./file2
690 total

そのため、このように保持するか、tail -1(つまり、find ... | tail -1)にパイプするだけで、最後の行だけが合計になります。

2
fedorqui

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

そして、このツールの最良の部分は、configureファイルのような.gitignoreを追加できることです。 「.gitignore」で行うのと同じように、カウントするファイルの種類を選択または無視するルールを設定できます。はい、このツールは、私が何行持っているかを簡単に知るために考案されたものです。

詳細と使用方法はこちら: https://github.com/MorganZhang100/line-counter

私はこのシンプルなツールの作者です。それが誰かを助けることを願っています。

星やフォークは大歓迎です:P

1
Morgan Zhang