8

当我使用某些类型的文件时,例如:Java 文件、HTML 文件或 Jasmine 测试文件,我可以使用Code > Generate选项生成一些有用的代码片段,例如:

  • 如果我正在使用 Java 文件,则Code > Generate允许我插入 getter、setter、构造函数等
  • 如果我正在使用 HTML 文件,则Code > Generate允许我插入 XML 标记
  • 如果我正在使用 Jasmine 文本文件,则Code > Generate允许我插入测试套件的脚手架或单个测试用例

我想知道是否(以及如何)我可以添加自己的“生成器”。我知道我可以使用实时模板,但我喜欢这样一个事实,它Code > Generate给了我所有可用生成器的快速列表。

4

1 回答 1

10

是的,你可以通过编写一个 IntelliJ 插件并扩展这个类来做到这一点:

com.intellij.openapi.actionSystem.Action

如果您创建一个 intelliJ 插件项目(只需 googleintellij plugin development以获取有关如何开始的信息),在项目源代码树中的某处按 alt-enter 并选择Action,您将看到一个对话框,允许您配置您的操作应出现的位置。

您想将它与另一个已经存在的动作相关联,例如在它的正下方。在您的情况下 - 查看名为GenerateGroup (Generate).

在您的 plugin.xml 中以这种方式定义您的操作后,在沙箱中构建并运行您的插件。

现在,当您的操作被触发时,AnActionEvent将触发包含对您需要的所有必要信息(当前项目、文件、光标在文件中的位置、psi 树等)的引用。

尝试让这个工作到目前为止并返回任何具体问题。

祝你好运!

于 2013-09-04T09:28:23.040 回答