Có thể tìm thấy số dòng mã trong toàn bộ giải pháp không? Tôi đã nghe nói về MZ-Tools , nhưng có một nguồn mở tương đương không?
Có thể tìm thấy số dòng mã trong toàn bộ giải pháp không? Tôi đã nghe nói về MZ-Tools , nhưng có một nguồn mở tương đương không?
Câu trả lời:
Visual Studio 2010 Ultimate có tích hợp sẵn này:
Phân tích → Tính toán số liệu mã
Tôi đã tìm thấy powershell hữu ích cho việc này. Dù sao, tôi coi LoC là một số liệu không có thật, vì vậy tôi không tin bất cứ điều gì trang trọng hơn nên được yêu cầu.
Từ thư mục của một giải pháp nhỏ:
PS C:\Path> (gci -include *.cs,*.xaml -recurse | select-string .).Count
8396
PS C:\Path>
Điều đó sẽ đếm các dòng không trống trong tất cả các tệp .cs và .xaml của giải pháp. Đối với một dự án lớn hơn, tôi chỉ sử dụng một danh sách mở rộng khác nhau:
PS C:\Other> (gci -include *.cs,*.cpp,*.h,*.idl,*.asmx -recurse | select-string .).Count
909402
PS C:\Other>
Tại sao sử dụng toàn bộ ứng dụng khi một dòng lệnh sẽ làm điều đó? :)
(dir -exclude *.g.cs -include *.cs,*.xaml -recurse | select-string .).Count
Tôi đã sử dụng Ctrl+ Shift+ F. Tiếp theo, đặt một \n
trong hộp tìm kiếm và kích hoạt hộp biểu thức thông thường. Sau đó, trong kết quả tìm kiếm, ở cuối màn hình là số lượng tệp được tìm kiếm và dòng mã được tìm thấy.
Bạn có thể sử dụng [^\n\s]\r\n
để bỏ qua các dòng trống và chỉ có khoảng trắng (tín dụng cho Zach trong các bình luận).
Look at these file types:
thả xuống tùy chọn chỉ dưới đây enable regular expressions box
.
[^\n\s]\r\n
bỏ qua các dòng trống, thậm chí với không gian trong đó.
Một bộ đếm dòng mã nguồn mở cho VS2005, 2003 và 2002 có sẵn tại đây:
Ngoài ra còn có thảo luận về việc tạo một dòng đếm VS addin, hoàn thành với mã trên Codeproject, tại đây
http://www.codeproject.com/KB/macros/LineCorerAddin.aspx
Ngoài ra Tiện ích chỉnh sửa Slick có một bộ đếm dòng đẹp, tại đây:
http://www.slickedit.com/products/slickedit
và Microsoft Visual Studio Team System 2008 bao gồm một bộ đếm dòng tốt.
Chỉ cần nhớ rằng:
Đo lường tiến trình lập trình bằng các dòng mã giống như đo tiến độ chế tạo máy bay theo trọng lượng. Bill Gates
Đây là bản cập nhật cho Visual Studio 2012/2013/2015 cho những ai muốn thực hiện tùy chọn "Tìm" (mà tôi thấy là dễ nhất): RegEx này sẽ tìm tất cả các dòng không trống với một số loại trừ để cho kết quả chính xác nhất .
Nhập RegEx sau vào hộp "Tìm". Vui lòng đảm bảo chọn tùy chọn "Sử dụng biểu thức chính quy". Thay đổi tùy chọn tìm kiếm thành "Dự án hiện tại" hoặc "Toàn bộ giải pháp" tùy theo nhu cầu của bạn. Bây giờ chọn "Tìm tất cả". Ở dưới cùng của cửa sổ Tìm kết quả , bạn sẽ thấy "Dòng phù hợp" là dòng đếm mã.
^(?!(\s*\*))(?!(\s*\-\-\>))(?!(\s*\<\!\-\-))(?!(\s*\n))(?!(\s*\*\/))(?!(\s*\/\*))(?!(\s*\/\/\/))(?!(\s*\/\/))(?!(\s*\}))(?!(\s*\{))(?!(\s(using))).*$
RegEx này loại trừ các mục sau:
Bình luận
// This is a comment
Nhận xét nhiều dòng (giả sử các dòng được nhận xét chính xác bằng dấu * ở trước mỗi dòng)
/* I am a
* multi-line
* comment */
XML cho Intellisense
/// <summary>
/// I'm a class description for Intellisense
/// </summary>
Nhận xét HTML:
<!-- I am a HTML Comment -->
Sử dụng báo cáo:
using System;
using System.Web;
Mở niềng răng xoăn:
{
Đóng niềng răng xoăn:
}
Lưu ý: mọi thứ giữa các dấu ngoặc sẽ được đưa vào tìm kiếm, nhưng trong ví dụ này chỉ có 4 dòng mã sẽ được tính, thay vì 18 dòng không trống thực tế:
public class Test
{
/// <summary>
/// Do Stuff
/// </summary>
public Test()
{
TestMe();
}
public void TestMe()
{
//Do Stuff Here
/* And
* Do
* Stuff
* Here */
}
}
Tôi đã tạo điều này để cung cấp cho tôi số lượng LỘC chính xác hơn nhiều so với một số tùy chọn trước đó và hình dung tôi sẽ chia sẻ. Các ông chủ yêu thích số lượng LỘC, vì vậy tôi bị mắc kẹt trong một thời gian. Tôi hy vọng người khác có thể tìm thấy điều này hữu ích, cho tôi biết nếu bạn có bất kỳ câu hỏi hoặc cần trợ giúp để làm cho nó hoạt động.
Tìm thấy mẹo này: LỘC với VS Tìm và thay thế
Không phải là một plugin mặc dù nếu đó là những gì bạn đang tìm kiếm.
cloc là một dòng lệnh tuyệt vời, dựa trên Perl, thực thi Windows, nó sẽ phá vỡ các dòng trống, dòng nhận xét và dòng mã nguồn, được nhóm theo định dạng tệp.
Bây giờ nó sẽ không chạy cụ thể trên tệp giải pháp VS, nhưng nó có thể lặp lại qua các thư mục và bạn có thể thiết lập các bộ lọc tên tệp khi bạn thấy phù hợp.
Đây là đầu ra mẫu từ trang web của họ:
nhắc> cloc perl-5.10.0.tar.gz 4076 tệp văn bản. 3883 tệp duy nhất. 1521 tập tin bị bỏ qua. http://cloc.sourceforge.net v 1.07 T = 10.0 s (251.0 tệp / s, 84566.5 dòng / s) -------------------------------------------------- ----------------------------- Tập tin ngôn ngữ trống mã nhận xét quy mô gen thứ 3. tương đương -------------------------------------------------- ----------------------------- Perl 2052 110356 112521 309778 x 4,00 = 1239112.00 C 135 18718 22862 140483 x 0,77 = 108171,91 Tiêu đề C / C ++ 147 7650 12093 44042 x 1.00 = 44042.00 Vỏ Bourne 116 3402 5789 36882 x 3,81 = 140520,42 Lisp 1 684 2242 7515 x 1.25 = 9393,75 làm 7 498 473 2044 x 2.50 = 5110.00 C ++ 10 312 277 2000 x 1.51 = 3020.00 XML 26 231 0 1972 x 1.90 = 3746,80 yacc 2 128 97 1549 x 1.51 = 2338,99 YAML 2 2 0 489 x 0,90 = 440.10 Batch DOS 11 85 50 322 x 0,63 = 202,86 HTML 1 19 2 98 x 1,90 = 186,20 -------------------------------------------------- ----------------------------- TỔNG HỢP: 2510 142085 156406 547174 x 2.84 = 1556285.03 -------------------------------------------------- -----------------------------
Thang đo tương đương thế hệ thứ ba là một ước tính sơ bộ về số lượng mã cần thiết trong ngôn ngữ thế hệ thứ ba . Không phải là rất hữu ích, nhưng dù sao cũng thú vị.
choco install cloc
và sau đó cloc .
trong thư mục giải pháp của bạn. Công việc hoàn thành!
Câu trả lời ở đây hơi lỗi thời, có thể từ thời điểm 2008. Bởi vì trong các phiên bản Visual Studio mới hơn 2010/2012, tính năng này đã được tích hợp sẵn. Do đó, không có lý do để sử dụng bất kỳ phần mở rộng hoặc công cụ cho nó.
Tính năng đếm số dòng mã - Tính toán số liệu. Với nó, bạn có thể tính toán các số liệu của mình (LỘC, chỉ số Duy trì, Chỉ số chu kỳ, Độ sâu kế thừa) cho từng dự án hoặc giải pháp.
Chỉ cần nhấp chuột phải vào giải pháp hoặc dự án trong Solution Explorer,
và chọn "Tính toán số liệu"
Dữ liệu sau này để phân tích và tổng hợp có thể được nhập vào Excel. Ngoài ra trong Excel, bạn có thể lọc các lớp được tạo hoặc nhiễu khác từ số liệu của bạn. Các số liệu này bao gồm Dòng mã LỘC cũng có thể được thu thập trong quá trình xây dựng và được bao gồm trong báo cáo bản dựng
Biểu thức chính quy đã thay đổi giữa VS2010 và 2012, vì vậy hầu hết các giải pháp biểu thức chính quy ở đây không còn hoạt động
(^(?!(\s*//.+)))+(^(?!(#.+)))+(^(?!(\s*\{.+)))+(^(?!(\s*\}.+)))+(^(?!(\s*\r?$)))+
Sẽ tìm thấy tất cả các dòng không trống, không chỉ là một dấu ngoặc đơn ('{' hoặc '}') và không chỉ là một #incolee hoặc bộ tiền xử lý khác.
Sử dụng Ctrl- shift- fvà đảm bảo các biểu thức thông thường được bật.
Biểu thức chính quy tương ứng cho VS 2010 trở lên là
^~(:Wh@//.+)~(:Wh@\{:Wh@)~(:Wh@\}:Wh@)~(:Wh@/#).+
Trong Visual Studio Team System 2008, bạn có thể thực hiện từ menu Phân tích -> 'Tính toán số liệu mã cho giải pháp' và nó sẽ cung cấp cho bạn tổng số dòng của toàn bộ giải pháp của bạn (trong số những thứ khác g )
Đối với độc giả trong tương lai, tôi muốn tư vấn tiện ích mở rộng DPack cho Visual Studio 2010 .
Nó có một tải các tiện ích được tích hợp bao gồm bộ đếm dòng cho biết có bao nhiêu dòng trống, mã, v.v.
Một giải pháp đơn giản là tìm kiếm trong tất cả các tập tin. Nhập "*" trong khi sử dụng ký tự đại diện. Mà sẽ phù hợp với tất cả các dòng. Ở cuối cửa sổ tìm kết quả, bạn sẽ thấy một dòng sắp xếp:
Matching lines: 563 Matching files: 17 Total files searched: 17
Tất nhiên điều này không tốt cho các dự án lớn, vì tất cả các dòng được gia công và nạp vào bộ nhớ sẽ bị phân tán tại cửa sổ tìm kết quả.
Tài liệu tham khảo:
Bạn đã có thể sử dụng:
Tôi thích OxyProject Metrics VS Addin.
Rõ ràng các công cụ dễ dàng hơn, nhưng tôi cảm thấy tuyệt vời khi làm điều này trong powershell :)
Tập lệnh này tìm tất cả các tham chiếu .csproj trong tệp .sln, và sau đó trong mỗi tệp csproj, nó định vị các tệp được bao gồm để biên dịch. Đối với mỗi tệp được bao gồm để biên dịch, nó tạo một đối tượng với các thuộc tính: Solution, Project, File, Lines. Nó lưu trữ tất cả các đối tượng này trong một danh sách, sau đó nhóm và dự án dữ liệu khi cần thiết.
#path to the solution file e.g. "D:\Code\Test.sln"
$slnFile = "D:\Code\Test.sln"
#results
$results = @()
#iterate through .csproj references in solution file
foreach($projLines in get-item $slnFile | Get-Content | Select-String '".*csproj')
{
$projFile = [System.IO.Path]::Combine([System.IO.Path]::GetDirectoryName($slnFile), [regex]::Match($projLines,'[^"]*csproj').Value)
$projFolder = [System.IO.Path]::GetDirectoryName($projFile)
#from csproj file: get lines for files to compile <Compile Include="..."/>
$includeLines = get-item $projFile | Get-Content | Select-String '<Compile Include'
#count of all files lines in project
$linesInProject = 0;
foreach($fileLine in $includeLines)
{
$includedFilePath = [System.IO.Path]::Combine($projFolder, [Regex]::Match($fileLine, '"(?<file>.*)"').Groups["file"].Value)
$lineCountInFile = (Get-Content $includedFilePath).Count
$results+=New-Object PSObject -Property @{ Solution=$slnFile ;Project=$projFile; File=$includedFilePath; Lines=$lineCountInFile }
}
}
#filter out any files we dont need
$results = $results | ?{!($_.File -match "Designer")}
#print out:
"---------------lines per solution--------------"
$results | group Solution | %{$_.Name + ": " + ($_.Group | Measure-Object Lines -Sum).Sum}
"---------------lines per peoject--------------"
$results | group Project | %{$_.Name + ": " + ($_.Group | Measure-Object Lines -Sum).Sum}
Công cụ đơn giản khác dành cho VS2008 (mã nguồn mở): http://www.accendo.sk/Doad/SourceStat.zip
Bạn có thể sử dụng Visual Studio Code Metrics PowerTool 10.0 . Đó là tiện ích dòng lệnh tính toán một vài số liệu về mã được quản lý cho bạn (bao gồm cả các dòng mã). Bạn có thể nhận một plugin VS 2010 đưa công cụ vào Visual Studio và làm cho nó nhanh như chọn mục menu và nhấp vào "Giải pháp phân tích".
Đồng ý với Ali Parr. Addin WndTab Line Counter là một công cụ như vậy. http://www.codeproject.com/KB/macros/linecount.aspx
Đó cũng là một ý tưởng tốt để tìm kiếm từ trang web tải xuống để tìm một số công cụ liên quan. http://www.cnet.com/1770-5_1-0.html?query=code+count&tag=srch
Đây là Trick .. Nó cũng đếm tập tin Js.
http://www.spoiledtechie.com/post/2011/11/22/How-To-Count-Lines-of-Code-in-Visual-Studio.aspx
Bạn có thể sử dụng công cụ SourceMonitor miễn phí
Cung cấp rất nhiều biện pháp: Dòng mã, Số lượng câu lệnh, Độ phức tạp, Độ sâu khối
Có đầu ra đồ họa thông qua biểu đồ
Bạn có thể sử dụng bổ trợ Project Line Counter trong Visual Studio 2010. Thông thường, nó không hoạt động với Visual Studio 2010, nhưng nó hoạt động với tệp .reg hữu ích từ đây: http://www.onemanmmo.com/index. php? cmd = newsitem & bình luận = news.1.41.0
Tôi đã đưa ra một kịch bản powershell nhanh và bẩn để đếm các dòng trong cấu trúc thư mục. Nó gần như không đầy đủ tính năng như một số công cụ khác được tham chiếu trong các câu trả lời khác, nhưng tôi nghĩ rằng nó đủ tốt để cung cấp một so sánh sơ bộ về kích thước của các tệp mã so với nhau trong một dự án hoặc giải pháp.
Kịch bản có thể được tìm thấy ở đây:
Hãy thử neptuner. Nó cũng cung cấp cho bạn những thứ như khoảng trắng, tab, Dòng bình luận ngoài LoC. http://neptuner.googlecode.com/files/neptuner_0_30_windows.zip
Trong Visual Studio 2015, hãy chuyển đến Menu Phân tích và chọn "Tính toán số liệu mã".