我正在使用IntelliJ Platform SDK创建一个PyCharm / IntelliJ插件,并且正在创建一个CompletionContributor
实现。在PyCharm中,通过打开“自动显示文档”,可以显示正在完成的类的pydoc,如下所示:
据我了解,要在自定义补全中执行此操作,我需要调用LookupElement.withPsiElement
方法(尽管缺少文档,所以我可能是错的)。因此,我希望尽可能轻松地通过名称获取特定类(或方法)的PsiElement
。
例如,如果我想复制上面的完成内容,我想为Python类PsiElement
获取apache_beam.transforms.combiners.Count
。此类位于另一个软件包(apache-beam)中,但是出于此问题的目的,可以安全地假定用户已经安装了必要的软件包。
考虑到PyCharm已经做了非常相似的事情,看来应该可以做我想做的事情。我是否采用正确的方法?有方便的方法吗?
答案 0 :(得分:1)
请参见com.jetbrains.python.codeInsight.completion.PyClassNameCompletionContributor
类和com.jetbrains.python.psi.PyPsiFacade#createClassByQName
方法。