作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在 IntelliJ 上开发一个插件。我有这样的问题:
我们都知道,如果我们输入关键字,IntelliJ 将使用其代码完成功能为我们提供如图所示的提示。
现在我在 IntelliJ 上的插件中有一个 JTextField,它需要这样的功能:当我向 JTextField 中填充一些单词时,它会提供如图所示的代码完成提示。 IntelliJ 是否有一些开放的 api 来做到这一点?我做了很多工作来研究如何做到这一点。但一无所获。
最佳答案
对于JTextField,IntelliJ IDEA 没有这样的API。 IDEA的完成需要IDEA的Editor来工作。您可以使用 EditorFactory 创建一个(不要忘记在不需要后从同一个 EditorFactory 释放它)。如果您的编辑器是单行的,您可能会考虑使用 EditorTextField 来代替,这会让事情变得更容易。两者都有 getComponent() 方法,可以返回可以嵌入到 GUI 中的常用 Swing 组件。
然后您可以使用 LookupManager 方法手动显示/隐藏/处理弹出窗口,或者依靠通用的 IDE 完成机制自动完成许多事情。但后者需要您将编辑器的文档与 PsiFile(可能是纯文本文件,请参阅 PsiFileFactory.createFileFromText)相关联,并创建一个 CompletionContributor,它会根据文件中的位置提供建议变体。
关于java - 如何在 IntelliJ 插件上使用代码完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34878249/
我是一名优秀的程序员,十分优秀!