I am developing a plugin to remove the sysout statements in an eclipse workspace. As part of this plugin I also want to provide the functionality to search and view the instances of sysout statements in eclipse search view. Is there a way to do this using the eclipse JDT API?
2 回答
我建议使用org.eclipse.jdt.core.search.SearchEngine
实例。特别是,您可能有兴趣调用org.eclipse.jdt.core.search.SearchEngine.search(SearchPattern, SearchParticipant[], IJavaSearchScope, SearchRequestor, IProgressMonitor)
.
查看该方法的 Javadoc。你需要为SearchPattern
你正在寻找的东西提供一个合适的。我会为System.out
andSystem.err
引用创建一个模式,而不是PrintStream.println
引用(因为这些可能是合法的)。
您也可以指定搜索范围。因此,它可以是整个工作区、一组项目,甚至是当前选择。
您可以使用抽象语法树 (AST) 和 Java 模型来修改您的代码。
为了保持抽象,您可以让用户在大纲视图(在本例中)中标记要搜索(和替换)的表达式System.out
。然后,您可以通过 访问所选内容IMember
,ISelection
并使用SearchEngine
它来查找对它的所有引用。收集完所有要更改的引用后,您可以使用 anASTParser
获取源文件的 AST。我建议使用ASTRewrite
来做(和收集)更改。
这里有两篇我觉得很有帮助的文章: