插件开发:如何将参数化内容插入到编辑器中,类似于实时模板?

时间:2016-02-29 00:10:25

标签: intellij-idea intellij-plugin

我正在开发一个特定于域的自定义语言作为Intellij IDEA插件。

我创建了一个允许用户修复代码中的错误的意图。

我可以在编辑器中对内容进行更新,然后将插入符放在我希望用户添加一些文本的位置。但是,用户需要添加文本的位置有多个,我希望自动将插入符号放在所有这些位置,一个接一个,类似于使用实时模板功能时的操作,添加实时带有参数的模板。

使用实时模板时,它看起来像这样:

注意红框。插入符号自动到达,当我完成输入并单击输入时 - 它移动到下一个参数并且红色框出现在那里。

请注意,在我实现文本的场景中,文本是完全动态的。如果可以动态创建临时的临时实时模板,那么这可能是一个可行的解决方案,但我需要另一种方法来控制这种机制。

有谁知道怎么把它拉下来?

1 个答案:

答案 0 :(得分:0)

可以动态创建实时模板。最方便的API是TemplateBuilder,请参阅其javadoc。如果您没有可用的PSI,可以通过仔细构建TemplateImpl对象然后使用TemplateManager#startTemplate手动组装模板。 IntelliJ IDEA社区版代码库中有两个案例。

相关问题