ソリューション全体でコードの行数を見つけることは可能ですか? MZ-Toolsについて聞いたことがありますが、同等のオープン ソースはありますか?
26 に答える
これには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>
単一のコマンドラインで実行できるのに、なぜアプリ全体を使用するのでしょうか? :)
Visual Studio には、次のコード行を含む組み込みのコード メトリックがあります。
分析 → コード メトリクスの計算
Ctrl+ Shift+を使用しFました。次に、\n
検索ボックスに a を入力し、正規表現ボックスを有効にします。次に、検索結果の画面の最後に、検索されたファイルの数と見つかったコードの行が表示されます。
を使用[^\n\s]\r\n
して、空白行とスペースのみの行をスキップできます (コメントの Zach へのクレジット)。
VS2005、2003、および 2002 のオープン ソース ライン カウンターは、次の場所から入手できます。
Codeproject のコードを備えた行カウント VS アドインの作成についての議論もここにあります。
http://www.codeproject.com/KB/macros/LineCounterAddin.aspx
また、Slick Edit Gadgets には素敵なライン カウンターがあります。
http://www.slickedit.com/products/slickedit
また、Microsoft Visual Studio Team System 2008 には優れたライン カウンターが含まれています。
ただし、覚えておいてください:
コードの行数でプログラミングの進捗状況を測定することは、航空機の製造の進捗状況を重量で測定するようなものです。ビルゲイツ
これは、「検索」オプションを実行したい人のための Visual Studio 2012/2013/2015 の更新です (これが最も簡単だと思います)。 .
次の正規表現を [検索] ボックスに入力します。「正規表現を使用する」オプションを必ず選択してください。必要に応じて、検索オプションを「現在のプロジェクト」または「ソリューション全体」に変更します。ここで「すべて検索」を選択します。[検索結果] ウィンドウの下部に、コードの行数である "Matching Lines" が表示されます。
^(?!(\s*\*))(?!(\s*\-\-\>))(?!(\s*\<\!\-\-))(?!(\s*\n))(?!(\s*\*\/))(?!(\s*\/\*))(?!(\s*\/\/\/))(?!(\s*\/\/))(?!(\s*\}))(?!(\s*\{))(?!(\s(using))).*$
この RegEx は、次の項目を除外します。
コメント
// 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カウントが大好きなので、しばらくそれで立ち往生しています。他の誰かがこれを参考にしてくれることを願っています。質問がある場合、またはそれを機能させるために助けが必要な場合はお知らせください。
このヒントを見つけました: VS検索と置換によるLOC
それがあなたが探しているものならプラグインではありません。
clocは優れたコマンドライン、Perl ベース、Windows 実行可能ファイルであり、空白行、コメント行、コードのソース行をファイル形式別にグループ化します。
VS ソリューション ファイルで具体的に実行されるわけではありませんが、ディレクトリを再帰的に実行でき、必要に応じてファイル名フィルターを設定できます。
Web ページからのサンプル出力は次のとおりです。
プロンプト> 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 世代。同等 -------------------------------------------------- ------------------------------ 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 ボーンシェル 116 3402 5789 36882 x 3.81 = 140520.42 Lisp 1 684 2242 7515 x 1.25 = 9393.75 メイク 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 -------------------------------------------------- ------------------------------ 合計: 2510 142085 156406 547174 x 2.84 = 1556285.03 -------------------------------------------------- ------------------------------
第 3 世代の同等のスケールは、第 3 世代の言語でどのくらいのコードが必要になるかを概算したものです。あまり役に立ちませんが、とにかく興味深いです。
ここでの回答は少し古くなっています.2008年以降のものかもしれません. 新しい Visual Studio バージョン 2010/2012 では、この機能は既に組み込まれているためです。したがって、拡張機能やツールを使用する理由はありません。
コードの行数をカウントする機能 - メトリクスを計算します。それを使用すると、各プロジェクトまたはソリューションのメトリック (LOC、Maintaince インデックス、Cyclomatic インデックス、継承の深さ) を計算できます。
ソリューション エクスプローラーでソリューションまたはプロジェクトを右クリックするだけで、
をクリックし、「指標の計算」を選択します
後で分析および集計するためのデータを 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
もちろん、これは大規模なプロジェクトにはあまり適していません。なぜなら、すべての行が照合されてメモリにロードされ、検索結果ウィンドウに表示されるからです。
参照:
あなたが使用することができます:
- SCLOCCount http://www.dwheeler.com/sloccount/ - オープンソース
- loc metrics、http://www.locmetrics.com/ - オープンソースではありませんが、使いやすいです
私はOxyProject Metrics VS Addin を好みます。
Visual Studio2010Ultimateの[メニュー]->[分析]->[コードメトリックの計算]オプションを使用します。
その他の簡単なツール VS2008 用 (オープン ソース): http://www.accendo.sk/Download/SourceStat.zip
Visual Studio Code Metrics PowerTool 10.0を使用できます。これは、マネージ コード (コード行を含む) に関するいくつかのメトリックを計算するコマンド ライン ユーティリティです。ツールを Visual Studioに取り込むVS 2010 プラグインを入手すると、メニュー項目を選択して [ソリューションの分析] をクリックするだけですぐに実行できます。
AliParrに同意します。WndTabLineCounterアドインはそのようなツールです。 http://www.codeproject.com/KB/macros/linecount.aspx
ダウンロードサイトから検索して、関連するツールを見つけることもお勧めします。 http://www.cnet.com/1770-5_1-0.html?query=code+counter&tag=srch
これがトリックです.. Jsファイルもカウントします。
http://www.spoiledtechie.com/post/2011/11/22/How-To-Count-Lines-of-Code-in-Visual-Studio.aspx
フォルダー構造内の行をカウントするための、手早く汚い PowerShell スクリプトを思いつきました。他の回答で参照されている他のツールの一部ほど完全な機能ではありませんが、プロジェクトまたはソリューション内のコード ファイルのサイズの大まかな比較を提供するには十分だと思います。
スクリプトは次の場所にあります。
You can use the Project Line Counter add-in in Visual Studio 2010. 通常、Visual Studio 2010 では機能しませんが、http://www.onemanmmo.com/index の便利な .reg ファイルで機能します。 php?cmd=newsitem&comment=news.1.41.0
ネプチューナーを試してみてください。また、LoC に加えて、スペース、タブ、コメント行なども提供します。 http://neptuner.googlecode.com/files/neptuner_0_30_windows.zip