是否有可能找到整个解决方案中的代码行数?我听说过MZ-Tools,但是是否有一个开源的工具?
当前回答
我用Ctrl+Shift+F。接下来,在搜索框中输入\n并启用正则表达式框。然后在查找结果中,屏幕的末尾是搜索的文件数和找到的代码行数。
你可以使用[^\n\s]\r\n跳过空白行和空格行(在评论中归功于Zach)。
其他回答
同意Ali Parr的观点。WndTab Line Counter插件就是这样一个工具。 http://www.codeproject.com/KB/macros/linecount.aspx
从下载网站上搜索一些相关的工具也是一个好主意。 http://www.cnet.com/1770-5_1-0.html?query=code+counter&tag=srch
在Visual Studio 2019中,从顶部菜单中您需要选择:
'Analyze' -> 'Calculate Code Metrics' -> 'For Solution'
这适用于Visual Studio 2019专业版和企业版。
cloc是一个优秀的命令行、基于perl的windows可执行文件,它将按文件格式分组,分解空行、注释行和源代码行。
现在它不会专门运行在VS解决方案文件上,但它可以递归遍历目录,并且您可以根据需要设置文件名过滤器。
以下是他们网页上的输出示例:
prompt> cloc perl-5.10.0.tar.gz 4076 text files. 3883 unique files. 1521 files ignored. http://cloc.sourceforge.net v 1.07 T=10.0 s (251.0 files/s, 84566.5 lines/s) ------------------------------------------------------------------------------- Language files blank comment code scale 3rd gen. equiv ------------------------------------------------------------------------------- Perl 2052 110356 112521 309778 x 4.00 = 1239112.00 C 135 18718 22862 140483 x 0.77 = 108171.91 C/C++ Header 147 7650 12093 44042 x 1.00 = 44042.00 Bourne Shell 116 3402 5789 36882 x 3.81 = 140520.42 Lisp 1 684 2242 7515 x 1.25 = 9393.75 make 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 DOS Batch 11 85 50 322 x 0.63 = 202.86 HTML 1 19 2 98 x 1.90 = 186.20 ------------------------------------------------------------------------------- SUM: 2510 142085 156406 547174 x 2.84 = 1556285.03 -------------------------------------------------------------------------------
第三代等效规模是对第三代语言需要多少代码的粗略估计。不是特别有用,但是很有趣。
我发现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>
如果一个命令行就可以做到,为什么要使用整个应用程序呢?:)
正则表达式在VS2010和2012之间发生了变化,因此这里的大多数正则表达式解决方案不再适用
(^(?!(\s*//.+)))+(^(?!(#.+)))+(^(?!(\s*\{.+)))+(^(?!(\s*\}.+)))+(^(?!(\s*\r?$)))+
将找到所有不是空白的行,不只是一个括号('{'或'}'),不只是一个#include或其他预处理器。
使用Ctrl-shift-f并确保正则表达式被启用。
VS 2010及更早版本对应的正则表达式为
^~(:Wh@//.+)~(:Wh@\{:Wh@)~(:Wh@\}:Wh@)~(:Wh@/#).+
推荐文章
- 如何在解决方案中找到未使用的NuGet包?
- 查看Visual Studio 2010+中的所有断点
- 如何禁用诊断工具?
- Visual Studio单击“查找结果”在错误的窗口中打开代码
- 无法打开Visual Studio -抛出错误“安装过程中无法运行”
- 我在哪里可以找到安装在Visual Studio中的TypeScript版本?
- Visual Studio代码如何解决合并冲突与git?
- _references.js是用来做什么的?
- 如何为新的c#类/接口编辑Visual Studio模板?
- IIS Express Windows身份验证
- 配置系统初始化失败
- 在Visual Studio中是否有标准的快捷键来构建当前项目?
- 我如何让我的解决方案在Visual Studio回到在线的TFS?
- 如何在Visual Studio中生成getter和setter ?
- Visual Studio后构建事件-复制到相对目录位置