Fix check in JetQuickDocumentationProvider#isKotlinDeclaration

Always return true if we navigated to JetElement
This commit is contained in:
Pavel Talanov
2013-08-29 20:14:08 +04:00
committed by Pavel V. Talanov
parent 1072b1943f
commit e29c593c58
@@ -19,7 +19,6 @@ package org.jetbrains.jet.plugin;
import com.google.common.base.Predicate;
import com.intellij.lang.documentation.AbstractDocumentationProvider;
import com.intellij.lang.java.JavaDocumentationProvider;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.PsiElement;
@@ -87,7 +86,7 @@ public class JetQuickDocumentationProvider extends AbstractDocumentationProvider
@NotNull DeclarationDescriptor declarationDescriptor, @NotNull BindingContext bindingContext,
PsiElement element, PsiElement originalElement, boolean mergeKotlinAndJava) {
String renderedDecl = DescriptorRenderer.HTML.render(declarationDescriptor);
if (isKotlinDeclaration(declarationDescriptor, bindingContext, originalElement.getProject())) {
if (isKotlinDeclaration(declarationDescriptor, bindingContext, element)) {
KDoc comment = findElementKDoc(element);
if (comment != null) {
renderedDecl = renderedDecl + "<br/>" + kDocToHtml(comment);
@@ -105,16 +104,19 @@ public class JetQuickDocumentationProvider extends AbstractDocumentationProvider
return null;
}
private static boolean isKotlinDeclaration(DeclarationDescriptor descriptor, BindingContext bindingContext, Project project) {
private static boolean isKotlinDeclaration(
DeclarationDescriptor descriptor,
BindingContext bindingContext,
PsiElement element
) {
if (JetLanguage.INSTANCE == element.getLanguage()) return true;
PsiElement declaration = BindingContextUtils.descriptorToDeclaration(bindingContext, descriptor);
if (declaration == null) {
BuiltInsReferenceResolver libraryReferenceResolver = project
.getComponent(BuiltInsReferenceResolver.class);
BuiltInsReferenceResolver libraryReferenceResolver = element.getProject().getComponent(BuiltInsReferenceResolver.class);
Collection<PsiElement> elements = libraryReferenceResolver.resolveBuiltInSymbol(descriptor);
return !elements.isEmpty();
}
if (JetLanguage.INSTANCE == declaration.getLanguage()) return true;
ClsClassImpl clsClass = PsiTreeUtil.getParentOfType(declaration, ClsClassImpl.class);
if (clsClass == null) return false;
VirtualFile file = clsClass.getContainingFile().getVirtualFile();