ReferenceContributor不适用于现有语言

时间:2017-06-05 20:09:48

标签: java intellij-idea intellij-plugin

我正在尝试从现有语言实现一个新的引用,以防PHP,但它甚至可以从调试器中获取。似乎它没有被初始化。

我的问题如下: Laravel框架实现了一个名为query scopes的概念。有了这个,当我像$user->filterAge()那样进行方法调用时,实际上,调用来自声明为User::scopeFilterAge()的定义(简要)。

我想做什么:我喜欢PhpStorm了解" filterAge"指向scopeFilterAge声明( ctrl +单击)。就像我在$user时所做的那样,例如:

我尝试了什么:我尝试按照reference contribuitor的插件开发文档进行操作。然后我使用新的扩展程序更新了我的plugin.xml。注意:我在同一文件上的检查或完成提供者工作正常。我的问题是这个参考贡献者对现有语言的正确看法。

我的 plugin.xml

<extensions defaultExtensionNs="com.intellij">
    <psi.referenceContributor language="PHP"
                              implementation="[...].ScopeReferenceContribuitor"/>
</extensions>

并执行 ScopeReferenceContribuitor.java

public class ScopeReferenceContribuitor extends PsiReferenceContributor {
    @Override
    public void registerReferenceProviders(PsiReferenceRegistrar registrar) {
        // Breakpoint:
        [...]
    }
}

这个断点不起作用,从来没有被称为,没有。即使我强行出错(如NPE),它也不会起作用。

我原谅什么?

This topic似乎解决了我的问题,但我已经测试了,出于某种原因它只是不在断点上调用调试器。

我也是commited my code example

0 个答案:

没有答案