Question Comment comptez-vous les lignes de code dans une solution Visual Studio?


Est-il possible de trouver le nombre de lignes de code dans une solution complète? J'ai entendu parler de MZ-Tools, mais y a-t-il un équivalent open source?


663
2017-08-07 13:35


origine


Réponses:


Visual Studio 2010 Ultimate a ce intégré.

Analyser -> Calculer les métriques de code


394
2018-03-01 02:25



J'ai trouvé PowerShell utile pour cela. Je considère que la LoC est une métrique plutôt fausse, donc je ne crois pas que quelque chose de plus formel soit nécessaire.

À partir du répertoire d'une solution plus petite:

PS C:\Path> (gci -include *.cs,*.xaml -recurse | select-string .).Count
8396
PS C:\Path>

Cela comptera les lignes non vides dans tous les fichiers .cs et .xaml de la solution. Pour un projet plus important, j'ai juste utilisé une liste d'extension différente:

PS C:\Other> (gci -include *.cs,*.cpp,*.h,*.idl,*.asmx -recurse | select-string .).Count
909402
PS C:\Other>

Pourquoi utiliser une application entière lorsqu'une seule ligne de commande le fera? :)


737
2017-08-07 14:02



j'ai utilisé Ctrl+Décalage+F. Ensuite, mettez un \n dans la boîte de recherche et activer la boîte d'expressions régulières. Ensuite, dans les résultats de recherche, à la fin de l'écran sont le nombre de fichiers recherchés et les lignes de code trouvées.


330
2018-02-21 20:46



Un compteur de ligne open source pour VS2005, 2003 et 2002 est disponible ici:

http://www.wndtabs.com/

Il y a aussi une discussion sur la création d'une ligne additionnant VS addin, complète avec le code sur Codeproject, ici

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

Aussi Slick Edit Gadgets ont un joli compteur de ligne, ici:

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

et Microsoft Visual Studio Team System 2008 inclut un bon compteur de ligne.

Rappelez-vous juste si:

Mesurer la progression de la programmation par lignes de code, c'est comme mesurer la progression du poids de l'aéronef.   Bill Gates


218
2017-08-07 13:43



J'ai trouvé ce conseil: LOC avec VS Trouver et remplacer

Pas un plugin mais si c'est ce que vous cherchez.


80
2018-02-28 14:27



Voici une mise à jour pour Visual Studio 2012/2013/2015 pour ceux qui veulent faire l'option "Find" (que je trouve la plus simple): Ce RegEx trouvera toutes les lignes non vides avec plusieurs exclusions pour donner les résultats les plus précis .

Entrez le RegEx suivant dans la boîte "Rechercher". Assurez-vous de sélectionner l'option "Utiliser les expressions régulières". Changez l'option de recherche en "Projet en cours" ou "Solution entière" en fonction de vos besoins. Maintenant, sélectionnez "Trouver tout". Au bas de la Trouver des résultats fenêtre, vous verrez "Correspondant Lignes" qui est les lignes du nombre de code.


^(?!(\s*\*))(?!(\s*\-\-\>))(?!(\s*\<\!\-\-))(?!(\s*\n))(?!(\s*\*\/))(?!(\s*\/\*))(?!(\s*\/\/\/))(?!(\s*\/\/))(?!(\s*\}))(?!(\s*\{))(?!(\s(using))).*$

Ce RegEx exclut les éléments suivants:


commentaires

// This is a comment

Commentaires multi-lignes (en supposant que les lignes soient correctement commentées avec un * devant chaque ligne)

/* I am a
* multi-line
* comment */

XML pour Intellisense

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

Commentaires HTML:

<!-- I am a HTML Comment -->

Utilisation des instructions:

using System;
using System.Web;

Ouverture des accolades:

{

Fermeture des accolades:

}

Remarque: tout ce qui se trouve entre les accolades serait inclus dans la recherche, mais dans cet exemple, seules 4 lignes de code compteraient, au lieu de 18 lignes réelles non vides:

        public class Test
        {
            /// <summary>
            /// Do Stuff
            /// </summary>
            public Test()
            {
                TestMe();
            }
            public void TestMe()
            {
                //Do Stuff Here
                /* And
                 * Do
                 * Stuff
                 * Here */
            }
        }

J'ai créé ceci pour me donner un compte LOC beaucoup plus précis que certaines options précédentes, et j'ai pensé que je partagerais. Les patrons adorent les comptes LOC, je suis donc coincé avec ça pendant un moment. J'espère que quelqu'un d'autre peut trouver cela utile, laissez-moi savoir si vous avez des questions ou besoin d'aide pour le faire fonctionner.


67
2017-11-04 18:18



cloc est une excellente ligne de commande, basée sur Perl, exécutable sous Windows qui décomposera les lignes vides, les lignes commentées et les lignes sources de code, groupées par format de fichier.

Maintenant, il ne fonctionnera pas spécifiquement sur un fichier de solution VS, mais il peut se reproduire dans les répertoires, et vous pouvez configurer des filtres de noms de fichier comme bon vous semble.

Voici l'exemple de sortie de leur page Web:


invite> cloc perl-5.10.0.tar.gz
    4076 fichiers texte.
    3883 fichiers uniques.
    1521 fichiers ignorés.

http://cloc.sourceforge.net v 1.07 T = 10.0 s (251.0 fichiers / s, 84566.5 lignes / s)
-------------------------------------------------- -----------------------------
Fichiers de langue vide Échelle de code de commentaire 3e génération. équiv
-------------------------------------------------- -----------------------------
Perl 2052 110356 112521 309778 x 4.00 = 1239112.00
C 135 18718 22862 140483 x 0,77 = 108171,91
En-tête C / C ++ 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
faire 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 Lot 11 85 50 322 x 0,63 = 202,86
HTML 1 19 2 98 x 1,90 = 186,20
-------------------------------------------------- -----------------------------
SOMME: 2510 142085 156406 547174 x 2,84 = 1556285,03
-------------------------------------------------- -----------------------------

L'échelle équivalente de troisième génération est une estimation approximative de la quantité de code langage de troisième génération. Pas très utile, mais intéressant quand même.


54
2017-08-07 16:31



Les réponses ici sont un peu démodées, peuvent être de l'heure de 2008. Dans les versions plus récentes de Visual Studio 2010/2012, cette fonctionnalité est déjà intégrée. Il n'y a donc aucune raison d'utiliser une extension ou des outils pour cela.

Fonction pour compter les lignes de code - Calculer les métriques. Vous pouvez ainsi calculer vos métriques (LOC, Maintaince index, Cyclomatic index, Depth of inheritence) pour chaque projet ou solution.

Faites un clic droit sur la solution ou le projet dans l'Explorateur de solutions,

enter image description here

et sélectionnez "Calculer les métriques"

enter image description here

Les données ultérieures pour l'analyse et l'agrégation peuvent être importées dans Excel. Toujours dans Excel, vous pouvez filtrer les classes générées ou d'autres bruits provenant de vos métriques. Ces métriques, y compris les Lignes de code LOC, ont pu être rassemblées lors du processus de construction et incluses dans le rapport de construction


41
2017-11-14 10:45



Les expressions régulières ont changé entre VS2010 et 2012, de sorte que la plupart des solutions d'expression régulière ne fonctionnent plus

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

Trouvera toutes les lignes qui ne sont pas vides, ne sont pas juste un seul crochet ('{' ou '}') et pas seulement un préprocesseur #include ou autre.

Utilisation Ctrl-décalage-F et assurez-vous que les expressions régulières sont activées.

L'expression régulière correspondante pour VS 2010 et plus est

^~(:Wh@//.+)~(:Wh@\{:Wh@)~(:Wh@\}:Wh@)~(:Wh@/#).+

28
2017-10-01 12:20



Dans Visual Studio Team System 2008, vous pouvez le faire à partir du menu Analyser -> "Calculer les métriques de code pour la solution" et il vous donnera un nombre de lignes de votre solution entière (entre autres choses g)


19
2017-08-07 13:51