【问题标题】:Get PsiElement from Python class name in IntelliJ Platform SDK从 IntelliJ 平台 SDK 中的 Python 类名获取 PsiElement
【发布时间】:2018-07-24 16:57:32
【问题描述】:

我正在使用 IntelliJ 平台 SDK 创建一个 PyCharm/IntelliJ 插件,并且我正在创建一个 CompletionContributor 实现。在 PyCharm 中,通过打开“自动显示文档”,您可以显示正在完成的类的 pydoc,如下所示:

据我了解,要在自定义完成中执行此操作,我需要调用 LookupElement.withPsiElement 方法(尽管缺少文档,所以我可能是错的)。因此,我想尽可能轻松地通过名称获取特定类(或方法)的PsiElement

例如,如果我想复制上面的补全,我想为 Python 类 apache_beam.transforms.combiners.Count 获取 PsiElement。此类在另一个包 (apache-beam) 中,但出于此问题的目的,可以安全地假设用户已经安装了必要的包。

鉴于 PyCharm 已经做了一些非常相似的事情,似乎应该可以做我想做的事情。我以正确的方式接近这个吗?有没有方便的方法来做到这一点?

【问题讨论】:

    标签: pycharm intellij-plugin


    【解决方案1】:

    参见com.jetbrains.python.codeInsight.completion.PyClassNameCompletionContributor 类和com.jetbrains.python.psi.PyPsiFacade#createClassByQName 方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-03
      • 1970-01-01
      • 2014-01-22
      • 2012-07-25
      相关资源
      最近更新 更多