Added quick documentation for declarations, in addition to references.
#KT-1035 fixed
This commit is contained in:
@@ -26,6 +26,7 @@ import com.intellij.psi.util.PsiTreeUtil;
|
|||||||
import com.intellij.xml.util.XmlStringUtil;
|
import com.intellij.xml.util.XmlStringUtil;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
|
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
|
||||||
|
import org.jetbrains.jet.lang.psi.JetDeclaration;
|
||||||
import org.jetbrains.jet.lang.psi.JetFile;
|
import org.jetbrains.jet.lang.psi.JetFile;
|
||||||
import org.jetbrains.jet.lang.psi.JetReferenceExpression;
|
import org.jetbrains.jet.lang.psi.JetReferenceExpression;
|
||||||
import org.jetbrains.jet.lang.resolve.BindingContext;
|
import org.jetbrains.jet.lang.resolve.BindingContext;
|
||||||
@@ -47,16 +48,24 @@ public class JetQuickDocumentationProvider extends AbstractDocumentationProvider
|
|||||||
else {
|
else {
|
||||||
ref = PsiTreeUtil.getParentOfType(originalElement, JetReferenceExpression.class);
|
ref = PsiTreeUtil.getParentOfType(originalElement, JetReferenceExpression.class);
|
||||||
}
|
}
|
||||||
if (ref != null) {
|
PsiElement declarationPsiElement = PsiTreeUtil.getParentOfType(originalElement, JetDeclaration.class);
|
||||||
BindingContext bindingContext = WholeProjectAnalyzerFacade.analyzeProjectWithCacheOnAFile((JetFile) ref.getContainingFile())
|
if (ref != null || declarationPsiElement != null) {
|
||||||
.getBindingContext();
|
BindingContext bindingContext = WholeProjectAnalyzerFacade.analyzeProjectWithCacheOnAFile(
|
||||||
DeclarationDescriptor declarationDescriptor = bindingContext.get(BindingContext.REFERENCE_TARGET, ref);
|
(JetFile) originalElement.getContainingFile()).getBindingContext();
|
||||||
if (declarationDescriptor != null) {
|
|
||||||
return render(declarationDescriptor, bindingContext, element, originalElement, mergeKotlinAndJava);
|
if (ref != null) {
|
||||||
|
DeclarationDescriptor declarationDescriptor = bindingContext.get(BindingContext.REFERENCE_TARGET, ref);
|
||||||
|
if (declarationDescriptor != null) {
|
||||||
|
return render(declarationDescriptor, bindingContext, element, originalElement, mergeKotlinAndJava);
|
||||||
|
}
|
||||||
|
if (declarationPsiElement != null) {
|
||||||
|
declarationPsiElement = BindingContextUtils.resolveToDeclarationPsiElement(bindingContext, ref);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
PsiElement psiElement = BindingContextUtils.resolveToDeclarationPsiElement(bindingContext, ref);
|
|
||||||
if (psiElement != null) {
|
if (declarationPsiElement != null) {
|
||||||
declarationDescriptor = bindingContext.get(BindingContext.DECLARATION_TO_DESCRIPTOR, psiElement);
|
DeclarationDescriptor declarationDescriptor = bindingContext.get(BindingContext.DECLARATION_TO_DESCRIPTOR,
|
||||||
|
declarationPsiElement);
|
||||||
if (declarationDescriptor != null) {
|
if (declarationDescriptor != null) {
|
||||||
return render(declarationDescriptor, bindingContext, element, originalElement, mergeKotlinAndJava);
|
return render(declarationDescriptor, bindingContext, element, originalElement, mergeKotlinAndJava);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user