2009-07-30 3 views
1

Dans une solution avec beaucoup de fichiers et de projets - comment trouver tous les fichiers complètement commentés? Je suppose que chaque ligne de code commence par // (EDIT: ou est vide) dans de tels fichiers.Trouver des fichiers complètement commentés

J'utilise VS 2008, C#, ReSharper est disponible.
Je sais que, normalement ces fichiers ne devrait pas exister - c'est ce une source sûre est pour ...

+0

Dans votre projet, il n'y a aucune chance que des blocs de code soient mis en commentaire avec:/* * /? – JeffH

+0

Il y a, mais normalement tout le monde utilise ctrl + a, bloc de commentaire - ce qui aboutit à ... – tanascius

Répondre

3

Pour trouver tous les fichiers et sous le répertoire courant dans lequel toutes les lignes commençant par « // »:

 
find . -type f -exec sh -c 'grep -vq "^//" {} || echo {}' \; 

Notez que ce rapport fichiers vides.

L'argument de grep peut facilement être étendu pour tenir compte des espaces, ou généralisé pour correspondre à une regex arbitraire.

+0

egrep -vq "(^ // |^$)" fait le travail - merci pour cette solution facile – tanascius

0

Eh bien, vous pourriez écrire un programme (probablement une application console) pour marcher récursive le répertoire et l'arbre fichier. Lisez dans tous les fichiers .cs et vérifiez chaque ligne pour voir si ses premiers caractères non-espace et non-tab sont "//". Si vous vouliez vraiment vous amuser, vous pouviez compter le nombre total de lignes et de lignes avec "//" et afficher les pourcentages pour que vous puissiez capturer les fichiers qui ne contenaient pas toutes les lignes. Vous aurez juste besoin de comprendre un peu à propos de System.IO pour obtenir les fichiers et les fonctions de chaîne pour rechercher les caractères que vous recherchez. Cela devrait le couvrir.

+0

J'espérais pouvoir m'en sortir sans me coder:/ – tanascius

0

Cela devrait être proche de ce que vous cherchez: http://www.codeproject.com/KB/cs/csharplinecounter.aspx

Rechercher la méthode dans le projet qui détermine si une ligne est commenté ou non, et vous pouvez l'utiliser pour construire un comptage, etc.

+0

Bonne idée, j'ai fait un essai, mais arrêté maintenant .. Le code est très mauvais et en quelque sorte il ne compte pas correctement - il n'a pas pu trouver un fichier commenté que j'ai préparé. Je vais essayer de nouveau, plus tard. – tanascius

1

Il n'y a aucun moyen d'y parvenir avec un style de recherche simple avec les composants que vous avez mentionnés. Faire ceci exigerait un peu d'interprétation sur le dossier mais pourrait être fait avec un script assez simple.

Il semble que vous recherchiez des fichiers sans code bien que des fichiers avec tous les commentaires. Par exemple, s'il y a 1000 lignes où 900 sont commentées et 100 sont vides, cela semble répondre à vos critères.

Le script devrait être assez simple à écrire, mais vous devez regarder dehors pour les cas étranges suivants

  • bloquer les commentaires
  • si les blocs qui sont toujours faux. Par exemple #if 0

  • lignes vides
+0

Vous avez raison, je dois aussi prendre soin des lignes vides. J'espérais obtenir une solution simple comme le Find-Dialog:/Mais il n'y a pas comme il semble ... – tanascius