Comment savoir combien de lignes de code il y a dans un projet Xcode?

Est-il un moyen de déterminer combien de lignes de code d'un projet Xcode contient? Je promets de ne pas utiliser ces renseignements à des fins de mesure de gestion ou d'analyse comparative des employés. ;)

123
demandé sur Tiny Giant 2010-01-05 04:18:55

14 réponses

Check out CLOC .

cloc compte les lignes vierges, les lignes de commentaire et les lignes physiques du code source dans de nombreux langages de programmation.

( l'Héritage des générations sont archivés sur le site de SourceForge .)

112
répondu Nathan Kinsinger 2016-03-31 10:50:34

je le vois flotter et je l'utilise moi-même:

find . "(" -name "*.m" -or -name "*.mm" -or -name "*.cpp" -or -name "*.swift" ")" -print0 | xargs -0 wc -l
209
répondu Joshua Nozzi 2015-02-26 11:07:49

j'ai utilisé CLOC comme mentionné par Nathan Kinsinger et il est assez facile à utiliser. C'est un script PERL que vous pouvez ajouter et exécuter à partir de votre répertoire de projet.

PERL fait déjà partie de Mac OS et vous pouvez invoquer le script de cette façon pour connaître le nombre de lignes que vous avez écrites:

perl cloc-1.56.pl ./YourDirectoryWhereYourSourcesAre

c'est un exemple de sortie que j'ai obtenu d'une telle commande:

   176 text files.
   176 unique files.                                          
     4 files ignored.

http://cloc.sourceforge.net v 1.56  T=2.0 s (86.0 files/s, 10838.0 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
Objective C                     80           3848           1876          11844
C/C++ Header                    92            980           1716           1412
-------------------------------------------------------------------------------
SUM:                           172           4828           3592          13256
-------------------------------------------------------------------------------
71
répondu tiguero 2018-05-05 11:28:30

dans terminal, changer dans l'annuaire du projet et lancer:

find . -type f -print0 | xargs -0 cat | wc -l

si vous voulez seulement certains types de fichiers, Essayez quelque chose comme

find . -type f -name \*.[ch]* -print0 | xargs -0 cat | wc -l
42
répondu Andrew McGregor 2010-01-05 01:30:34

Ouvrez Terminal.app, Allez dans le répertoire racine de votre projet et lancez cette commande:

pour Swift seulement:

find . \( -iname \*.swift \) -exec wc -l '{}' \+

pour Obj-C seulement:

find . \( -iname \*.m -o -iname \*.mm -o -iname \*.h \) -exec wc -l '{}' \+

Pour Obj-C + Swift:

find . \( -iname \*.m -o -iname \*.mm -o -iname \*.h -o -iname \*.swift \) -exec wc -l '{}' \+

Pour Obj-C + Swift + C + C++:

find . \( -iname \*.m -o -iname \*.mm -o -iname \*.c -o -iname \*.cc -o -iname \*.h -o -iname \*.hh -o -iname \*.hpp -o -iname \*.cpp -o -iname \*.swift \) -exec wc -l '{}' \+

Terminal astuces:

ls: liste le contenu du répertoire

cd: changer le répertoire

Appuyez sur tab pour autocomplete

N'oubliez pas de mettre " \ "backslash avant espaces

Je suggère de descendre un dossier du projet principal pour que vous vous débarrassiez du code count à partir des cadres

36
répondu Esqarrouth 2015-05-07 13:19:15

Vérifiez Xcode statisticien, il fait exactement ce que vous voulez. Il fournit également d'autres statistiques intéressantes est donc la peine d'une course pour le plaisir de temps en temps.

notez qu'il ne regardera pas dans les dossiers réels, bien qu'il regardera dans les groupes. Il y a des chances que vous n'utilisiez pas de vrais dossiers pour que ça fonctionne bien. Si vous utilisez des dossiers, alors vous avez juste à faire le décompte de chaque dossier et de les additionner.

Note: à partir de juin, 2012, il semble que cela ne fonctionne pas correctement avec les dernières versions de Xcode.

34
répondu Matthew Frederick 2015-01-22 11:40:34
  1. ouvrir un terminal
  2. naviguez vers votre projet
  3. exécutez la commande suivante dans votre projet:

    find . -path ./Pods -prune -o -name "*.swift" -print0 ! -name "/Pods" | xargs -0 wc -l
    

    ou:

    find . -path ./Pods -prune -o -name "*[hm]" -print0 ! -name "/Pods" | xargs -0 wc -l
    

(*à L'exclusion des fichiers pod du nombre total)

17
répondu Shan Shafiq 2017-01-04 15:26:10

si vous allez à l'Annuaire de votre projet dans le terminal et entrez:

find . "(" -name "*.h" -or -name "*.m" -or -name "*.mm" -or -name "*.hpp" -or -name "*.cpp"  -or  -name "*.c" -or -name "*.cc" -or -name "*.swift" ")" -print0 | xargs -0 wc -l

qui vous donnera une ventilation du projet, ainsi que le total de la ligne pour chaque dossier et le projet dans son ensemble.

15
répondu RileyE 2015-01-22 18:00:16

la version de Nozzi ne marche pas pour moi, mais celle-ci:

find . -type f -print0 | xargs -0 cat | wc -l
9
répondu Pascalius 2015-11-07 18:10:41

vous pouvez installer SLOCCount via MacPorts. Ou, plus grossièrement, vous pouvez utiliser wc-L.

6
répondu anthony 2010-01-05 01:27:37

quick & easy": 151920920"

utilisez une recherche regex (find Navigator, choisissez Find > Regular Expression).

.\n

fonctionne commodément avec les portées de recherche Xcode et vous pouvez facilement le personnaliser à n'importe quel type de ligne que vous voulez compter ;).

4
répondu Patrick Pijnappel 2014-09-10 01:19:13

Je ne suis pas familier avec xcode, mais si tout ce que vous avez besoin est de compter le nombre de lignes de tous ces fichiers spécifiques dans un arbre de répertoire, vous pouvez utiliser la commande suivante:

find .... match of all those files ... -exec wc -l {} +

suite réponse de Joshua Nozzi , dans GNU find l'expression régulière pour de tels fichiers serait comme:

find . "(" -name "*.m" -or -name "*.mm" -or -name "*.cpp" -or -name "*.swift" ")" -exec wc -l {} +

ou même

find -regex ".*\.\(m\|mm\|cpp\|swift\)$" -exec wc -l {} +

expression régulière pour faire correspondre tous les fichiers se terminant dans l'un ou l'autre .m , .mm , .cpp ou .swift . Vous pouvez voir plus d'informations sur ces expressions dans comment utiliser regex dans le fichier trouver .

si vous travaillez avec Mac OS trouver , alors vous avez besoin d'une approche légèrement différente, comme expliqué par Motti Shneor dans les commentaires:

find -E . -regex ".*\.([hmc]|mm|cp+|swift|pch)$" -exec wc -l {} +

tous deux fourniront une sortie sur la forme de:

234 ./file1
456 ./file2
690 total

de sorte que vous pouvez le garder comme ceci ou tout simplement la pipe à tail -1 (c'est-à-dire, find ... | tail -1 ) de sorte que vous venez d'obtenir la dernière ligne étant le total.

2
répondu fedorqui 2018-06-01 06:41:10

désolé de répéter. C'est la voie la plus facile IMHO:

  1. dans le type de terminal

find /users/<#username#>/documents/folderWithProject/ -type f -exec cp {} /users/<#username#>/documents/folderWithProject/newFolder/ \;

cela copiera tous les fichiers du dossier de projet à newFolder .

  1. télécharger Xcode statisticien et l'utiliser avec newFolder enter image description here
1
répondu Nik Kov 2016-04-27 12:31:23

line-counter est une bonne alternative. Il est plus léger que CLOC et beaucoup plus puissant et plus facile à utiliser que d'autres commandes.

Un aperçu rapide

C'est comment vous obtenez l'outil

$ pip install line-counter

utiliser line commande pour obtenir le nombre de fichiers et le nombre de lignes dans le répertoire courant (récursivement)

$ line
Search in /Users/Morgan/Documents/Example/
file count: 4
line count: 839

si vous voulez plus de détails, utilisez line -d .

$ line -d
Search in /Users/Morgan/Documents/Example/
Dir A/file C.c                                             72
Dir A/file D.py                                           268
file A.py                                                 467
file B.c                                                   32
file count: 4
line count: 839

Et la meilleure partie de cet outil, vous pouvez ajouter .gitignore comme fichier de configuration. Vous pouvez définir des règles pour sélectionner ou ignorer ce type de fichiers pour compter juste comme ce que vous faites".gitignore". Oui, cet outil est juste inventé pour faire savoir combien de lignes j'ai plus facile.

plus de description et d'usage est ici: https://github.com/MorganZhang100/line-counter

je suis l'auteur de cet outil simple. Espérons qu'il pourra aider quelqu'un.

toute étoile ou fourchette est appréciée: p

1
répondu Morgan Zhang 2016-08-10 23:59:01