我正在使用IntelliJ上的插件。 我有这样的问题:
我们知道,如果我们输入一个关键词,IntelliJ将使用其代码完成功能来提供我们的提示,如图所示。
现在我的IntelliJ插件中有一个JTextField需要这样的功能:当我向JTextField填写一些单词时,它会提供代码完成提示,如图所示。 IntelliJ有一些开放的API来做到这一点吗?我做了很多工作来研究如何做到这一点。但没有任何收获。
先谢谢
答案 0 :(得分:1)
对于JTextField,IntelliJ IDEA没有这样的API。 IDEA的完成需要IDEA的编辑才能工作。您可以使用EditorFactory创建一个(并且不要忘记在不需要后从同一个EditorFactory中释放它)。如果您的编辑器是单行的,您可以考虑使用EditorTextField,这样可以简化操作。两者都有getComponent()方法,它们返回可嵌入GUI的常用Swing组件。
然后,您可以使用LookupManager方法手动显示/隐藏/处理弹出窗口,或者依赖通用IDE完成机制,它将自动执行许多操作。但后者要求您将编辑器的文档与PsiFile(可能是纯文本文件,请参阅PsiFileFactory.createFileFromText)相关联,并创建一个CompletionContributor,根据文件中的位置提供建议变体。