Apakah ada cara untuk menentukan berapa banyak baris kode yang berisi proyek Xcode? Saya berjanji untuk tidak menggunakan informasi tersebut untuk pengukuran manajerial atau tujuan pembandingan karyawan. ;)
Apakah ada cara untuk menentukan berapa banyak baris kode yang berisi proyek Xcode? Saya berjanji untuk tidak menggunakan informasi tersebut untuk pengukuran manajerial atau tujuan pembandingan karyawan. ;)
Jawaban:
Lihat CLOC .
cloc menghitung baris kosong, baris komentar, dan garis fisik kode sumber dalam banyak bahasa pemrograman.
Saya melihat ini melayang dan menggunakannya sendiri:
find . "(" -name "*.m" -or -name "*.mm" -or -name "*.cpp" -or -name "*.swift" ")" -print0 | xargs -0 wc -l
Saya telah menggunakan CLOC seperti yang disebutkan olehNathan Kinsinger
dan cukup mudah digunakan. Ini adalah skrip PERL yang dapat Anda tambahkan dan jalankan dari direktori proyek Anda.
PERL sudah menjadi bagian dari Mac OS dan Anda dapat menjalankan skrip dengan cara ini untuk mengetahui jumlah baris yang telah Anda tulis:
perl cloc-1.56.pl ./YourDirectoryWhereYourSourcesAre
Ini adalah contoh dari output yang saya dapatkan dari perintah tersebut:
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
-------------------------------------------------------------------------------
Buka Terminal.app, masuk ke direktori root proyek Anda, dan jalankan perintah ini:
Hanya untuk Swift:
find . \( -iname \*.swift \) -exec wc -l '{}' \+
Hanya untuk Obj-C:
find . \( -iname \*.m -o -iname \*.mm -o -iname \*.h \) -exec wc -l '{}' \+
Untuk Obj-C + Swift:
find . \( -iname \*.m -o -iname \*.mm -o -iname \*.h -o -iname \*.swift \) -exec wc -l '{}' \+
Untuk 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 '{}' \+
Kiat cepat terminal:
ls: daftar isi direktori
cd: ubah direktori
Tekan tab untuk pelengkapan otomatis
Ingatlah untuk meletakkan backslash "\" sebelum spasi,
saya sarankan untuk turun satu folder dari proyek utama sehingga Anda menyingkirkan jumlah kode dari kerangka kerja
Di terminal, ubah ke direktori proyek dan jalankan:
find . -type f -print0 | xargs -0 cat | wc -l
Jika Anda hanya menginginkan jenis file tertentu, coba sesuatu seperti
find . -type f -name \*.[ch]* -print0 | xargs -0 cat | wc -l
Lihat Xcode Statistician, ia melakukan apa yang Anda inginkan. Ini juga menyediakan statistik menarik lainnya sehingga layak dijalankan untuk bersenang-senang sekarang dan nanti.
Perhatikan bahwa itu tidak akan melihat ke dalam folder nyata, meskipun akan terlihat dalam grup. Kemungkinan Anda tidak menggunakan folder nyata sehingga akan bekerja dengan baik. Jika Anda menggunakan folder maka Anda hanya perlu melakukan penghitungan di setiap folder dan menambahkannya bersama-sama.
Catatan: Pada Juni 2012, tampaknya ini tidak berfungsi dengan baik dengan versi terbaru Xcode.
jalankan perintah berikut di dalam proyek Anda:
find . -path ./Pods -prune -o -name "*.swift" -print0 ! -name "/Pods" | xargs -0 wc -l
Atau:
find . -path ./Pods -prune -o -name "*[hm]" -print0 ! -name "/Pods" | xargs -0 wc -l
(* Tidak termasuk file pod dihitung dari jumlah total)
Jika Anda pergi ke direktori proyek Anda di terminal dan masukkan:
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
Itu akan memberi Anda rincian proyek, serta total baris untuk setiap file dan proyek secara keseluruhan.
find . "(" -name "*.swift" ")" -print0 | xargs -0 wc -l
find . "(" -name "RE*.swift" ")" -print0 | xargs -0 wc -l
Versi Nozzi tidak bekerja untuk saya, tetapi yang ini:
find . -type f -print0 | xargs -0 cat | wc -l
Cara cepat & mudah:
Gunakan pencarian regex (Temukan Navigator, pilih Temukan> Ekspresi Reguler).
. \ n
Bekerja dengan nyaman dengan cakupan pencarian Xcode dan Anda dapat dengan mudah menyesuaikannya dengan jenis garis apa pun yang ingin Anda hitung;)
Anda dapat menginstal SLOCCount melalui MacPorts. Atau, lebih kasarnya, Anda bisa menggunakan wc -l.
Saya tidak terbiasa dengan xcode, tetapi jika semua yang Anda butuhkan adalah untuk menghitung jumlah baris dari semua file tertentu dalam pohon direktori, Anda dapat menggunakan perintah berikut:
find .... match of all those files ... -exec wc -l {} +
Mengikuti jawaban Joshua Nozzi , di GNU temukan ekspresi reguler untuk file-file tersebut adalah:
find . "(" -name "*.m" -or -name "*.mm" -or -name "*.cpp" -or -name "*.swift" ")" -exec wc -l {} +
atau bahkan
find -regex ".*\.\(m\|mm\|cpp\|swift\)$" -exec wc -l {} +
ini menggunakan ekspresi reguler untuk mencocokkan semua file berekstensi baik .m
, .mm
, .cpp
atau .swift
. Anda dapat melihat informasi lebih lanjut tentang ekspresi itu di Cara menggunakan regex dalam pencarian file .
Jika Anda bekerja dengan Mac OS find , maka Anda memerlukan pendekatan yang sedikit berbeda, seperti yang dijelaskan oleh Motti Shneor dalam komentar:
find -E . -regex ".*\.([hmc]|mm|cp+|swift|pch)$" -exec wc -l {} +
Keduanya akan memberikan output berupa:
234 ./file1
456 ./file2
690 total
Jadi Anda bisa tetap seperti ini atau hanya pipa ke tail -1
(yaitu, find ... | tail -1
) sehingga Anda hanya mendapatkan baris terakhir menjadi total.
\|
dan yang lainnya di MacOS. --regex
valid di kedua GNU find (yang saya gunakan) dan MacOS.
Maaf sudah mengulangi. Itulah cara termudah IMHO:
find /users/<#username#>/documents/folderWithProject/ -type f -exec cp {} /users/<#username#>/documents/folderWithProject/newFolder/ \;
Ini akan menyalin semua file dari folder proyek ke newFolder
.
newFolder
line-counter
adalah alternatif yang bagus. Ini lebih ringan dari CLOC dan jauh lebih kuat dan lebih mudah digunakan daripada perintah lain.
Gambaran singkat
Inilah cara Anda mendapatkan alat
$ pip install line-counter
Gunakan line
perintah untuk mendapatkan jumlah file dan jumlah baris di bawah direktori saat ini (secara rekursif)
$ line
Search in /Users/Morgan/Documents/Example/
file count: 4
line count: 839
Jika Anda ingin lebih detail, gunakan saja 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
Dan bagian terbaik dari alat ini adalah, Anda dapat menambahkan .gitignore seperti mengonfigurasi file. Anda dapat mengatur aturan untuk memilih atau mengabaikan jenis file yang akan dihitung seperti apa yang Anda lakukan di '.gitignore'. Ya, alat ini baru saja diciptakan untuk mengetahui berapa banyak garis yang saya miliki dengan lebih mudah.
Deskripsi dan penggunaan lebih lanjut ada di sini: https://github.com/MorganZhang100/line-counter
Saya penulis alat sederhana ini. Semoga bisa membantu seseorang.