我正在尝试从现有语言实现一个新的引用,以防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似乎解决了我的问题,但我已经测试了,出于某种原因它只是不在断点上调用调试器。