我正在开发一个插件来删除eclipse工作区中的sysout语句。作为此插件的一部分,我还想提供在eclipse搜索视图中搜索和查看sysout语句实例的功能。有没有办法使用eclipse JDT API来做到这一点?
答案 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.out
和System.err
引用创建一个模式,而不是PrintStream.println
引用(因为它们可能是合法的)。
您也可以指定搜索范围。因此,它可以是整个工作区,一组项目,甚至是当前的选择。