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) {
//...
}
并且UserInfo
class需要在航班上生成。
所以在代码生成之后,我应该在 class User
中有一个构造函数,并在 com.mycompany.UserInfo
.
中有一个单独的源文件
您可以使用VirtualFile.createChildData()
方法创建一个新的虚拟文件。
可以在 NewFileAction.createNewFile() 方法中找到 IDEA 本身如何创建文件的示例。
它调用了FileSystemTreeImpl.createNewFile()方法,调用了前面提到的createChildData()
方法。
我正在开发一个插件,它将在打开的 class 内部和外部生成代码。
我扩展了 GenerateMembersHandlerBase
class 以生成 class 的成员 - 它工作得很好。
现在我需要生成一个完整的 class(新源文件),它将被放置在我正在处理的 class 之外。
问题: 我找不到任何 API 可以让我创建新的 java 源文件。请提示我 API,或提示我 IntelliJ IDEA source code 中实现此类功能的位置。
更多上下文: 假设我们有 com.mycompany.User
class。我正在实现一个插件,它将使用下一种格式为其生成构造函数:
public User(UserInfo info) {
//...
}
并且UserInfo
class需要在航班上生成。
所以在代码生成之后,我应该在 class User
中有一个构造函数,并在 com.mycompany.UserInfo
.
您可以使用VirtualFile.createChildData()
方法创建一个新的虚拟文件。
可以在 NewFileAction.createNewFile() 方法中找到 IDEA 本身如何创建文件的示例。
它调用了FileSystemTreeImpl.createNewFile()方法,调用了前面提到的createChildData()
方法。