IntelliJ IDEA中创建一个自定义项目向导

11 篇文章 0 订阅

 

Project Wizard - Adding Support for Creating New Project Types | IntelliJ Platform Plugin SDK

参考工程 

https://github.com/bulenkov/RedlineSmalltalk

这是一个为IntelliJ IDEA开发的插件,用于支持Redline Smalltalk环境。项目由GitHub用户bulenkov创建和维护。

RedlineSmalltalk插件提供了对Redline Smalltalk语言的支持,包括但不限于语法高亮、代码导航、调试等功能。Redline Smalltalk是一个基于Redline VM的Smalltalk环境,它旨在提供一个现代化的、轻量级的Smalltalk实现。

根据您提供的链接内容,要在IntelliJ IDEA中创建一个自定义项目向导以添加对新项目类型的支持,您需要实现一些特定的模块类型(module type),并将其附加到项目上。这通常通过扩展`ModuleType`类来完成,以提供对特定工具和技术的支持。

以下是实现自定义项目向导的基本步骤:

1. **实现新的模块类型**:
   - 通过在`plugin.xml`中添加扩展来创建一个新的模块类型。
   - 自定义模块类型应该扩展`ModuleBuilder`类,并在`plugin.xml`中进行注册。
   - 可以参考[RedLine SmallTalk插件](https://github.com/bulenkov/RedlineSmalltalk)的实现,了解如何注册和实现自定义模块类型。

2. **实现模块构建器**:
   - 扩展`ModuleBuilder`类,并重写`setupRootModel`和`getModuleType`方法。
   - 参考[JavaModuleBuilder](https://github.com/JetBrains/intellij-community/tree/idea/233.14808.21/java/openapi/src/com/intellij/ide/util/projectWizard/JavaModuleBuilder.java)以更好地理解如何实现模块构建器。
   - 如果您的模块类型基于Java模块并支持Java,只需扩展`JavaModuleBuilder`即可,无需注册扩展点。

3. **实现模块构建器监听器**:
   - 模块构建器监听器在新模块创建时反应,无论是作为项目创建过程的一部分,还是作为向现有项目添加新模块。
   - 实现`ModuleBuilderListener.moduleCreated(Module)`以在模块创建后提供特定的行为。

4. **添加新的向导步骤**:
   - 通过覆盖`AbstractModuleBuilder.createWizardSteps(WizardContext, ModulesProvider)`来向模块向导添加新步骤。
   - 如果该方法返回一个非空的`ModuleWizardStep`对象数组,新步骤将以它们的索引顺序显示在创建新模块时。

5. **facet**:
   - 在IntelliJ IDEA中,facet是存储多种模块特定设置的方式,例如使语言支持或框架在某个给定模块中可用。
   - 要更好地理解facet,可以从最终用户的角度查看[Facet](https://plugins.jetbrains.com/docs/intellij/facet.html)文档部分。

6. **实现项目结构检测器**:
   - 要支持从现有源导入项目时创建您的模块,扩展`ProjectStructureDetector`。
   - 实现`ProjectStructureDetector.detectRoots()`来检测您的模块支持的文件。
   - 参考[Smalltalk项目结构检测器](https://github.com/bulenkov/RedlineSmalltalk/blob/master/src/st/redline/smalltalk/module/RsProjectStructureDetector.java)的实现示例。

 

  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值