Question

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

Était-ce utile?

La solution

Consultez CLOC .

  

cloc compte des lignes vides, des lignes de commentaires et des lignes physiques du code source dans de nombreux langages de programmation.

( héritage construit sont archivés sur SourceForge.)

Autres conseils

Je vois flottant et l'utiliser moi-même:

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

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

PERL est déjà partie de Mac OS et vous pouvez appeler le script de cette façon de connaître votre nombre de lignes que vous avez écrit:

perl cloc-1.56.pl ./YourDirectoryWhereYourSourcesAre

Ceci est un exemple de sortie i obtenu de cette 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
-------------------------------------------------------------------------------

Dans Terminal, dans le répertoire de projet et exécutez:

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

Si vous ne souhaitez que certains types de fichiers, essayez quelque chose comme

find . -type f -name \*.[ch]* -print0 | xargs -0 cat | wc -l

Ouvrez Terminal.app, allez dans le répertoire racine de votre projet, et exécutez la commande suivante:

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 '{}' \+
  

Quelques conseils: Terminal
  ls: contenu du répertoire liste
  cd: répertoire changement
  Appuyez sur Tab pour
saisie semi-automatique   Rappelez-vous de mettre « \ » barre oblique inverse avant des espaces
  Je suggère d'aller un dossier vers le bas du projet principal afin que vous vous débarrasser de comptage de code à partir des cadres

Consultez Statisticien Xcode, il fait exactement ce que vous voulez. Il fournit également d'autres statistiques intéressantes donc vaut une course pour le plaisir maintenant et puis.

Notez qu'il ne sera pas regarder à l'intérieur des dossiers réels, mais il regardera dans les groupes. Les chances sont que vous n'utilisez des dossiers réels donc ça va marcher beaucoup. Si vous utilisez des dossiers alors il vous suffit de faire le compte dans chaque dossier et de les additionner.

Remarque:. En Juin 2012, il semble que cela ne fonctionne pas correctement avec les dernières versions de Xcode

  1. Terminal ouvert
  2. accédez à votre projet
  3. exécuter 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
    

(* Hors fichiers pod comptent de nombre total)

Si vous allez à votre répertoire de 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

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

La version de Nozzi ne fonctionne pas pour moi, mais celui-ci:

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

Vous pouvez installer SLOCCount par MacPorts. Ou, plus crûment, vous pouvez utiliser wc -l.

Une façon rapide et facile:

Utilisez une recherche regex (Trouver Navigator, choisissez Rechercher> Expression régulière).

  

. \ N

Fonctionne à des champs de recherche Xcode et vous pouvez facilement le personnaliser à tout type de ligne que vous souhaitez compter;).

Désolé pour répéter. C'est la façon la plus simple à mon humble avis:

  1. Dans le type de terminal

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

Cette copie tous les fichiers du dossier de projet à newFolder.

  1. Télécharger Xcode Statisticien et l'utiliser avec newFolder entrer la description d'image ici

Je ne suis pas familier avec Xcode, mais si tout ce que vous avez besoin est de compter le nombre de lignes de tous les fichiers spécifiques dans une arborescence, vous pouvez utiliser la commande suivante:

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

Joshua réponse de Nozzi, GNU find l'expression régulière de ces 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 {} +

utilise une expression régulière pour correspondre à tous les fichiers se terminant soit .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 , vous avez besoin d'une approche légèrement différente, comme expliqué par

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top