ReferenceContributor doesn't catch needed

Hi. I'm trying to implement this issue( as a plugin.

And CompletionContributor works ok.

public class TargetCompletionContributor extends CompletionContributor
public TargetCompletionContributor()
extend(CompletionType.BASIC, PlatformPatterns.psiElement(PhpTokenTypes.IDENTIFIER).withParent(MethodReference.class).withLanguage(PhpLanguage.INSTANCE), new TargetCompletionProvider());

Little proof -
But when I trying to implement ReferenceContributor for this it doesn't catch needed PsiElements using the same condition

public class TargetReferenceContributor extends PsiReferenceContributor
public void registerReferenceProviders(@NotNull PsiReferenceRegistrar registrar)
registrar.registerReferenceProvider(PlatformPatterns.psiElement(PhpTokenTypes.IDENTIFIER).withParent(MethodReference.class).withLanguage(PhpLanguage.INSTANCE), new TargetReferenceProvider());

Do I miss something? Or don't understand? Or standard ReferenceProvider for methods overrides it?
P.S. I added they both to plugin.xml:

<extensions defaultExtensionNs="com.intellij">
<completion.contributor language="PHP" implementationClass="ru.adelf.idea.trait.TargetCompletionContributor"/>
<psi.referenceContributor implementation="ru.adelf.idea.trait.TargetReferenceContributor"/>
Comment actions Permalink

Hello Adel,

here is a note from tutorial:

10.6. Define a reference contributor

A reference contributor allows you to provide references from elements in other languages such as Java to elements in your language. 


here is a note I copied from elsewhere but can not find a source for:

For references within the same language,
implement PsiElement.getReferences() in your PsiElement implementation.

Comment actions Permalink

I use standard PhpStorm PsiElements... not my own. I think getReferences() already implemented there.

Comment actions Permalink

what happens if you remove 


from plugin.xml?
Comment actions Permalink

The same thing. Autocompletion for @target class methods works. But IDEA doesn't have reference from this method calls to method declarations(which I want to implement).

Comment actions Permalink

I checked Community code but do not see PHP there. Is there a PHP plugin? 

if there is, you'd need to figure out how it implements references.

or hopefully someone else replies if they can help.


Please sign in to leave a comment.