在Eclipse中跨文件搜索注释掉的代码

时间:2010-11-10 11:57:37

标签: java eclipse search comments code-analysis

有没有快速的方法可以在Eclipse中查找Java文件中所有已注释掉的代码? “搜索”中的任何选项,或者任何可以执行此操作的加载项都可以使用?

它应该只能找到被注释掉的代码,而不能找到普通的注释。

6 个答案:

答案 0 :(得分:18)

在Eclipse中,我只是在打开正则表达式复选框的情况下进行文件搜索:

(/\*.*;.*\*/)|(//.*;)

它会在

中找到分号

//这些;

和/ *这些; * /

适合我。

答案 1 :(得分:3)

答案 2 :(得分:1)

您可以使用任务标记标记自己的注释代码。您可以在Eclipse中创建自己的任务标记。

从菜单中,转到窗口 - >喜好。在“首选项”对话框中,转到“常规” - >编辑 - >结构化文本编辑器 - >任务标签。

添加适当的任务标记,例如COMMENTED。将优先级设置为低。

然后,您注释掉的任何代码,都可以使用COMMENTED任务标记进行标记。这些任务标记的列表及其位置显示在“任务”视图中。

答案 3 :(得分:0)

@Jorn说:

  

我认为[ OP ]希望找到已注释掉的代码,而不是具有注释的代码。

如果打算找到注释掉的代码,那么我认为一般情况下都不可能。问题是无法区分作为代码或伪代码编写的注释和注释掉的代码。做出这种区分需要人类的智慧。

现在,IDE通常具有“切换注释”功能,以特定方式注释代码。编写一个与a生成的样式相匹配的工具/插件是可行的 特别的IDE。但这可能还不够好,特别是因为重新格式化代码通常会消除使注释掉的代码可识别的特性。

答案 4 :(得分:0)

如果问题是找到注释掉的代码,那么需要找到一种方法来查找注释,以及确定注释是否包含代码的方法。

执行此操作的一种简单方法是搜索包含类似代码的注释。我很想去寻找包含“;”的评论字符(或其他一些罕见的指示符,如“=”);如果有任何有趣的注释代码都不包含这个,并且根据我的评论经验,我很难看到很多人写的包含这个。对此进行正则表达式搜索应该非常简单,即使它拾取了一些额外的误报(例如//在字符串文字中)。

更复杂的方法是使用Java词法分析器或解析器。如果你有一个词法分析器在令牌处返回注释(并非所有人都这样做,Java编译器对注释不感兴趣),那么你可以简单地扫描lexemes以获得注释并进行上面描述的分号检查。使用这种方法,你不会在字符串文字中得到任何误报点评。

如果您有重新设计解析器,它会将注释作为AST的一部分进行捕获(例如我们的SD Java Front End), 您可以机械扫描解析树以获取注释,将注释上下文反馈给解析器 看看内容是否像代码一样,并报告任何通过该测试模块的一些大小依赖的错误率 (15个字符中的10个错误意味着“真的是评论”)。现在,“类似代码”的测试需要 重新设计解析器愿意识别(Java)语言的任何子串。 我们使用前端语法的DMS Software Reengineering Toolkit实际可以做到这一点,因为它愿意为任何语言(非)终端开始解析, 这个问题是“你能找到消耗字符串的(非)终端的序列吗?”。

词法分析器和解析器方法分别是小型和大型的大锤。如果OP只打算一次,他可以坚持手动正则表达式搜索。如果问题是反复审核代码库(大型组织需要),他需要一个可以定期运行的工具。

答案 5 :(得分:-1)

您可以在Eclipse中进行搜索。

您需要搜索的只有/*//

但是,您只能找到包含该表达式的文件,而不是我认为您所追求的实际内容。

但是,如果您使用Linux,则可以轻松获得所有评论。