是否有可能找到整个解决方案中的代码行数?我听说过MZ-Tools,但是是否有一个开源的工具?


当前回答

我发现powershell在这方面很有用。我认为LoC是一个非常虚假的指标,所以我不认为需要任何更正式的东西。

从一个较小的解决方案目录:

PS C:\Path> (gci -include *.cs,*.xaml -recurse | select-string .).Count
8396
PS C:\Path>

这将计算所有解决方案的.cs和.xaml文件中的非空行。对于一个较大的项目,我只是使用了不同的扩展列表:

PS C:\Other> (gci -include *.cs,*.cpp,*.h,*.idl,*.asmx -recurse | select-string .).Count
909402
PS C:\Other>

如果一个命令行就可以做到,为什么要使用整个应用程序呢?:)

其他回答

用于VS2008的其他简单工具(开源):http://www.accendo.sk/Download/SourceStat.zip

在Visual Studio 2019中,从顶部菜单中您需要选择:

'Analyze' -> 'Calculate Code Metrics' -> 'For Solution'

这适用于Visual Studio 2019专业版和企业版。

你可以用:

SCLOCCount http://www.dwheeler.com/sloccount/-开源 Loc度量,http://www.locmetrics.com/ -不是开源的,但是很容易使用

Visual Studio有内置的代码度量,包括代码行:

分析→计算代码度量

正则表达式在VS2010和2012之间发生了变化,因此这里的大多数正则表达式解决方案不再适用

(^(?!(\s*//.+)))+(^(?!(#.+)))+(^(?!(\s*\{.+)))+(^(?!(\s*\}.+)))+(^(?!(\s*\r?$)))+

将找到所有不是空白的行,不只是一个括号('{'或'}'),不只是一个#include或其他预处理器。

使用Ctrl-shift-f并确保正则表达式被启用。

VS 2010及更早版本对应的正则表达式为

^~(:Wh@//.+)~(:Wh@\{:Wh@)~(:Wh@\}:Wh@)~(:Wh@/#).+