IntelliJ插件开发:如何生成新的源文件

时间:2018-01-31 21:15:39

标签: java intellij-idea jetbrains-ide intellij-plugin

我正在开发一个插件,它会在打开的类的内部和外部生成代码。

我扩展了GenerateMembersHandlerBase类来生成类的成员 - 它工作得很好。

现在我需要生成一个完整的类(新的源文件),它将放在我正在处理的类之外。

问题:我找不到任何允许我创建新的java源文件的API。请提示我API,或者提示我IntelliJ IDEA source code中实现此类事情的地方。

更多背景信息:假设我们有com.mycompany.User课程。我正在实现一个插件,它将使用下一种格式生成一个构造函数:

public User(UserInfo info) {
    //...
}

需要在航班上生成UserInfo课程。 所以在代码生成之后,我应该在类User中有一个构造函数,并为com.mycompany.UserInfo分隔源文件。

1 个答案:

答案 0 :(得分:2)

您可以使用dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(60 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ //do code stuff here }); 方法创建新的虚拟文件。

可以在NewFileAction.createNewFile()方法中找到IDEA本身如何创建文件的示例。

它正在调用调用上述VirtualFile.createChildData()方法的FileSystemTreeImpl.createNewFile()方法。