Apakah mungkin untuk menemukan jumlah baris kode di seluruh solusi? Saya pernah mendengar tentang MZ-Tools , tetapi adakah yang setara dengan sumber terbuka?
Apakah mungkin untuk menemukan jumlah baris kode di seluruh solusi? Saya pernah mendengar tentang MZ-Tools , tetapi adakah yang setara dengan sumber terbuka?
Jawaban:
Visual Studio 2010 Ultimate memiliki built-in ini:
Analisis → Hitung Metrik Kode
Saya menemukan PowerShell berguna untuk ini. Saya menganggap LoC sebagai metrik yang cukup palsu, jadi saya tidak percaya apa pun yang lebih formal harus diminta.
Dari direktori solusi smallish:
PS C:\Path> (gci -include *.cs,*.xaml -recurse | select-string .).Count
8396
PS C:\Path>
Itu akan menghitung baris non-kosong di semua file .cs dan .xaml solusi. Untuk proyek yang lebih besar, saya hanya menggunakan daftar ekstensi yang berbeda:
PS C:\Other> (gci -include *.cs,*.cpp,*.h,*.idl,*.asmx -recurse | select-string .).Count
909402
PS C:\Other>
Mengapa menggunakan seluruh aplikasi saat satu baris perintah akan melakukannya? :)
(dir -exclude *.g.cs -include *.cs,*.xaml -recurse | select-string .).Count
Saya menggunakan Ctrl+ Shift+ F. Selanjutnya, masukkan a \n
di kotak pencarian dan aktifkan kotak ekspresi reguler. Kemudian di hasil pencarian, di akhir layar adalah jumlah file yang dicari dan baris kode yang ditemukan.
Anda dapat menggunakan [^\n\s]\r\n
untuk melewati garis kosong dan hanya spasi (kredit ke Zach dalam komentar).
Look at these file types:
dropdown opsi hanya di bawah enable regular expressions box
.
[^\n\s]\r\n
melompati garis kosong, bahkan dengan spasi di dalamnya.
Penghitung garis sumber terbuka untuk VS2005, 2003 dan 2002 tersedia di sini:
Ada juga diskusi tentang membuat penghitungan baris addin VS, lengkap dengan kode pada proyek Codep, disini
http://www.codeproject.com/KB/macros/LineCounterAddin.aspx
Juga Edit Slick Gadgets memiliki penghitung garis yang bagus, di sini:
http://www.slickedit.com/products/slickedit
dan Microsoft Visual Studio Team System 2008 termasuk penghitung garis yang baik.
Ingat saja:
Mengukur progres pemrograman dengan garis kode sama seperti mengukur progres pembangunan pesawat terbang berdasarkan beratnya. Bill Gates
Berikut ini adalah pembaruan untuk Visual Studio 2012/2013/2015 untuk mereka yang ingin melakukan opsi "Temukan" (yang menurut saya paling mudah): RegEx ini akan menemukan semua baris yang tidak kosong dengan beberapa pengecualian untuk memberikan hasil yang paling akurat. .
Masukkan RegEx berikut ke dalam kotak "Temukan". Pastikan untuk memilih opsi "Gunakan Ekspresi Reguler". Ubah opsi pencarian menjadi "Proyek Saat Ini" atau "Seluruh Solusi" tergantung pada kebutuhan Anda. Sekarang pilih "Temukan Semua". Di bagian bawah jendela Temukan Hasil , Anda akan melihat "Garis Pencocokan" yang merupakan baris jumlah kode.
^(?!(\s*\*))(?!(\s*\-\-\>))(?!(\s*\<\!\-\-))(?!(\s*\n))(?!(\s*\*\/))(?!(\s*\/\*))(?!(\s*\/\/\/))(?!(\s*\/\/))(?!(\s*\}))(?!(\s*\{))(?!(\s(using))).*$
RegEx ini tidak termasuk item berikut:
Komentar
// This is a comment
Komentar multi-baris (dengan asumsi baris dikomentari dengan benar dengan * di depan setiap baris)
/* I am a
* multi-line
* comment */
XML untuk Intellisense
/// <summary>
/// I'm a class description for Intellisense
/// </summary>
Komentar HTML:
<!-- I am a HTML Comment -->
Menggunakan pernyataan:
using System;
using System.Web;
Membuka kurung kurawal:
{
Kurung kurawal penutupan:
}
Catatan: apa pun di antara kurung kurawal akan disertakan dalam pencarian, tetapi dalam contoh ini hanya 4 baris kode yang akan dihitung, alih-alih 18 baris non-kosong aktual:
public class Test
{
/// <summary>
/// Do Stuff
/// </summary>
public Test()
{
TestMe();
}
public void TestMe()
{
//Do Stuff Here
/* And
* Do
* Stuff
* Here */
}
}
Saya membuat ini untuk memberi saya jumlah LOC yang jauh lebih akurat daripada beberapa opsi sebelumnya, dan saya pikir saya akan membagikannya. Para bos suka jumlah LOC, jadi saya terjebak dengannya sebentar. Saya harap orang lain dapat menemukan ini bermanfaat, beri tahu saya jika Anda memiliki pertanyaan atau butuh bantuan agar berhasil.
Temukan tip ini: LOC dengan VS Temukan dan ganti
Bukan plugin meskipun jika itu yang Anda cari.
cloc adalah commandline yang sangat baik, berbasis Perl, dapat dieksekusi Windows yang akan memecah baris kosong, baris komentar, dan baris kode sumber, dikelompokkan berdasarkan format file.
Sekarang tidak akan berjalan secara khusus pada file solusi VS, tetapi dapat muncul kembali melalui direktori, dan Anda dapat mengatur filter nama file sesuai keinginan Anda.
Berikut contoh output dari halaman web mereka:
prompt> cloc perl-5.10.0.tar.gz 4076 file teks. 3883 file unik. 1521 file diabaikan. http://cloc.sourceforge.net v 1.07 T = 10.0 s (251.0 file / s, 84566.5 baris / s) -------------------------------------------------- ----------------------------- File bahasa kosong kode komentar skala 3 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 buat 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 -------------------------------------------------- -----------------------------
Skala setara generasi ketiga adalah perkiraan kasar tentang berapa banyak kode yang diperlukan dalam bahasa generasi ketiga . Tidak terlalu berguna, tapi tetap menarik.
choco install cloc
kemudian cloc .
di dir solusi Anda. Pekerjaan selesai!
Jawaban di sini sedikit ketinggalan zaman, mungkin dari vs 2008 waktu. Karena dalam versi Visual Studio yang lebih baru 2010/2012, fitur ini sudah built-in. Jadi tidak ada alasan untuk menggunakan ekstensi atau alat apa pun untuk itu.
Fitur untuk menghitung baris kode - Hitung Metrik. Dengan itu Anda dapat menghitung metrik Anda (LOC, Maintaince index, Cyclomatic index, Depth of inheritence) untuk setiap proyek atau solusi.
Cukup klik kanan pada solusi atau proyek di Solution Explorer,
dan pilih "Hitung metrik"
Data selanjutnya untuk analisis dan agregasi dapat diimpor ke Excel. Juga di Excel Anda bisa memfilter kelas yang dibuat, atau suara lain dari metrik Anda. Metrik ini termasuk Baris kode LOC dapat dikumpulkan juga selama proses pembuatan, dan dimasukkan dalam laporan pembangunan
Ekspresi reguler telah berubah antara VS2010 dan 2012, sehingga sebagian besar solusi ekspresi reguler di sini tidak lagi berfungsi
(^(?!(\s*//.+)))+(^(?!(#.+)))+(^(?!(\s*\{.+)))+(^(?!(\s*\}.+)))+(^(?!(\s*\r?$)))+
Akan menemukan semua baris yang tidak kosong, bukan hanya braket tunggal ('{' atau '}') dan bukan hanya #include atau preprosesor lainnya.
Gunakan Ctrl- shift- fdan pastikan ekspresi reguler diaktifkan.
Ekspresi reguler yang sesuai untuk VS 2010 dan yang lebih lama adalah
^~(:Wh@//.+)~(:Wh@\{:Wh@)~(:Wh@\}:Wh@)~(:Wh@/#).+
Dalam Visual Studio Team System 2008 Anda dapat melakukannya dari menu Analisis -> 'Hitung Kode Metrik untuk Solusi' dan itu akan memberi Anda jumlah baris seluruh solusi Anda (antara lain g )
Untuk pembaca masa depan saya ingin menyarankan ekstensi DPack untuk Visual Studio 2010 .
Itu punya banyak utilitas yang dibangun termasuk penghitung baris yang mengatakan berapa banyak baris kosong, kode, dan lain-lain
Solusi sederhana adalah mencari di semua file. Ketik "*" saat menggunakan wildcard. Yang akan cocok dengan semua lini. Di akhir jendela hasil pencarian, Anda akan melihat garis semacam itu:
Matching lines: 563 Matching files: 17 Total files searched: 17
Tentu saja ini tidak terlalu baik untuk proyek-proyek besar, karena semua lini diolah dan dimuat ke dalam memori untuk dibuang di jendela hasil pencarian.
Referensi:
Anda bisa menggunakan:
Saya lebih suka OxyProject Metrics VS Addin.
Jelas alat lebih mudah, tapi saya merasa keren melakukan ini di PowerShell :)
Script ini menemukan semua referensi .csproj di file .sln, dan kemudian di dalam setiap file csproj, ia menemukan file yang disertakan untuk kompilasi. Untuk setiap file yang disertakan untuk kompilasi, ia menciptakan objek dengan properti: Solusi, Proyek, File, Baris. Ini menyimpan semua objek ini dalam daftar, dan kemudian mengelompokkan dan memproyeksikan data yang diperlukan.
#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}
Alat sederhana lainnya Untuk VS2008 (open source): http://www.accendo.sk/Download/SourceStat.zip
Anda dapat menggunakan Metrik Kode Visual Studio PowerTool 10.0 . Ini adalah utilitas baris perintah yang menghitung beberapa metrik pada kode terkelola untuk Anda (termasuk baris kode). Anda bisa mendapatkan plugin VS 2010 yang membawa alat ke Visual Studio , dan membuatnya secepat memilih item menu dan mengklik "Analisis Solusi."
Setuju dengan Ali Parr. Addin Penghitung Baris WndTab adalah alat semacam itu. http://www.codeproject.com/KB/macros/linecount.aspx
Sebaiknya cari dari situs unduhan untuk menemukan beberapa alat terkait. http://www.cnet.com/1770-5_1-0.html?query=code+counter&tag=srch
Ini dia Trick .. Ini juga menghitung file Js.
http://www.spoiledtechie.com/post/2011/11/22/How-To-Count-Lines-of-Code-in-Visual-Studio.aspx
Anda dapat menggunakan alat SourceMonitor gratis
Memberikan banyak tindakan: Baris Kode, Hitungan Pernyataan, Kompleksitas, Kedalaman Blok
Memiliki keluaran grafis melalui grafik
Anda dapat menggunakan add-in penghitung Project Line di Visual Studio 2010. Biasanya tidak bekerja dengan Visual Studio 2010, tetapi tidak dengan file .reg membantu dari sini: http://www.onemanmmo.com/index. php? cmd = newsitem & comment = news.1.41.0
Saya datang dengan skrip PowerShell cepat dan kotor untuk menghitung baris dalam struktur folder. Ini hampir tidak memiliki fitur lengkap seperti beberapa alat lain yang dirujuk dalam jawaban lain, tapi saya pikir itu cukup baik untuk memberikan perbandingan kasar ukuran file kode relatif satu sama lain dalam proyek atau solusi.
Skrip dapat ditemukan di sini:
Coba neptuner. Ini juga memberi Anda hal-hal seperti spasi, tab, Baris komentar di samping LoC. http://neptuner.googlecode.com/files/neptuner_0_30_windows.zip