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

我想为Intellij IDEA创建一个插件。 我需要添加一个动作( AnAction ),它将在一个自定义packageKotlin中创建一个class (不是Java)。 我有两个问题:

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

一种可能的方法是使用PsiFileFactory.createFileFromText()来创建内存中的Kotlin文件,然后将该文件作为parameter passing给PsiDirectory.add()以将其保存到文件系统。

虽然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 //(ie if you post "com.some.package" - it does not create com/some/package folder) PsiDirectory newDirectory = psiDirectory.createSubdirectory(someDirectoryName);