ソリューション全体でコードの行数を見つけることは可能ですか? MZ-Tools のことを聞いたことがありますが、それと同等のオープンソースはありますか?
Visual Studio 2010 Ultimateにはこの機能が組み込まれています。
分析 - >コードメトリクスの計算
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>
単一のコマンドラインで実行できるのに、なぜアプリ全体を使用するのでしょうか。 :)
私が使った Ctrl+Shift+F。次に、検索ボックスに\n
を入力して正規表現ボックスを有効にします。次に、検索結果の画面の最後に検索されたファイルの数と見つかったコードの行があります。
VS2005、2003、2002のオープンソースラインカウンタはこちらから入手できます。
Codeprojectのコードで、VSアドインを数える行を作成することについての議論もあります。
http://www.codeproject.com/KB/macros/LineCounterAddin.aspx
Slick Edit GadgetsにもNiceのカウンターがあります。
http://www.slickedit.com/products/slickedit
microsoft Visual Studio Team System 2008には優れたラインカウンターが含まれています。
ただ覚えておいてください:
コード行でプログラミングの進行状況を測定するのは、航空機の建物の進行状況を重量で測定するのと同じです。ビルゲイツ
このヒントが見つかりました: VSとLOCの検索と置換
それがあなたが探しているものであれば、プラグインではありません。
これは、「検索」オプションを実行したい方のためのVisual Studio 2012/2013/2015のアップデートです(これが最も簡単です)。 。
[検索]ボックスに次の正規表現を入力します。必ず「正規表現を使用する」オプションを選択してください。必要に応じて、検索オプションを「現在のプロジェクト」または「ソリューション全体」に変更します。今すぐ「すべて検索」を選択します。 結果の検索 ウィンドウの下部に、コード数の行である "Matching Lines"が表示されます。
^(?!(\s*\*))(?!(\s*\-\-\>))(?!(\s*\<\!\-\-))(?!(\s*\n))(?!(\s*\*\/))(?!(\s*\/\*))(?!(\s*\/\/\/))(?!(\s*\/\/))(?!(\s*\}))(?!(\s*\{))(?!(\s(using))).*$
この正規表現では、以下の項目が除外されています。
コメント
// This is a comment
複数行コメント(各行の前に*が正しくコメントアウトされていると想定しています)
/* I am a
* multi-line
* comment */
インテリセンスのためのXML
/// <summary>
/// I'm a class description for Intellisense
/// </summary>
HTMLコメント:
<!-- I am a HTML Comment -->
文を使用する:
using System;
using System.Web;
中括弧を開く:
{
中括弧を閉じる:
}
注:中括弧の間のものはすべて検索に含まれますが、この例では、実際の18行の非ブランク行ではなく、4行のコードのみがカウントされます。
public class Test
{
/// <summary>
/// Do Stuff
/// </summary>
public Test()
{
TestMe();
}
public void TestMe()
{
//Do Stuff Here
/* And
* Do
* Stuff
* Here */
}
}
以前のオプションよりもはるかに正確なLOC数を得るためにこれを作成し、私が共有すると考えました。ボスはLOCのカウントが大好きなので、しばらくの間それで立ち往生しています。他の誰かがこれを参考にしてくれることを願っています。質問がある場合、またはそれをうまく機能させるために助けが必要かどうかをお知らせください。
cloc は、ファイル形式でグループ化された、空白行、コメント行、およびコードのソース行を分割する、優れたコマンドライン、Perlベース、Windows実行可能ファイルです。
現在はVSソリューションファイルでは特に実行されませんが、ディレクトリを介して再帰することができ、必要に応じてファイル名フィルタを設定できます。
これが彼らのWebページからの出力例です:
Prompt> cloc Perl-5.10.0.tar.gz 4076個のテキストファイル。 3883個の固有のファイル。 1521ファイルを無視しました。 http://cloc.sourceforge.net v 1.07 T = 10.0秒(251.0ファイル/秒、84566.5行/秒) -------------------------------------------------- ----------------------------- 言語ファイルの空白のコメントコードスケール第3世代。 equiv -------------------------------------------- ----------------------------------- Perl 2052 110356 112521 309778 x 4.00 = 1239112.00 [ C 135 18718 22862 140483 x 0.77 = 108171.91 [。] C/C++ヘッダー147 7650 12093 44042 x 1.00 = 44042.00 [。] Bourneシェル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バッチ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 ------------------------- -------------------------------------------------- ----
第3世代の等価スケールは、 第3世代言語でどれだけのコードが必要かを概算したものです 。それほど便利ではありませんが、とにかくおもしろいです。
ここでの回答は少し古くなっています。2008年からの可能性があります。新しいバージョンのVisual Studio 2010/2012では、この機能は既に組み込まれているからです。したがって、そのために拡張機能やツールを使用する理由はありません。
コードの行数を数える機能 - メトリックスを計算します。それを使用すると、プロジェクトまたはソリューションごとにメトリック(LOC、保守インデックス、循環インデックス、継承の深さ)を計算できます。
ソリューションエクスプローラでソリューションまたはプロジェクトを右クリックします。
そして「メトリックを計算する」を選択します
分析と集計のための後のデータをExcelにインポートすることができます。またExcelでは、生成されたクラスやその他のノイズをメトリックから除外することができます。コード行数LOCを含むこれらのメトリックは、ビルドプロセス中にも収集され、ビルドレポートに含まれる可能性があります。
VS2010と2012の間で正規表現が変更されたため、ここではほとんどの正規表現ソリューションが機能しなくなりました。
(^(?!(\s*//.+)))+(^(?!(#.+)))+(^(?!(\s*\{.+)))+(^(?!(\s*\}.+)))+(^(?!(\s*\r?$)))+
空白ではなく、単一の括弧( '{'または '}')だけでなく、#includeや他のプリプロセッサでもないすべての行を検索します。
つかいます Ctrl - shift - f 正規表現が有効になっていることを確認してください。
VS 2010以前に対応する正規表現は、次のとおりです。
^~(:Wh@//.+)~(:Wh@\{:Wh@)~(:Wh@\}:Wh@)~(:Wh@/#).+
Visual Studio Team System 2008では、[分析] - > [ソリューションのコードメトリクスの計算]メニューから実行でき、ソリューション全体の行数(gなど)が表示されます。
将来の読者のために、Visual Studio 2010の DPack拡張子 に助言したいと思います。
何行の空白があるかを示す行カウンタ、コードなどを含む組み込みユーティリティがたくさんあります。
簡単な解決策は、すべてのファイルを検索することです。ワイルドカードを使用するときは "*"を入力してください。これはすべての行に一致します。検索結果ウィンドウの最後に次のような行が表示されます。
Matching lines: 563 Matching files: 17 Total files searched: 17
もちろん、これは大規模なプロジェクトにはあまり適していません。すべての行が検索結果ウィンドウに表示されるように一致してメモリにロードされるためです。
参照:
あなたが使用することができます:
OxyProject Metrics VS Addinが好きです。
明らかにツールはより簡単ですが、私はこれをPowerShellで行うのがかっこいいと思います:)
このスクリプトは、.slnファイル内のすべての.csproj参照を見つけ、各csprojファイル内でコンパイルに含まれるファイルを探します。コンパイルに含まれる各ファイルに対して、Solution、Project、File、Linesというプロパティを持つオブジェクトを作成します。これらすべてのオブジェクトをリストに格納し、必要に応じてデータをグループ化して投影します。
#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}
VS2008(オープンソース)のための他のシンプルなツール: http://www.accendo.sk/Download/SourceStat.Zip
Visual Studio 2010 Ultimateの[メニュー] - > [分析] - > [コードメトリクスの計算]オプションを使用します。
Visual StudioコードメトリックスPowerTool 10.0 を使用できます。それはあなたのためにマネージコードのいくつかの測定基準を計算するコマンドラインユーティリティです(コード行を含む)。 ツールをVisual Studio に取り込むためのVS 2010プラグインを入手することができ、メニュー項目を選択して[Analyze Solution]をクリックするのと同じくらい速く実行できます。
これがトリックです。Jsファイルもカウントされます。
http://www.spoiledtechie.com/post/2011/11/22/How-To-Count-Lines-of-Code-in-Visual-Studio.aspx
アリパーと同意する。 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
フォルダ構造の行数を数えるための、すばやく汚いpowershellスクリプトを思いつきました。他の回答で参照されている他のツールほど完全な機能を備えているわけではありませんが、プロジェクトまたはソリューション内のコードファイルのサイズを互いに大まかに比較することで十分です。
スクリプトはここにあります。
Visual Studio 2010でProject Line Counterアドインを使用できます。通常、Visual Studio 2010では機能しませんが、ここから役立つ.regファイルを使用して機能します。 http://www.onemanmmo.com/ index.php?cmd = newsitem&comment = news.1.41.0
Visual Studio 2015で[分析]メニューに移動し、[コードメトリクスの計算]を選択します。
ネプチュナーを試してください。それはまた、あなたにLoCに加えてスペース、タブ、コメント行のようなものを与えます。 http://neptuner.googlecode.com/files/neptuner_0_30_windows.Zip