找到很长的评论

时间:2011-10-18 17:08:42

标签: java comments

我必须维护一个大型旧项目项目,我的先行者(由于缺乏版本控制)已将大部分代码转换为注释。 现在我们已经拥有了版本控制中的所有内容,我觉得我们不再需要这些注释了。 无论如何,这些评论中的代码已经腐烂了。

我想找到最长的评论。如果有一种方法可以让我拥有超过20个连续注释行的文件,那就太好了。 据我所知,只有//被使用过。找不到/* */是不必要的(可能甚至是有害的,因为它会发现所有腐烂的javadoc ......叹息)。

3 个答案:

答案 0 :(得分:1)

如何:

grep -ERn '^[[:space:]]*//' root_directory

-E使用'扩展'正则表达式

-R使其递归目录

-n打印带有行号的电影号

然后您可以轻松处理此列表以查找连续匹配 - 只需查找每行输出行数增加一个的块。

这假设你不想匹配这样的行:

int x = foo; // some comment

但只有完全评论的行:

// this is a comment

<强>更新

这是一个简短的Python脚本,用于处理上述grep

的输出
import sys

filenames_of_interest = set()
filename = None
prev_line_num = 0
comment_count = 0
for line in sys.stdin.readlines():
        this_filename, line_num, _ = line.split(':',2)
        line_num = int(line_num)
        if this_filename != filename:
                comment_count = 0
                filename = this_filename
        elif line_num != prev_line_num + 1:
                comment_count = 0
        prev_line_num = line_num
        comment_count += 1
        if comment_count > 20:
                filenames_of_interest.add(filename)

print "files with blocks of comments:"
for i in filenames_of_interest:
        print ' ', i

它不会正确处理名称中冒号的文件,但如果这是一个问题,不应该很难修改以处理它。

答案 1 :(得分:0)

我还没有尝试过,但Sonar看起来很有希望。

编辑:似乎安装很痛苦。

答案 2 :(得分:0)

我会这样做:

每当我更新某个特定文件时,我会在办理登机手续之前删除这些评论。以这种方式“我会一个接一个地离开露营地更清洁”。

相信我!代码将在3个月内更清洁。