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

Sas*_*ota 2 java jetbrains-ide intellij-idea intellij-plugin

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

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

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

问题:我找不到任何允许我创建新 Java 源文件的 API。请提示我 API,或提示我IntelliJ IDEA 源代码中实现此类内容的位置。

更多上下文:假设我们有com.mycompany.User课。我正在实现一个插件,它将为它生成一个具有下一个格式的构造函数:

public User(UserInfo info) {
    //...
}
Run Code Online (Sandbox Code Playgroud)

并且UserInfo类需要在飞行中生成。所以在代码生成之后,我应该在类中有一个构造函数,User并为com.mycompany.UserInfo.

Arg*_*b32 5

您可以使用VirtualFile.createChildData()方法创建一个新的虚拟文件。

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

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