Bir Xcode projesinin kaç satır kod içerdiğini belirlemenin bir yolu var mı? Bu tür bilgileri yönetimsel ölçüm veya çalışanların karşılaştırması amacıyla kullanmayacağıma söz veriyorum. ;)
Bir Xcode projesinin kaç satır kod içerdiğini belirlemenin bir yolu var mı? Bu tür bilgileri yönetimsel ölçüm veya çalışanların karşılaştırması amacıyla kullanmayacağıma söz veriyorum. ;)
Yanıtlar:
Check Cloc .
cloc, birçok programlama dilinde boş satırları, yorum satırlarını ve kaynak kodun fiziksel satırlarını sayar.
Bunun etrafta dolaştığını görüyorum ve kendim kullanıyorum:
find . "(" -name "*.m" -or -name "*.mm" -or -name "*.cpp" -or -name "*.swift" ")" -print0 | xargs -0 wc -l
Ben de belirtildiği gibi CLOC kullanıyorum ve kullanımı oldukça kolay. Proje dizininizden ekleyebileceğiniz ve çalıştırabileceğiniz bir PERL betiğidir.Nathan Kinsinger
PERL zaten Mac OS'nin bir parçasıdır ve yazdığınız satır sayınızı bulmak için betiği şu şekilde çalıştırabilirsiniz:
perl cloc-1.56.pl ./YourDirectoryWhereYourSourcesAre
Bu, böyle bir komuttan aldığım çıktıya bir örnek:
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
-------------------------------------------------------------------------------
Terminal.app'i açın, projenizin kök dizinine gidin ve şu komutu çalıştırın:
Yalnızca Swift için:
find . \( -iname \*.swift \) -exec wc -l '{}' \+
Yalnızca Obj-C için:
find . \( -iname \*.m -o -iname \*.mm -o -iname \*.h \) -exec wc -l '{}' \+
Obj-C + Swift için:
find . \( -iname \*.m -o -iname \*.mm -o -iname \*.h -o -iname \*.swift \) -exec wc -l '{}' \+
Obj-C + Swift + C + C ++ için:
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 '{}' \+
Terminal hızlı ipuçları:
ls: dizin içeriklerini listeleyin
cd: dizini değiştirin
Otomatik tamamlama
için sekmeye basın Boşlukların önüne "\" ters eğik çizgi koymayı unutmayın
Ana projeden bir klasör aşağı gitmenizi öneririm, böylece çerçevelerden kod sayımından kurtulursunuz
Terminalde proje dizinine geçin ve şunu çalıştırın:
find . -type f -print0 | xargs -0 cat | wc -l
Yalnızca belirli dosya türlerini istiyorsanız, aşağıdaki gibi bir şey deneyin:
find . -type f -name \*.[ch]* -print0 | xargs -0 cat | wc -l
Xcode Statistician'a bakın, tam olarak istediğinizi yapar. Ayrıca başka ilginç istatistikler de sağlar, bu nedenle ara sıra eğlenmek için denemeye değer.
Gruplar halinde görünecek olsa da gerçek klasörlerin içine bakmayacağını unutmayın. Muhtemelen gerçek klasörler kullanmıyorsunuz, bu yüzden harika çalışıyor. Klasör kullanıyorsanız, her klasör için sayımı yapmanız ve bunları birbirine eklemeniz yeterlidir.
Not: Haziran 2012 itibarıyla, bu Xcode'un en son sürümleriyle düzgün çalışmıyor gibi görünüyor.
projenizde aşağıdaki komutu çalıştırın:
find . -path ./Pods -prune -o -name "*.swift" -print0 ! -name "/Pods" | xargs -0 wc -l
Veya:
find . -path ./Pods -prune -o -name "*[hm]" -print0 ! -name "/Pods" | xargs -0 wc -l
(* Toplam sayıdan pod dosyalarının sayımı hariç)
Terminalde projenizin dizinine gidip şunu girin:
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
Bu size bir proje dökümünün yanı sıra her dosya ve bir bütün olarak proje için satır toplamını verecektir.
find . "(" -name "*.swift" ")" -print0 | xargs -0 wc -l
find . "(" -name "RE*.swift" ")" -print0 | xargs -0 wc -l
Nozzi'nin versiyonu benim için çalışmıyor, ama bu:
find . -type f -print0 | xargs -0 cat | wc -l
Hızlı ve kolay bir yol:
Bir normal ifade araması kullanın (Gezgin Bul, Bul> Normal İfade'yi seçin).
. \ n
Xcode arama kapsamlarıyla rahatlıkla çalışır ve saymak istediğiniz her tür satıra göre kolayca özelleştirebilirsiniz;).
SLOCCount'u MacPorts üzerinden kurabilirsiniz . Ya da daha kabaca, wc -l kullanabilirsiniz.
Xcode ile aşina değilim, ancak ihtiyacınız olan tek şey bir dizin ağacındaki tüm bu belirli dosyalardan satır sayısını saymaksa, aşağıdaki komutu kullanabilirsiniz:
find .... match of all those files ... -exec wc -l {} +
Joshua Nozzi'nin cevabını takiben , GNU'da bu tür dosyalar için normal ifadenin şöyle olacağını bulun :
find . "(" -name "*.m" -or -name "*.mm" -or -name "*.cpp" -or -name "*.swift" ")" -exec wc -l {} +
ya da
find -regex ".*\.\(m\|mm\|cpp\|swift\)$" -exec wc -l {} +
Bu ikisinden biri ile biten tüm dosyaları maç için normal bir ifade kullanır .m
, .mm
, .cpp
veya .swift
. Bu ifadeler hakkında daha fazla bilgiyi Dosya bulmada normal ifadeyi kullanma bölümünde bulabilirsiniz .
Mac OS find ile çalışıyorsanız, Motti Shneor tarafından yorumlarda açıklandığı gibi biraz farklı bir yaklaşıma ihtiyacınız vardır :
find -E . -regex ".*\.([hmc]|mm|cp+|swift|pch)$" -exec wc -l {} +
Her ikisi de şu şekilde bir çıktı sağlayacaktır:
234 ./file1
456 ./file2
690 total
Yani, ya bu şekilde tutabilir ya da sadece boru hattını tail -1
(yani find ... | tail -1
) tutabilirsiniz , böylece sadece son satırın toplam olduğunu elde edersiniz.
Tekrarladığım için özür dilerim. IMHO'nun en kolay yolu budur:
find /users/<#username#>/documents/folderWithProject/ -type f -exec cp {} /users/<#username#>/documents/folderWithProject/newFolder/ \;
Bu, tüm dosyaları proje klasöründen konumuna kopyalayacaktır newFolder
.
newFolder
line-counter
iyi bir alternatiftir. CLOC'den daha hafiftir ve diğer komutlardan çok daha güçlü ve kullanımı daha kolaydır.
Hızlı bir genel bakış
Aracı bu şekilde elde edersiniz
$ pip install line-counter
line
Mevcut dizin altındaki dosya sayısını ve satır sayısını elde etmek için komutu kullanın (özyinelemeli olarak)
$ line
Search in /Users/Morgan/Documents/Example/
file count: 4
line count: 839
Daha fazla ayrıntı istiyorsanız, sadece kullanın 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
Ve bu aracın en iyi yanı, .gitignore'u yapılandırma dosyasını ona ekleyebilmenizdir. '.Gitignore'da yaptığınız gibi, ne tür dosyaların sayılacağını seçmek veya yok saymak için kurallar oluşturabilirsiniz. Evet, bu araç sadece daha kolay kaç satırım olduğunu bilmek için icat edildi.
Daha fazla açıklama ve kullanım burada: https://github.com/MorganZhang100/line-counter
Bu basit aracın yazarıyım. Umarım birine yardımcı olabilir.
Aşağıdaki gibi Mac'te CLOC kitaplığını uygulama adımları:
Açık terminal
Homebrew'i aşağıdaki komutu kullanarak kurun ,
ruby -e "$ (curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install )"
Terminalde çift tırnak dahil olmak üzere bu komutu kopyalayıp yapıştırın
Sistem şifresini girin ve enter'a tıklayın.
Sistem olacaktır pop-up lütfen, bu kadar çok izinleri tüm izinleri izin
Her şey yolunda giderse, aşağıdaki gibi terminal ekranını göreceksiniz,
Kullanarak proje klasörüne yönlendirin cd drag & drop project folder path to terminal
Şimdi CLOC'yi kurma zamanı aşağıdaki komutu kullanarak
cloc. --exclude-dir = Bölmeler dosyalarını hariç tutmak için kullanılan bölmeler
cloc. pod dosyaları dahil
Her şey yolunda giderse, aşağıdaki gibi kod satırlarının sayısını gösterecektir.
Umarım birine yardımcı olur.