Si le problème consiste à trouver du code commenté, il est nécessaire de trouver des commentaires et de décider si un commentaire peut contenir du code.
Une manière simple de faire ceci est de rechercher un commentaire qui contient des choses semblables à du code. Je serais tenté de chasser pour des commentaires contenant un ";" caractère (ou un autre indicateur rare tel que "="); il sera assez difficile d'avoir un code commenté intéressant qui ne contient pas cela et dans mon expérience avec les commentaires, je ne vois pas beaucoup de gens qui écrivent qui contiennent cela. Une recherche d'expression rationnelle pour ceci devrait être assez simple, même si elle a ramassé quelques faux positifs supplémentaires (par exemple // dans un littéral de chaîne).
Une manière plus sophistiquée d'y parvenir consiste à utiliser un lexeur ou un analyseur Java.Si vous avez un lexer qui renvoie des commentaires sur les jetons (ce qui n'est pas le cas de tous, les compilateurs Java ne s'intéressent pas aux commentaires), vous pouvez simplement analyser les lexèmes pour un commentaire et effectuer la vérification des points-virgules ci-dessus. Vous n'obtiendrez aucun résultat positif faux pour le commentaire comme les choses dans les littéraux de chaîne avec cette approche.
Si vous avez un analyseur de réingénierie qui capture des commentaires dans le cadre de l'AST (comme notre SD Java Front End), vous pouvez mécaniquement analyser l'arbre d'analyse syntaxique des commentaires, nourrir le contexte de commentaire retour à l'analyseur à voir si le contenu est de type code, et signaler tout ce qui passe ce test modulo un certain taux d'erreur de taille-depedent (10 erreurs dans 15 caractères implique "vraiment un commentaire"). Maintenant, le test de type "code" nécessite l'analyseur de réingénierie être prêt à reconnaître sous-chaîne du langage (Java). Notre DMS Software Reengineering Toolkit sous-jacent au Java Front End peut en fait le faire, en utilisant l'accès à la grammaire enterrée dans le front end, car il est prêt à commencer une analyse pour tout langage (non) terminal, et cette question est "pouvez-vous trouver un séquuité des (non) terminaux qui consomment la chaîne? ".
Les approches lexer et parser sont respectivement de petites et grandes masses. Si OP ne le fait qu'une seule fois, il peut s'en tenir à la recherche manuelle de regex. Si le problème est de vérifier la base de code à plusieurs reprises (nécessaire dans les grandes organisations), il voudrait un outil qui peut être exécuté sur une base régulière.
Je doute que vous trouverez quelque chose comme ça. Comme indiqué, il pourrait y avoir un plugin qui le fait, mais aucun que j'ai rencontré. –
Votre question n'est pas claire. Trouver des commentaires est facile: recherchez "/ *" ou "//". Et puisque les commentaires n'ont pas de relation formelle avec le code, quand est-ce qu'un commentaire "sur" le code à proximité, et quand est-ce juste un commentaire ("un sonnet à ...")? Qu'est-ce que tu veux vraiment faire? –
Je pense qu'il veut trouver le code qui est commenté, pas le code qui a un commentaire. – Jorn