Có cách nào để xác định dự án Xcode chứa bao nhiêu dòng mã không? Tôi hứa sẽ không sử dụng thông tin đó cho mục đích đo lường quản lý hoặc điểm chuẩn của nhân viên. ;)
Có cách nào để xác định dự án Xcode chứa bao nhiêu dòng mã không? Tôi hứa sẽ không sử dụng thông tin đó cho mục đích đo lường quản lý hoặc điểm chuẩn của nhân viên. ;)
Câu trả lời:
Kiểm tra CLOC .
cloc đếm các dòng trống, dòng nhận xét và dòng vật lý của mã nguồn trong nhiều ngôn ngữ lập trình.
Tôi thấy điều này trôi nổi xung quanh và sử dụng nó cho mình:
find . "(" -name "*.m" -or -name "*.mm" -or -name "*.cpp" -or -name "*.swift" ")" -print0 | xargs -0 wc -l
Tôi đã sử dụng CLOC như đã đề cậpNathan Kinsinger
và nó khá dễ sử dụng. Đó là một kịch bản PERL mà bạn có thể thêm và chạy từ thư mục dự án của bạn.
PERL đã là một phần của Mac OS và bạn có thể gọi tập lệnh theo cách này để tìm ra số dòng bạn đã viết:
perl cloc-1.56.pl ./YourDirectoryWhereYourSourcesAre
Đây là một ví dụ về đầu ra tôi nhận được từ lệnh đó:
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
-------------------------------------------------------------------------------
Mở Terminal.app, vào thư mục gốc của dự án và chạy lệnh này:
Chỉ dành cho Swift:
find . \( -iname \*.swift \) -exec wc -l '{}' \+
Chỉ dành cho Obj-C:
find . \( -iname \*.m -o -iname \*.mm -o -iname \*.h \) -exec wc -l '{}' \+
Đối với Obj-C + Swift:
find . \( -iname \*.m -o -iname \*.mm -o -iname \*.h -o -iname \*.swift \) -exec wc -l '{}' \+
Đối với 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 '{}' \+
Mẹo nhanh về thiết bị đầu cuối:
ls: liệt kê nội dung thư mục
cd: thay đổi thư mục
Nhấn tab để tự động hoàn thành
Hãy nhớ đặt dấu gạch chéo ngược "\" trước khoảng trắng
Tôi đề nghị chuyển xuống một thư mục từ dự án chính để bạn thoát khỏi số đếm mã từ các khung công tác
Trong terminal, thay đổi vào thư mục dự án và chạy:
find . -type f -print0 | xargs -0 cat | wc -l
Nếu bạn chỉ muốn một số loại tệp nhất định, hãy thử một cái gì đó như
find . -type f -name \*.[ch]* -print0 | xargs -0 cat | wc -l
Kiểm tra Xcode Statistician, nó thực hiện chính xác những gì bạn muốn. Nó cũng cung cấp các số liệu thống kê thú vị khác vì vậy rất đáng để chạy cho vui bây giờ và sau đó.
Lưu ý rằng nó sẽ không nhìn vào bên trong các thư mục thực, mặc dù nó sẽ nhìn theo nhóm. Điều lạ là bạn không sử dụng các thư mục thực nên nó sẽ hoạt động rất tốt. Nếu bạn đang sử dụng các thư mục thì bạn chỉ cần đếm số trong mỗi thư mục và cộng chúng lại với nhau.
Lưu ý: Kể từ tháng 6 năm 2012, có vẻ như điều này không hoạt động đúng với các phiên bản Xcode mới nhất.
thực hiện lệnh sau trong dự án của bạn:
find . -path ./Pods -prune -o -name "*.swift" -print0 ! -name "/Pods" | xargs -0 wc -l
Hoặc là:
find . -path ./Pods -prune -o -name "*[hm]" -print0 ! -name "/Pods" | xargs -0 wc -l
(* Không bao gồm các tệp pod được tính từ tổng số)
Nếu bạn đi đến thư mục dự án của bạn trong thiết bị đầu cuối và nhập:
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
Điều đó sẽ cung cấp cho bạn một phân tích dự án, cũng như tổng số dòng cho mỗi tệp và toàn bộ dự án.
find . "(" -name "*.swift" ")" -print0 | xargs -0 wc -l
find . "(" -name "RE*.swift" ")" -print0 | xargs -0 wc -l
Phiên bản của Nozzi không phù hợp với tôi, nhưng phiên bản này:
find . -type f -print0 | xargs -0 cat | wc -l
Một cách nhanh chóng và dễ dàng:
Sử dụng tìm kiếm regex (Tìm điều hướng, chọn Tìm> Biểu thức chính quy).
. \ n
Hoạt động thuận tiện với phạm vi tìm kiếm Xcode và bạn có thể dễ dàng tùy chỉnh nó theo bất kỳ loại dòng nào bạn muốn đếm;).
Bạn có thể cài đặt SLOCCount thông qua MacPorts. Hoặc, thô bạo hơn, bạn có thể sử dụng wc -l.
Tôi không quen với xcode, nhưng nếu tất cả những gì bạn cần là đếm số dòng từ tất cả các tệp cụ thể trong cây thư mục, bạn có thể sử dụng lệnh sau:
find .... match of all those files ... -exec wc -l {} +
Theo câu trả lời của Joshua Nozzi , trong GNU, tìm biểu thức chính quy cho các tệp như vậy sẽ như sau:
find . "(" -name "*.m" -or -name "*.mm" -or -name "*.cpp" -or -name "*.swift" ")" -exec wc -l {} +
hoặc thậm chí
find -regex ".*\.\(m\|mm\|cpp\|swift\)$" -exec wc -l {} +
này sử dụng một biểu thức chính quy để phù hợp với tất cả các file có đuôi hoặc .m
, .mm
, .cpp
hoặc .swift
. Bạn có thể xem thêm thông tin về các biểu thức đó trong Cách sử dụng regex trong tệp tìm .
Nếu bạn đang làm việc với Mac OS find , thì bạn cần một cách tiếp cận hơi khác, như được giải thích bởi Motti Shneor trong các bình luận:
find -E . -regex ".*\.([hmc]|mm|cp+|swift|pch)$" -exec wc -l {} +
Cả hai sẽ cung cấp một đầu ra ở dạng:
234 ./file1
456 ./file2
690 total
Vì vậy, bạn có thể giữ nó như thế này hoặc chỉ đường ống đến tail -1
(nghĩa là find ... | tail -1
) để bạn chỉ cần lấy dòng cuối cùng là tổng số.
\|
và những người khác trong MacOS. --regex
là hợp lệ trong cả GNU find (cái tôi sử dụng) và MacOS.
Xin lỗi vì đã lặp lại. Đó là cách dễ nhất IMHO:
find /users/<#username#>/documents/folderWithProject/ -type f -exec cp {} /users/<#username#>/documents/folderWithProject/newFolder/ \;
Điều này sẽ sao chép tất cả các tập tin từ thư mục dự án vào newFolder
.
newFolder
line-counter
là một thay thế tốt. Nó nhẹ hơn CLOC và mạnh hơn và dễ sử dụng hơn các lệnh khác.
Tổng quan nhanh
Đây là cách bạn có được công cụ
$ pip install line-counter
Sử dụng line
lệnh để lấy số tập tin và số dòng trong thư mục hiện tại (đệ quy)
$ line
Search in /Users/Morgan/Documents/Example/
file count: 4
line count: 839
Nếu bạn muốn biết thêm chi tiết, chỉ cần sử dụng 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
Và phần tốt nhất của công cụ này là, bạn có thể thêm .gitignore như cấu hình tệp vào nó. Bạn có thể thiết lập quy tắc để chọn hoặc bỏ qua loại tệp nào sẽ được tính giống như những gì bạn làm trong '.gitignore'. Vâng, công cụ này chỉ được phát minh để giúp tôi biết có bao nhiêu dòng dễ dàng hơn.
Mô tả và cách sử dụng khác có tại đây: https://github.com/MorganZhang100/line-count
Tôi là tác giả của công cụ đơn giản này. Hy vọng nó có thể giúp ai đó.