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

IntelliJ Plugin Development: how to generate a new source file

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

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

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

问题: 我找不到任何 API 可以让我创建新的 java 源文件。请提示我 API,或提示我 IntelliJ IDEA source code 中实现此类功能的位置。

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

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

并且UserInfoclass需要在航班上生成。 所以在代码生成之后,我应该在 class User 中有一个构造函数,并在 com.mycompany.UserInfo.

中有一个单独的源文件

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

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

它调用了FileSystemTreeImpl.createNewFile()方法,调用了前面提到的createChildData()方法。