Intellij IDEA插件开发。行动"创建kotlin类"

时间:2016-12-07 14:22:21

标签: intellij-idea kotlin intellij-plugin

我想为 Intellij IDEA 创建一个插件。我需要添加一个操作(AnAction),该操作将在自定义class中的 Kotlin (非Java)中创建package。我有两个问题:

  • 如何创建具有所需扩展名的文件?
  • 或如何在自定义class中使用 Kotlin package(来自某个基类)创建文件?

2 个答案:

答案 0 :(得分:2)

实现此目的的一种可能方法是使用PsiFileFactory.createFileFromText()创建内存中的Kotlin文件,然后将该文件作为参数传递给PsiDirectory.add()以将其保存到文件系统。

答案 1 :(得分:1)

虽然yole的回答是正确的,但我希望看到更多有关错误的PsiDirectory类的细节。

//get directory by VirtualFile
PsiDirectory directory = PsiManager.getInstance(project).findDirectory((getKotlinSourceDir(project))

获取kotlin来源目录:

private VirtualFile getKotlinSourceDir(Project project) {
    return project.getBaseDir().findChild("src").findChild("main").findChild("kotlin");
}

而且你可以创建子目录:

//someDirectoryName it is simple name 
//(i.e if you post "com.some.package" - it does not create com/some/package folder)
PsiDirectory newDirectory = psiDirectory.createSubdirectory(someDirectoryName);