#android #intellij-idea
#Android #intellij-идея
Вопрос:
Когда AndroidStudio перестала поддерживать файлы шаблонов проектов, они переключились на архитектуру плагинов. Я новичок в плагинах IntelliJ и хочу воссоздать шаблоны, которые я потерял.
Я пытаюсь использовать плагин для создания шаблона «Новый модуль». По сути, идея заключается в том, что пользователь щелкает правой кнопкой мыши по проекту приложения и выбирает «Новый общий модуль», и в проекте появится новый модуль со всеми моими пользовательскими файлами gradle и т. Д.
У меня возникли проблемы даже с созданием модуля в первую очередь. Вот «Рецепт» для плагина.
fun RecipeExecutor.MyModuleSetup(
moduleData: ModuleTemplateData,
packageName: String,
entityName: String,
moduleName: String,
) {
val (projectData) = moduleData
val project = projectInstance ?: return
addAllKotlinDependencies(moduleData)
try {
WriteCommandAction.writeCommandAction(project).compute(ThrowableComputable<Module, RuntimeException> {
val f: VirtualFile = createProjectSubFile(ModuleManager.getInstance(project).modules[0]).contentRoots[0].path, "$moduleName/$moduleName.iml")
val module = ModuleManager.getInstance(project).newModule(f.path, ModuleTypeId.JAVA_MODULE)
PsiTestUtil.addContentRoot(module, f.parent)
module
})
} catch (e: IOException) {
throw RuntimeException(e)
}
}
@Throws(IOException::class)
fun createProjectSubFile(projectPath: String?, relativePath: String?): VirtualFile {
val f = File(projectPath, relativePath)
FileUtil.ensureExists(f.getParentFile())
FileUtil.ensureCanCreateFile(f)
val created: Boolean = f.createNewFile()
if (!created amp;amp; !f.exists()) {
throw AssertionError("Unable to create the project sub file: " f.getAbsolutePath())
}
return LocalFileSystem.getInstance().refreshAndFindFileByIoFile(f)!!
}
Если я использую плагин для создания нового модуля с именем «mod1» в проекте под названием «app1», я надеюсь, что новый директор будет таким:
/Users/xxxxxx/Documents/tests/app1 / mod1
Вместо этого ничего не происходит! Должен ли я что-то написать, прежде чем оно появится?
Является ли это правильным подходом к созданию нового модуля в проекте с помощью плагина?
Спасибо, ребята!