Support navigation to get/set methods of a property delegate, if they are in the source code
This commit is contained in:
@@ -17,8 +17,12 @@
|
||||
package org.jetbrains.jet.lang.psi;
|
||||
|
||||
import com.intellij.lang.ASTNode;
|
||||
import com.intellij.psi.PsiReference;
|
||||
import com.intellij.psi.PsiReferenceService;
|
||||
import com.intellij.psi.impl.source.resolve.reference.ReferenceProvidersRegistry;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jet.lexer.JetTokens;
|
||||
|
||||
public class JetPropertyDelegate extends JetElementImpl {
|
||||
public JetPropertyDelegate(@NotNull ASTNode node) {
|
||||
@@ -30,6 +34,19 @@ public class JetPropertyDelegate extends JetElementImpl {
|
||||
return findChildByClass(JetExpression.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PsiReference getReference() {
|
||||
PsiReference[] references = getReferences();
|
||||
if (references.length == 1) return references[0];
|
||||
return null;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public PsiReference[] getReferences() {
|
||||
return ReferenceProvidersRegistry.getReferencesFromProviders(this, PsiReferenceService.Hints.NO_HINTS);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void accept(@NotNull JetVisitorVoid visitor) {
|
||||
visitor.visitPropertyDelegate(this);
|
||||
@@ -39,4 +56,10 @@ public class JetPropertyDelegate extends JetElementImpl {
|
||||
public <R, D> R accept(@NotNull JetVisitor<R, D> visitor, D data) {
|
||||
return visitor.visitPropertyDelegate(this, data);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public ASTNode getByKeywordNode() {
|
||||
//noinspection ConstantConditions
|
||||
return getNode().findChildByType(JetTokens.BY_KEYWORD);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user