gpt4 book ai didi

intellij-idea - 以编程方式创建 IntelliJ 模块

转载 作者:行者123 更新时间:2023-12-02 13:38:39 31 4
gpt4 key购买 nike

我正在尝试制作一个合适的项目,例如当您通过 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
}

}

这是我目前拥有的,我得到了这个:



但其他项目(特别是我试图实现的相同设计)看起来更像这样:



文档中是否有我错过的页面?

最佳答案

在图 2 中,您显示的是“项目”而不是“模块”,请参阅 the offical doc .

您可能想要实现 DirectoryProjectGeneratorBase<YourSettingsBean>并注册一个(例如,您可以引用 this file my julia plugin )directoryProjectGenerator在 plugin.xml 中。

在您的 generateProject 的实现中,您可以使用以下方法创建文件,将文件设置为源根/测试根/排除根:

    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)
}

这应该在文档中丢失,顺便说一句。所以这不是你的错。但我建议你看看现有的插件项目(比如上面提到的 julia 插件, the mathemetica pluginthe covscript plugin),它们对新手非常有帮助。

关于intellij-idea - 以编程方式创建 IntelliJ 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49710209/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com