Tüm çözümdeki kod satırı sayısını bulmak mümkün müdür? MZ-Tools'u duydum ama açık kaynak eşdeğeri var mı?
Tüm çözümdeki kod satırı sayısını bulmak mümkün müdür? MZ-Tools'u duydum ama açık kaynak eşdeğeri var mı?
Yanıtlar:
Visual Studio 2010 Ultimate şu yerleşik özelliklere sahiptir:
Analiz Et → Kod Metriklerini Hesapla
Powershell'i bunun için yararlı buldum . LoC'yi yine de oldukça sahte bir metrik olarak görüyorum, bu yüzden daha resmi bir şey gerekli olduğuna inanmıyorum.
Ufacık bir çözüm dizininden:
PS C:\Path> (gci -include *.cs,*.xaml -recurse | select-string .).Count
8396
PS C:\Path>
Bu, tüm çözümün .cs ve .xaml dosyalarındaki boş olmayan satırları sayar. Daha büyük bir proje için sadece farklı bir uzantı listesi kullandım:
PS C:\Other> (gci -include *.cs,*.cpp,*.h,*.idl,*.asmx -recurse | select-string .).Count
909402
PS C:\Other>
Tek bir komut satırı bunu uyguladığında neden tüm uygulamayı kullanasınız? :)
(dir -exclude *.g.cs -include *.cs,*.xaml -recurse | select-string .).Count
Ctrl+ Shift+ Kullandım F. Ardından, \n
arama kutusuna a yazın ve normal ifadeler kutusunu etkinleştirin. Daha sonra bulma sonuçlarında, ekranın sonunda aranan dosya sayısı ve kod satırları bulunur.
[^\n\s]\r\n
Boş ve yalnızca boşluk içeren satırları atlamak için kullanabilirsiniz (yorumlarda Zach'e verilen krediler).
Look at these file types:
sadece feryat açılan enable regular expressions box
.
[^\n\s]\r\n
boşluklar olsa bile boş satırlar atlar.
VS2005, 2003 ve 2002 için açık kaynaklı bir hat sayacı burada mevcuttur:
Ayrıca burada Codeproject üzerinde kod ile birlikte VS addin sayma bir çizgi oluşturma tartışması var, burada
http://www.codeproject.com/KB/macros/LineCounterAddin.aspx
Ayrıca Slick Edit Gadgets'ın güzel bir satır sayacı var, burada:
http://www.slickedit.com/products/slickedit
ve Microsoft Visual Studio Team System 2008 iyi bir satır sayacı içerir.
Yine de unutmayın:
Programlama ilerlemesini kod satırları ile ölçmek, uçak yapım ilerlemesini ağırlık olarak ölçmek gibidir. Bill Gates
İşte "Bul" seçeneğini yapmak isteyenler için Visual Studio 2012/2013/2015 için bir güncelleme .
"Bul" kutusuna aşağıdaki RegEx girin. Lütfen "Normal İfadeleri Kullan" seçeneğini seçtiğinizden emin olun. İhtiyaçlarınıza bağlı olarak arama seçeneğini "Geçerli Proje" veya "Tüm Çözüm" olarak değiştirin. Şimdi "Tümünü Bul" u seçin. Alt kısmında Bul Sonuçları penceresinde, kod sayımı hatları "Eşleştirme Çizgiler" göreceksiniz.
^(?!(\s*\*))(?!(\s*\-\-\>))(?!(\s*\<\!\-\-))(?!(\s*\n))(?!(\s*\*\/))(?!(\s*\/\*))(?!(\s*\/\/\/))(?!(\s*\/\/))(?!(\s*\}))(?!(\s*\{))(?!(\s(using))).*$
Bu RegEx aşağıdaki öğeleri içermez:
Yorumlar
// This is a comment
Çok Satırlı yorumlar (satırların her satırın önünde * işaretiyle doğru yorumlandığı varsayılarak)
/* I am a
* multi-line
* comment */
Intellisense için XML
/// <summary>
/// I'm a class description for Intellisense
/// </summary>
HTML Yorumları:
<!-- I am a HTML Comment -->
İfadeleri kullanma:
using System;
using System.Web;
Kıvırcık parantez açma:
{
Kıvırcık parantezlerin kapatılması:
}
Not: kaşlı ayraçlar arasındaki herhangi bir şey aramaya dahil edilir, ancak bu örnekte 18 gerçek boş olmayan satır yerine yalnızca 4 satır kod sayılır:
public class Test
{
/// <summary>
/// Do Stuff
/// </summary>
public Test()
{
TestMe();
}
public void TestMe()
{
//Do Stuff Here
/* And
* Do
* Stuff
* Here */
}
}
Bunu önceki seçeneklerden çok daha doğru bir LOC sayımı sağlamak için yarattım ve paylaşacağımı düşündüm. Patronlar LOC sayımlarını sever, bu yüzden bir süre onunla sıkıştım. Umarım başka biri bunu faydalı bulabilir, herhangi bir sorunuz varsa veya işe koyulmak için yardıma ihtiyacınız varsa bana bildirin.
Bu ipucu bulundu: VS ile LOC Bul ve değiştir
Aradığınız bir eklenti olsa thats ne arıyorsun.
cloc , dosya biçimlerine göre gruplandırılmış boş satırları, yorum satırlarını ve kaynak kod satırlarını parçalayacak mükemmel bir komut satırı olan Perl tabanlı, Windows tarafından yürütülebilir.
Şimdi özellikle bir VS çözüm dosyasında çalışmaz, ancak dizinler aracılığıyla geri çekilebilir ve uygun gördüğünüz gibi dosya adı filtreleri ayarlayabilirsiniz.
Web sayfalarından örnek çıktı:
komut istemi> cloc perl-5.10.0.tar.gz 4076 metin dosyaları. 3883 benzersiz dosya. 1521 dosya yoksayıldı. http://cloc.sourceforge.net v 1.07 T = 10.0 s (251.0 dosya / s, 84566.5 satır / s) -------------------------------------------------- ----------------------------- Dil dosyaları boş yorum kodu ölçek 3. nesil. eşdeğ -------------------------------------------------- ----------------------------- Perl 2052 110356 112521 309778 x 4.00 = 1239112.00 C 135 18718 22862 140483 x 0.77 = 108171.91 C / C ++ Üstbilgisi 147 7650 12093 44042 x 1.00 = 44042.00 Bourne Kabuğu 116 3402 5789 36882 x 3.81 = 140520.42 Lisp 16742242 7515 x 1,25 = 9393,75 7 498473 2044 x 2.50 = 5110.00 C ++ 10312277 2000 x 1,51 = 3020,00 XML 26231 0 1972 x 1.90 = 3746.80 yacc 2128 97 1549 x 1.51 = 2338.99 YAML 2 2 0489 x 0.90 = 440.10 DOS Toplu İş 11 85 50322 x 0.63 = 202.86 HTML 1 19 2 98 x 1,90 = 186,20 -------------------------------------------------- ----------------------------- TOPLAM: 2510 142085 156406 547174 x 2,84 = 1556285.03 -------------------------------------------------- -----------------------------
Üçüncü nesil eşdeğer ölçek, üçüncü nesil bir dilde ne kadar kod alacağının kabaca bir tahminidir . Çok yararlı değil, ama yine de ilginç.
choco install cloc
ve sonra cloc .
sizin çözüm dir. İş bitmiş!
Buradaki cevaplar biraz güncel değil, 2008'e kıyasla olabilir. Çünkü daha yeni Visual Studio 2010/2012 sürümlerinde, bu özellik zaten yerleşiktir. Bu nedenle, bunun için herhangi bir uzantı veya araç kullanmanın bir nedeni yoktur.
Kod satırlarını sayma özelliği - Metrikleri hesaplayın. Bununla beraber, her proje veya çözüm için metriklerinizi (LOC, Bakım endeksi, Siklomatik indeks, kalıtım derinliği) hesaplayabilirsiniz.
Solution Explorer'da çözüme veya projeye sağ tıklayın,
ve "Metrikleri hesapla" yı seçin
Daha sonra analiz ve toplama verileri Excel'e aktarılabilir. Ayrıca Excel'de, oluşturulan sınıfları veya metriklerinizdeki diğer parazitleri filtreleyebilirsiniz. LOC kod satırı da dahil olmak üzere bu metrikler derleme işlemi sırasında da toplanabilir ve derleme raporuna dahil edilebilir
Düzenli ifadeler VS2010 ve 2012 arasında değişti, bu nedenle buradaki düzenli ifade çözümlerinin çoğu artık çalışmıyor
(^(?!(\s*//.+)))+(^(?!(#.+)))+(^(?!(\s*\{.+)))+(^(?!(\s*\}.+)))+(^(?!(\s*\r?$)))+
Boş olmayan tüm satırları bulur, sadece tek bir parantez ('{' veya '}') değildir, sadece #include veya başka bir önişlemci değildir.
Ctrl- shift- kullanın fve normal ifadelerin etkinleştirildiğinden emin olun.
VS 2010 ve daha eski için karşılık gelen düzenli ifade
^~(:Wh@//.+)~(:Wh@\{:Wh@)~(:Wh@\}:Wh@)~(:Wh@/#).+
Visual Studio Team System 2008'de Analiz -> 'Çözüm için Kod Metriklerini Hesapla' menüsünden yapabilirsiniz ve size tüm çözümünüzün bir satır sayısını verecektir (diğer şeylerin yanı sıra g )
Gelecekteki okuyucular için Visual Studio 2010 için DPack uzantısını öneriyorum .
Kaç satır boş, kod vb. Yazan bir satır sayacı dahil olmak üzere yerleşik bir yardımcı program yükü var.
Basit bir çözüm, tüm dosyalarda arama yapmaktır. Joker karakterler kullanırken "*" yazın. Hangi tüm satırları eşleşir. Sonuçları bul penceresinin sonunda bir tür çizgi görmelisiniz:
Matching lines: 563 Matching files: 17 Total files searched: 17
Tabii ki bu büyük projeler için çok iyi değildir, çünkü tüm hatlar sonuç bul penceresinde dağıtılacak şekilde işlenir ve belleğe yüklenir.
Referans:
Kullanabilirsin:
Ben Addin OxyProject Metrics tercih ederim .
Açıkçası araçlar daha kolay, ama bunu powershell'de yapmaktan hoşlanıyorum :)
Bu komut dosyası, .sln dosyasındaki tüm .csproj başvurularını bulur ve daha sonra her csproj dosyası içinde derleme için bulunan dosyaları bulur. Derleme için eklenen her dosya için şu özelliklere sahip bir nesne oluşturur: Çözüm, Proje, Dosya, Çizgiler. Tüm bu nesneleri bir listede saklar ve ardından verileri gerektiği gibi gruplandırır ve yansıtır.
#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 için diğer basit araç (açık kaynak): http://www.accendo.sk/Download/SourceStat.zip
Sen kullanabilirsiniz Visual Studio Kod Ölçümleri PowerTool 10.0 . Bu, sizin için yönetilen koddaki birkaç metriği (kod satırları dahil) hesaplayan bir komut satırı yardımcı programıdır. Aracı Visual Studio'ya getiren ve menü öğesini seçip "Çözümü Çözümle" yi tıklatmak kadar hızlı hale getiren bir VS 2010 eklentisi alabilirsiniz .
Ali Parr. WndTab Satır Sayacı eklentisi böyle bir araçtır. http://www.codeproject.com/KB/macros/linecount.aspx
Ayrıca, alakalı bir araç bulmak için indirme sitesinden arama yapmak iyi bir fikirdir. http://www.cnet.com/1770-5_1-0.html?query=code+counter&tag=srch
İşte hile .. Js dosyasını da sayar.
http://www.spoiledtechie.com/post/2011/11/22/How-To-Count-Lines-of-Code-in-Visual-Studio.aspx
SourceMonitor ücretsiz aracını kullanabilirsiniz
Çok fazla önlem verir: Kod Satırı, Bildirim Sayısı, Karmaşıklık, Blok Derinliği
Grafikler üzerinden grafik çıktıları vardır
Visual Studio 2010'da Project Line Counter eklentisini kullanabilirsiniz. Normalde Visual Studio 2010 ile çalışmaz, ancak buradan yararlı bir .reg dosyasıyla çalışır: http://www.onemanmmo.com/index. php? cmd = newsitem & comment = news.1.41.0
Bir klasör yapısındaki satırları saymak için hızlı ve kirli bir powershell betiği ile geldim. Neredeyse diğer cevaplarda atıfta bulunulan diğer araçlar gibi tam özellikli değil, ancak bir proje veya çözümde birbirine göre kod dosyalarının boyutunun kabaca bir karşılaştırmasını sağlamak için yeterince iyi olduğunu düşünüyorum.
Komut dosyası burada bulunabilir:
Neptuner'ı deneyin. Ayrıca, LoC'ye ek olarak boşluklar, sekmeler, yorum satırları gibi şeyler sunar. http://neptuner.googlecode.com/files/neptuner_0_30_windows.zip