如何在IntelliJ插件上使用代码完成?

时间:2016-01-19 13:37:27

标签: java intellij-idea code-completion intellij-plugin

我正在使用IntelliJ上的插件。 我有这样的问题:

我们知道,如果我们输入一个关键词,IntelliJ将使用其代码完成功能来提供我们的提示,如图所示。

enter image description here

现在我的IntelliJ插件中有一个JTextField需要这样的功能:当我向JTextField填写一些单词时,它会提供代码完成提示,如图所示。 IntelliJ有一些开放的API来做到这一点吗?我做了很多工作来研究如何做到这一点。但没有任何收获。

先谢谢

1 个答案:

答案 0 :(得分:1)

对于JTextField,IntelliJ IDEA没有这样的API。 IDEA的完成需要IDEA的编辑才能工作。您可以使用EditorFactory创建一个(并且不要忘记在不需要后从同一个EditorFactory中释放它)。如果您的编辑器是单行的,您可以考虑使用EditorTextField,这样可以简化操作。两者都有getComponent()方法,它们返回可嵌入GUI的常用Swing组件。

然后,您可以使用LookupManager方法手动显示/隐藏/处理弹出窗口,或者依赖通用IDE完成机制,它将自动执行许多操作。但后者要求您将编辑器的文档与PsiFile(可能是纯文本文件,请参阅PsiFileFactory.createFileFromText)相关联,并创建一个CompletionContributor,根据文件中的位置提供建议变体。