क्या संपूर्ण समाधान में कोड की पंक्तियों की संख्या ज्ञात करना संभव है? मैंने एमजेड-टूल्स के बारे में सुना है , लेकिन क्या एक खुला स्रोत बराबर है?
क्या संपूर्ण समाधान में कोड की पंक्तियों की संख्या ज्ञात करना संभव है? मैंने एमजेड-टूल्स के बारे में सुना है , लेकिन क्या एक खुला स्रोत बराबर है?
जवाबों:
विजुअल स्टूडियो 2010 अल्टीमेट में यह बिल्ट-इन है:
विश्लेषण → कोड मेट्रिक्स की गणना
मैंने इसके लिए पॉवरशेल उपयोगी पाया है । मैं एलओसी को वैसे भी एक बहुत फर्जी मीट्रिक मानता हूं, इसलिए मुझे विश्वास नहीं है कि कुछ और औपचारिक होना चाहिए।
एक छोटे समाधान की निर्देशिका से:
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>
जब एक ही कमांड-लाइन यह करेगी तो एक संपूर्ण ऐप का उपयोग क्यों करें? :)
(dir -exclude *.g.cs -include *.cs,*.xaml -recurse | select-string .).Count
मैं इस्तेमाल किया Ctrl+ Shift+ F। इसके बाद, \n
खोज बॉक्स में एक डालें और नियमित अभिव्यक्ति बॉक्स को सक्षम करें। फिर खोज परिणामों में, स्क्रीन के अंत में खोजे गए फाइलों की संख्या और कोड की लाइनें पाई जाती हैं।
आप [^\n\s]\r\n
रिक्त और स्पेस-ओनली लाइनों (टिप्पणियों में Zach को क्रेडिट) को छोड़ने के लिए उपयोग कर सकते हैं ।
Look at these file types:
केवल एक विकल्प ड्रॉपडाउन का चयन करके एक विशिष्ट फ़ाइल प्रकार का चयन कर सकते हैं enable regular expressions box
।
[^\n\s]\r\n
रिक्त लाइनों को छोड़ देता है, यहां तक कि उनमें रिक्त स्थान के साथ।
VS2005, 2003 और 2002 के लिए एक ओपन सोर्स लाइन काउंटर यहां उपलब्ध है:
यहां कोडप्रोजेक्ट पर कोड के साथ पूर्ण एक लाइन काउंटिंग वीएस एडिन बनाने की भी चर्चा है
http://www.codeproject.com/KB/macros/LineCounterAddin.aspx
इसके अलावा स्लिक एडिट गैजेट्स का एक अच्छा लाइन-काउंटर है, यहां:
http://www.slickedit.com/products/slickedit
और Microsoft Visual Studio टीम सिस्टम 2008 में एक अच्छी लाइन काउंटर शामिल है।
हालांकि याद रखें:
कोड की लाइनों द्वारा प्रोग्रामिंग प्रगति को मापना वजन द्वारा विमान निर्माण प्रगति को मापने के समान है। बिल गेट्स
यहां विजुअल स्टूडियो 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 गिनना बहुत पसंद है, इसलिए मैं इसके साथ थोड़ी देर के लिए फंस गया हूं। मुझे आशा है कि किसी और को यह मददगार मिल सकता है, मुझे बताएं कि क्या आपके पास कोई प्रश्न है या इसे काम करने में मदद की आवश्यकता है।
इस टिप को मिला: वीएस फाइंड एंड रिप्लेस के साथ LOC
एक प्लगइन नहीं है, हालांकि यदि आप क्या देख रहे हैं।
क्लॉक एक उत्कृष्ट कमांडलाइन है, पर्ल-आधारित, विंडोज-निष्पादन योग्य जो फ़ाइल लाइनों द्वारा समूहीकृत रिक्त लाइनों, टिप्पणी लाइनों और कोड के स्रोत लाइनों को तोड़ देगा।
अब यह विशेष रूप से एक वीएस समाधान फ़ाइल पर नहीं चलेगा, लेकिन यह निर्देशिकाओं के माध्यम से पुनरावृत्ति कर सकता है, और आप फिट होने पर फ़ाइल नाम फ़िल्टर सेट कर सकते हैं।
उनके वेब पेज से नमूना आउटपुट यहां दिया गया है:
प्रॉम्प्ट> क्लॉक पेर्ल-5.10.0.tar.gz 4076 पाठ फ़ाइलें। 3883 अद्वितीय फ़ाइलें। 1521 फाइलों को नजरअंदाज किया। http://cloc.sourceforge.net v 1.07 T = 10.0 s (251.0 फाइलें / एस, 84566.5 लाइनें / सेकंड) -------------------------------------------------- ----------------------------- भाषा फाइलें खाली टिप्पणी कोड पैमाने 3 जी। समतुल्य -------------------------------------------------- ----------------------------- पर्ल 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 लिस्प 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 डॉस बैच 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 -------------------------------------------------- -----------------------------
तीसरी पीढ़ी के समतुल्य पैमाने का अनुमान है कि यह तीसरी पीढ़ी की भाषा में कितना कोड होगा । बहुत उपयोगी नहीं है, लेकिन दिलचस्प वैसे भी।
choco install cloc
और फिर cloc .
अपने समाधान में dir। काम हो गया!
यहाँ उत्तर थोड़ा पुराना है, 2008 के समय से हो सकता है। क्योंकि 2010-2013 के नए विज़ुअल स्टूडियो संस्करणों में, यह सुविधा पहले से ही अंतर्निहित है। इस प्रकार इसके लिए किसी भी एक्सटेंशन या टूल का उपयोग करने का कोई कारण नहीं है।
कोड की पंक्तियों को गिनने की सुविधा - मेट्रिक्स की गणना करें। इसके साथ आप प्रत्येक प्रोजेक्ट या समाधान के लिए अपने मेट्रिक्स (LOC, Maintaince index, Cyclomatic index, Depth of inheritence) की गणना कर सकते हैं।
सॉल्यूशन एक्सप्लोरर में सॉल्यूशन या प्रोजेक्ट पर राइट क्लिक करें,
और "मैट्रिक्स की गणना करें" चुनें
बाद में विश्लेषण और एकत्रीकरण के डेटा को एक्सेल में आयात किया जा सकता है। एक्सेल में भी आप अपने मेट्रिक्स से उत्पन्न कक्षाओं, या अन्य शोर को फ़िल्टर कर सकते हैं। लाइन्स ऑफ कोड LOC सहित इन मेट्रिक्स को बिल्ड प्रोसेस के दौरान भी इकट्ठा किया जा सकता है, और बिल्ड रिपोर्ट में शामिल किया जा सकता है
VS2010 और 2012 के बीच नियमित अभिव्यक्ति बदल गई है, इसलिए यहां नियमित अभिव्यक्ति के अधिकांश समाधान अब काम नहीं करते हैं
(^(?!(\s*//.+)))+(^(?!(#.+)))+(^(?!(\s*\{.+)))+(^(?!(\s*\}.+)))+(^(?!(\s*\r?$)))+
उन सभी पंक्तियों को खोजेंगे जो रिक्त नहीं हैं, केवल एक ब्रैकेट ('{' या '}') नहीं हैं और न ही एक #include या अन्य प्रीप्रोसेसर।
उपयोग Ctrl- shift- fऔर सुनिश्चित करें कि नियमित अभिव्यक्ति सक्षम हैं।
वीएस 2010 और पुराने के लिए इसी नियमित अभिव्यक्ति है
^~(:Wh@//.+)~(:Wh@\{:Wh@)~(:Wh@\}:Wh@)~(:Wh@/#).+
विज़ुअल स्टूडियो टीम सिस्टम 2008 में आप मेनू से विश्लेषण कर सकते हैं -> 'समाधान के लिए कोड मेट्रिक्स की गणना करें' और यह आपको आपके संपूर्ण समाधान की एक पंक्ति गणना देगा (अन्य चीजों के बीच जी )
भविष्य के पाठकों के लिए मैं Visual Studio 2010 के लिए DPack एक्सटेंशन की सलाह देना चाहूंगा ।
इसे एक लाइन काउंटर सहित निर्मित उपयोगिताओं का भार मिला है, जो कहती हैं कि कितनी लाइनें रिक्त, कोड और आदि हैं।
एक सरल समाधान सभी फाइलों में खोज करना है। वाइल्डकार्ड का उपयोग करते समय "*" टाइप करें। जो सभी लाइनों से मेल खाता होगा। खोज परिणाम विंडो के अंत में आपको सॉर्ट की एक पंक्ति दिखनी चाहिए:
Matching lines: 563 Matching files: 17 Total files searched: 17
बेशक, यह बड़ी परियोजनाओं के लिए बहुत अच्छा नहीं है, क्योंकि सभी लाइनों का निर्माण किया जाता है और मेमोरी में लोड किया जाता है ताकि खोज परिणाम विंडो पर भेजा जा सके।
संदर्भ:
आप उपयोग कर सकते हैं:
मैं ऑक्सीप्रोजेक्ट मेट्रिक्स वीएस एडिन पसंद करता हूं ।
स्पष्ट रूप से उपकरण आसान हैं, लेकिन मुझे लगता है कि यह शालीनता से करना अच्छा है :)
इस स्क्रिप्ट को .sln फ़ाइल में सभी .csproj संदर्भ मिलते हैं, और फिर प्रत्येक csproj फ़ाइल के भीतर यह संकलन के लिए शामिल फ़ाइलों का पता लगाता है। संकलन के लिए शामिल की गई प्रत्येक फ़ाइल के लिए यह गुणों के साथ एक ऑब्जेक्ट बनाता है: समाधान, प्रोजेक्ट, फ़ाइल, लाइन्स। यह इन सभी वस्तुओं को एक सूची में संग्रहीत करता है, और फिर समूहों और आवश्यकतानुसार डेटा को प्रोजेक्ट करता है।
#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 कोड मेट्रिक्स पॉवरटूल 10.0 का उपयोग कर सकते हैं । यह एक कमांड-लाइन उपयोगिता है जो आपके लिए प्रबंधित कोड (कोड की लाइनों सहित) पर कुछ मीट्रिक की गणना करता है। आप वीएस 2010 प्लगइन प्राप्त कर सकते हैं जो टूल को विज़ुअल स्टूडियो में लाता है , और इसे मेनू आइटम का चयन करने और "एनालिसिस सॉल्यूशन" पर क्लिक करने के रूप में त्वरित बनाता है।
अली पर्रर से सहमत। WndTab लाइन काउंटर एडिन एक ऐसा उपकरण है। 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
आप Free Tool SourceMonitor का उपयोग कर सकते हैं
बहुत सारे उपाय देता है: कोड की पंक्तियाँ, कथन गणना, जटिलता, ब्लॉक गहराई
चार्ट के माध्यम से चित्रमय आउटपुट है
आप Visual Studio 2010 में प्रोजेक्ट लाइन काउंटर ऐड-इन का उपयोग कर सकते हैं। आम तौर पर यह विज़ुअल स्टूडियो 2010 के साथ काम नहीं करता है, लेकिन यह यहाँ से एक सहायक .reg फ़ाइल के साथ है: http://www.onemanmmo.com/index। php? cmd = newsitem और टिप्पणी = news.1.41.0
मैं एक फ़ोल्डर संरचना में लाइनों की गिनती के लिए एक त्वरित और गंदे पॉवरशेल स्क्रिप्ट के साथ आया था। यह लगभग पूर्ण नहीं है क्योंकि अन्य उत्तरों में संदर्भित कुछ अन्य टूल के रूप में चित्रित किया गया है, लेकिन मुझे लगता है कि यह किसी प्रोजेक्ट या समाधान में एक दूसरे के सापेक्ष कोड फ़ाइलों के आकार की तुलना करने के लिए पर्याप्त है।
स्क्रिप्ट यहां मिल सकती है:
नेप्चूनर का प्रयास करें। यह आपको एलओसी के अलावा स्पेस, टैब, टिप्पणियों की लाइन्स जैसे सामान भी देता है। http://neptuner.googlecode.com/files/neptuner_0_30_windows.zip