你如何計算Visual Studio解決方案中的代碼行數?




visual-studio code-metrics (17)

VS2005,2003和2002的開源線計數器可在此處獲得:

http://www.wndtabs.com/

在這裡,還討論了創建一個計數VS插件的行,並在Codeproject上完成代碼

http://www.codeproject.com/KB/macros/LineCounterAddin.aspx

此外,Slick Edit Gadgets還有一個不錯的在線計數器:

http://www.slickedit.com/products/slickedit

和Microsoft Visual Studio Team System 2008包含一個很好的在線計數器。

但請記住:

通過代碼行來測量編程進度就像衡量飛機建築進度的重量。 比爾蓋茨

是否有可能在整個解決方案中找到代碼行數? 我聽說過MZ-Tools ,但有沒有相當於開源的東西?


Visual Studio 2010 Ultimate擁有這種內置功能。

分析 - >計算代碼度量


一個簡單的解決方案是搜索所有文件。 使用通配符時輸入“*”。 這將匹配所有線路。 在查找結果窗口的末尾,您應該看到一行:

Matching lines: 563 Matching files: 17 Total files searched: 17

當然這對於大型項目來說並不是很好,因為所有行都被修改並加載到內存中,以便在查找結果窗口顯示出來。

參考:


以下是Visual Studio 2012/2013/2015的更新,適用於想要執行“查找”選項(我認為最簡單)的用戶:此RegEx將查找所有非空行,並帶有多個排除項,以提供最準確的結果。

在“查找”框中輸入以下RegEx。 請確保選擇“使用正則表達式”選項。 根據您的需要將搜索選項更改為“當前項目”或“整個解決方案”。 現在選擇“查找全部”。 在查找結果窗口的底部,您會看到“匹配行”,即代碼行數。

^(?!(\s*\*))(?!(\s*\-\-\>))(?!(\s*\<\!\-\-))(?!(\s*\n))(?!(\s*\*\/))(?!(\s*\/\*))(?!(\s*\/\/\/))(?!(\s*\/\/))(?!(\s*\}))(?!(\s*\{))(?!(\s(using))).*$

此RegEx排除以下項目:

註釋

// This is a comment

多行註釋(假設每行前面的行都正確註釋了*)

/* I am a
* multi-line
* comment */

用於Intellisense的XML

/// <summary>
/// I'm a class description for Intellisense
/// </summary>

HTML評論:

<!-- I am a HTML Comment -->

使用語句:

using System;
using System.Web;

打開大括號:

{

關閉大括號:

}

注:大括號之間的任何內容都將包含在搜索中,但在本示例中,只有4行代碼會被計數,而不是18個實際的非空行:

        public class Test
        {
            /// <summary>
            /// Do Stuff
            /// </summary>
            public Test()
            {
                TestMe();
            }
            public void TestMe()
            {
                //Do Stuff Here
                /* And
                 * Do
                 * Stuff
                 * Here */
            }
        }

我創造了這個,給了我一個更準確的LOC計數比以前的選擇,並認為我會分享。 老闆們很喜歡LOC的數量,所以我堅持了一段時間。 我希望別人能找到這個幫助,讓我知道如果你有任何問題或需要幫助得到它的工作。



使用菜單 - >分析 - >計算Visual Studio 2010 Ultimate中的代碼度量選項。




在Visual Studio Team System 2008中,您可以從菜單分析 - >'計算代碼度量標準的解決方案',它會為您提供整個解決方案的行數(其中包括g


對於未來的讀者,我想建議Visual Studio 2010DPack擴展

它有一個內置的實用程序負載,包括一個行計數器,說明有多少行是空白的,代碼等。




我想出了一個快速和骯髒的PowerShell腳本來計算文件夾結構中的行數。 它不像其他一些其他工具或解決方案中引用的其他工具的功能一樣全面,但我認為可以粗略比較一個項目或解決方案中代碼文件相對於另一個的大小。

腳本可以在這裡找到:

https://gist.github.com/1674457




正則表達式在VS2010和2012之間發生了變化,因此這裡的大多數正則表達式解決方案不再有效

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

將找到所有不是空白的行,不僅僅是一個括號('{'或'}'),而不僅僅是一個#include或其他預處理器。

使用Ctrl - shift - f並確保啟用正則表達式。

VS 2010和更老版本的相應正則表達式是

^~(:[email protected]//.+)~(:[email protected]\{:[email protected])~(:[email protected]\}:[email protected])~(:[email protected]/#).+

這裡的答案有點過時了,可能是從2008年的時候開始的。 因為在較新的Visual Studio版本2010/2012中,此功能已經內置。 因此沒有理由使用任何擴展或工具。

計算代碼行的功能 - 計算指標。 有了它,您可以計算每個項目或解決方案的指標(LOC,Maintaince指數,Cyclomatic指數,繼承深度)。

只需在Solution Explorer中右鍵單擊解決方案或項目,

並選擇“計算指標”

後來的分析和匯總數據可以導入到Excel中。 同樣在Excel中,您可以過濾出生成的類或其他指標中的噪音。 這些指標包括代碼行LOC可以在構建過程中收集,並包含在構建報告中





line-count