Разработка плагина Intellij IDEA. Действие «создать класс kotlin»

Я хочу создать плагин для Intellij Idea . Мне нужно добавить действие ( AnAction ), которое создаст class в Kotlin (а не Java) в пользовательском package . У меня есть два quastions:

  • Как создать файлы с нужным расширением?
  • Или как создать файл с class kotlin (из некоторого базового класса) в пользовательском package ?

Один из возможных способов сделать это – использовать PsiFileFactory.createFileFromText() для создания файла Kotlin в памяти, а затем передать этот файл в качестве параметра PsiDirectory.add() чтобы сохранить его в файловой системе.

Хотя ответ yole верен, я хотел бы получить более подробную информацию о классе mistery 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);