我正在创建一个IntelliJ插件,我正在使用JavaParser来实现我的一个功能。我的插件将允许用户单击方法旁边的装订线图标,并自动导航到与该方法相关的测试。
为了达到这个目的,我暂时使用过该行:
typeSolver.add(new JavaParserTypeSolver(new File("/home/webby/IdeaProjects/project00/src/")));
我的问题是我需要将给定模块的源文件夹传递给此类型解算器。有什么办法可以编程方式找到源文件夹吗?也许来自一个actionEvent?
我尝试过以下几点:
actionEvent.getData(PlatformDataKeys.PROJECT).getBasePath()
这给了我:'/ home / webby / IdeaProjects / project00 /'但是我很难看到我如何获得源文件夹?我觉得应该有一个相当直接的方法来使用IntelliJ的SDK,但我没有在文档中或在网上的任何其他地方找到任何东西。
欢迎任何和所有解决方案!
非常感谢, 詹姆斯
答案 0 :(得分:1)
您可以使用
ModuleRootManager.getInstance(module).getSourceRoots()
访问模块的源根。有关详细信息,请参阅IntelliJ SDK Docs。
BTW IntelliJ IDEA为Java文件的语法树提供特殊的API,它比外部JavaParsers更有效,更好地与其他IDE功能集成。
最好在a special forum上提出有关IntelliJ IDEA API的问题。