我正在尝试制作一个合适的项目,比如你通过Kotlin向导时的设置,但我无法理解。
class SpigotKtWizard : ModuleBuilder() {
override fun setupRootModel(modifiableRootModel: ModifiableRootModel?) {}
override fun getModuleType(): ModuleType<*> {
return SpigotKtModuleType.instance
}
override fun createWizardSteps(wizardContext: WizardContext, modulesProvider: ModulesProvider): Array<ModuleWizardStep> {
return arrayOf(BuildOptionsStep())
}
override fun createProject(name: String?, path: String?): Project? {
val project = super.createProject(name, path) ?: return null
val d = project.baseDir.createChildData(this, "Test")
File(d.path).writeText("Testing boyyyy")
return project
}
}
这就是我目前所拥有的,而且我得到了这个:
但是其他项目(特别是我试图实现的相同设计)看起来更像是这样:
我错过了哪些文档页面?谢谢!
答案 0 :(得分:1)
在图2中,您正在显示&#34;项目&#34;而不是&#34;模块&#34;,请参阅the offical doc。
您可能希望实现DirectoryProjectGeneratorBase<YourSettingsBean>
并在plugin.xml中注册(例如,您可以参考this file my julia plugin)directoryProjectGenerator
。
在generateProject
的实现中,您可以使用以下命令创建文件,将文件设置为源root / test root / excluded root:
ApplicationManager.getApplication().runWriteAction {
val modifiableModel: ModifiableRootModel = ModifiableModelsProvider.SERVICE.getInstance().getModuleModifiableModel(module)
module.rootManager.modifiableModel.apply {
inheritSdk()
contentEntries.firstOrNull()?.apply {
addExcludeFolder(findOrCreate(baseDir, "out", module))
addSourceFolder(findOrCreate(baseDir, "src", module), false)
}
commit()
}
ModifiableModelsProvider.SERVICE.getInstance().commitModuleModifiableModel(modifiableModel)
}
这应该在文件BTW中遗漏。所以这不是你的错。但我建议你看一下现有的插件项目(比如上面提到的julia插件,the mathemetica plugin或the covscript plugin),它们对新来者非常有帮助。