visual studio - विजुअल स्टूडियो समाधान में कोड की रेखाओं की गणना कैसे करते हैं?




visual-studio code-metrics (17)

क्या पूरे समाधान में कोड की रेखाओं की संख्या को खोजना संभव है? मैंने MZ-Tools बारे में सुना है, लेकिन क्या ओपन सोर्स बराबर है?


Neptuner कोशिश करो। यह आपको लोके के अलावा रिक्त स्थान, टैब, टिप्पणियों की रेखा जैसी चीजें भी प्रदान करता है। http://neptuner.googlecode.com/files/neptuner_0_30_windows.zip



आप इसका उपयोग कर सकते हैं:


आप मुफ्त उपकरण SourceMonitor उपयोग कर सकते हैं

बहुत सारे उपाय देता है: कोड की रेखाएं, विवरण गणना, जटिलता, ब्लॉक गहराई

चार्ट के माध्यम से ग्राफिकल आउटपुट है



एक सरल समाधान सभी फाइलों में खोजना है। वाइल्डकार्ड का उपयोग करते समय "*" टाइप करें। जो सभी लाइनों से मेल खाएगा। खोज परिणाम विंडो के अंत में आपको क्रम की एक पंक्ति दिखाई देनी चाहिए:

Matching lines: 563 Matching files: 17 Total files searched: 17

बेशक यह बड़ी परियोजनाओं के लिए बहुत अच्छा नहीं है, क्योंकि सभी लाइनों को खोज परिणाम विंडो पर प्रेषित करने के लिए मेमोरी में लोड किया जाता है और स्मृति में लोड किया जाता है।

संदर्भ:


मुझे इसके लिए powershell उपयोगी पाया गया है। मैं लोका को किसी भी तरह का फर्जी मेट्रिक मानता हूं, इसलिए मुझे विश्वास नहीं है कि औपचारिकता की आवश्यकता होनी चाहिए।

एक छोटे समाधान की निर्देशिका से:

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>

एक एकल ऐप का उपयोग क्यों करें जब एक कमांड लाइन इसे करेगी? :)


मेनू-> विश्लेषण -> विजुअल स्टूडियो 2010 अल्टीमेट में कोड मेट्रिक्स विकल्प की गणना करें।


मैं एक फ़ोल्डर संरचना में लाइनों की गिनती के लिए एक त्वरित और गंदे शक्तिशक्ति लिपि के साथ आया था। यह लगभग अन्य उपकरणों में संदर्भित कुछ अन्य उपकरणों के रूप में पूर्ण रूप से पूर्ण रूप से प्रदर्शित नहीं है, लेकिन मुझे लगता है कि यह एक परियोजना या समाधान में एक दूसरे के सापेक्ष कोड फ़ाइलों के आकार की मोटा तुलना प्रदान करने के लिए पर्याप्त है।

लिपि यहां पाई जा सकती है:

https://gist.github.com/1674457


मैंने Ctrl + Shift + F का उपयोग किया। इसके बाद, \n खोज बॉक्स में रखें और नियमित अभिव्यक्ति बॉक्स सक्षम करें। फिर खोज परिणामों में, स्क्रीन के अंत में खोज की गई फ़ाइलों की संख्या और कोड की रेखाएं मिलती हैं।


यहां उन लोगों के लिए विजुअल स्टूडियो 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 के लिए एक्सएमएल

/// <summary>
/// I'm a class description for Intellisense
/// </summary>

एचटीएमएल टिप्पणियाँ:

<!-- 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 */
            }
        }

मैंने इसे पिछले कुछ विकल्पों की तुलना में अधिक सटीक एलओसी गिनती देने के लिए बनाया है, और मुझे लगता है कि मैं साझा करूंगा। मालिकों को एलओसी गिनती पसंद है, इसलिए मैं थोड़ी देर के लिए इसके साथ अटक गया हूँ। मुझे आशा है कि कोई और यह सहायक पा सकता है, अगर आपको कोई प्रश्न है या इसे काम करने में मदद की ज़रूरत है तो मुझे बताएं।


यहां जवाब थोड़े समय से बाहर हैं, 2008 के बनाम बना सकते हैं। क्योंकि नए विजुअल स्टूडियो संस्करण 2010/2012 में, यह सुविधा पहले ही अंतर्निहित है। इस प्रकार इसके लिए किसी भी एक्सटेंशन या उपकरण का उपयोग करने का कोई कारण नहीं है।

कोड की रेखाओं की गिनती करने के लिए फ़ीचर - मेट्रिक्स की गणना करें। इसके साथ आप प्रत्येक परियोजना या समाधान के लिए अपने मीट्रिक (एलओसी, रखरखाव सूचकांक, चक्रवात सूचकांक, उत्तराधिकारी की गहराई) की गणना कर सकते हैं।

सॉल्यूशन एक्सप्लोरर में बस समाधान या प्रोजेक्ट पर राइट क्लिक करें,

और "मेट्रिक्स की गणना करें" का चयन करें

बाद में विश्लेषण और एकत्रीकरण के लिए डेटा एक्सेल में आयात किया जा सकता है। एक्सेल में भी आप जेनरेट किए गए वर्ग, या अपने मीट्रिक से अन्य शोर को फ़िल्टर कर सकते हैं। कोड मेट्रो सहित लाइनों सहित बिल्डिंग प्रक्रिया के दौरान भी इन मेट्रिक्स को इकट्ठा किया जा सकता है, और बिल्ड रिपोर्ट में शामिल किया गया है


विजुअल स्टूडियो 2015 में विश्लेषण मेनू पर जाएं और "कोड मेट्रिक्स की गणना करें" का चयन करें।


विजुअल स्टूडियो टीम सिस्टम 2008 में आप मेनू से विश्लेषण कर सकते हैं -> 'समाधान के लिए कोड मेट्रिक्स की गणना करें' और यह आपको अपने पूरे समाधान की लाइन गिनती देगा (अन्य चीजों के साथ जी )


वीएस -2010 और 2012 के बीच नियमित अभिव्यक्तियां बदल गई हैं, इसलिए नियमित रूप से नियमित अभिव्यक्ति समाधान अब काम नहीं करते हैं

(^(?!(\s*//.+)))+(^(?!(#.+)))+(^(?!(\s*\{.+)))+(^(?!(\s*\}.+)))+(^(?!(\s*\r?$)))+

उन सभी लाइनों को मिलेगा जो रिक्त नहीं हैं, केवल एक ही ब्रैकेट ('{' या '}' नहीं हैं) न कि सिर्फ # अंतर्निहित या अन्य प्रीप्रोसेसर।

Ctrl - shift - f का उपयोग करें और सुनिश्चित करें कि नियमित अभिव्यक्ति सक्षम हैं।

वीएस 2010 और पुराने के लिए इसी तरह की नियमित अभिव्यक्ति है

^~(:[email protected]//.+)~(:[email protected]\{:[email protected])~(:[email protected]\}:[email protected])~(:[email protected]/#).+

वीएस2005, 2003 और 2002 के लिए एक ओपन सोर्स लाइन काउंटर यहां उपलब्ध है:

http://www.wndtabs.com/

वीएस एडिन की गिनती लाइन बनाने की भी चर्चा है, यहां कोडप्रोजेक्ट पर कोड के साथ पूरा करें

http://www.codeproject.com/KB/macros/LineCounterAddin.aspx

स्लॉट संपादित गैजेट्स में भी एक अच्छा लाइन-काउंटर है, यहां:

http://www.slickedit.com/products/slickedit

और माइक्रोसॉफ्ट विजुअल स्टूडियो टीम सिस्टम 2008 में एक अच्छी लाइन काउंटर शामिल है।

बस याद रखें हालांकि:

कोड की रेखाओं से प्रोग्रामिंग प्रगति मापना वजन से विमान निर्माण प्रगति को मापने जैसा है। बिल गेट्स


cloc एक उत्कृष्ट कमांडलाइन है, पर्ल-आधारित, विंडोज-एक्जिक्यूटेबल जो रिक्त लाइनों, टिप्पणी लाइनों और कोड के स्रोत लाइनों को तोड़ देगा, जो फ़ाइल स्वरूपों द्वारा समूहीकृत है।

अब यह विशेष रूप से वीएस समाधान फ़ाइल पर नहीं चलेगा, लेकिन यह निर्देशिकाओं के माध्यम से पुन: कार्य कर सकता है, और आप फिट होने पर फ़ाइल नाम फ़िल्टर सेट कर सकते हैं।

यहां उनके वेब पेज से नमूना आउटपुट है:

prompt> cloc perl-5.10.0.tar.gz
    4076 text files.
    3883 unique files.                                          
    1521 files ignored.

http://cloc.sourceforge.net v 1.07  T=10.0 s (251.0 files/s, 84566.5 lines/s)
-------------------------------------------------------------------------------
Language          files     blank   comment      code    scale   3rd 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
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 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
-------------------------------------------------------------------------------

तीसरी पीढ़ी के समकक्ष पैमाने का अनुमान है कि यह तीसरी पीढ़ी की भाषा में कितना कोड लेगा। बहुत उपयोगी नहीं है, लेकिन वैसे भी दिलचस्प है।






line-count