日食中的搜索引擎

时间:2013-05-21 02:09:15

标签: eclipse search eclipse-jdt

我正在开发一个插件来删除eclipse工作区中的sysout语句。作为此插件的一部分,我还想提供在eclipse搜索视图中搜索和查看sysout语句实例的功能。有没有办法使用eclipse JDT API来做到这一点?

2 个答案:

答案 0 :(得分:1)

您可以使用抽象语法树(AST)和Java模型来修改代码。

为了保持抽象,您可以让用户在大纲视图中标记要搜索(和替换)的表达式(在本例中为System.out)。然后,您可以通过IMember访问所选ISelection并使用SearchEngine查找对其的所有引用。收集了要更改的所有引用后,可以使用ASTParser获取源文件的AST。我建议使用ASTRewrite来做(并收集)更改。

以下是我发现非常有用的两篇文章:

答案 1 :(得分:1)

我建议使用org.eclipse.jdt.core.search.SearchEngine实例。特别是,您有兴趣调用org.eclipse.jdt.core.search.SearchEngine.search(SearchPattern, SearchParticipant[], IJavaSearchScope, SearchRequestor, IProgressMonitor)

查看该方法的Javadoc。您需要为您要查找的内容提供正确的SearchPattern。我会为System.outSystem.err引用创建一个模式,而不是PrintStream.println引用(因为它们可能是合法的)。

您也可以指定搜索范围。因此,它可以是整个工作区,一组项目,甚至是当前的选择。