From e556ac091d995b1ebe1ee4031da69ff0d6684be0 Mon Sep 17 00:00:00 2001 From: Anton Lobov Date: Wed, 10 Apr 2019 10:45:31 +0200 Subject: [PATCH] json: restore documentation for file/pointer references --- .../jsonSchema/impl/JsonPointerReferenceProvider.java | 2 +- .../impl/JsonSchemaDocumentationProvider.java | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/json/src/com/jetbrains/jsonSchema/impl/JsonPointerReferenceProvider.java b/json/src/com/jetbrains/jsonSchema/impl/JsonPointerReferenceProvider.java index 439d67877295..99ee8be8f63b 100644 --- a/json/src/com/jetbrains/jsonSchema/impl/JsonPointerReferenceProvider.java +++ b/json/src/com/jetbrains/jsonSchema/impl/JsonPointerReferenceProvider.java @@ -224,7 +224,7 @@ public class JsonPointerReferenceProvider extends PsiReferenceProvider { } } - private static class JsonPointerReference extends JsonSchemaBaseReference { + static class JsonPointerReference extends JsonSchemaBaseReference { private final String myFullPath; JsonPointerReference(JsonValue element, TextRange textRange, String curPath) { diff --git a/json/src/com/jetbrains/jsonSchema/impl/JsonSchemaDocumentationProvider.java b/json/src/com/jetbrains/jsonSchema/impl/JsonSchemaDocumentationProvider.java index 133b5cdcb334..6d9f00051bcb 100644 --- a/json/src/com/jetbrains/jsonSchema/impl/JsonSchemaDocumentationProvider.java +++ b/json/src/com/jetbrains/jsonSchema/impl/JsonSchemaDocumentationProvider.java @@ -11,6 +11,7 @@ import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.*; import com.intellij.psi.impl.FakePsiElement; +import com.intellij.psi.impl.source.resolve.reference.impl.providers.PsiFileReference; import com.intellij.util.ObjectUtils; import com.intellij.util.containers.ContainerUtil; import com.jetbrains.jsonSchema.extension.JsonLikePsiWalker; @@ -54,6 +55,7 @@ public class JsonSchemaDocumentationProvider implements DocumentationProvider { @Nullable String forcedPropName) { if (element instanceof FakePsiElement) return null; element = isWhitespaceOrComment(originalElement) ? element : ObjectUtils.coalesce(originalElement, element); + if (originalElement != null && hasFileOrPointerReferences(originalElement.getReferences())) return null; final PsiFile containingFile = element.getContainingFile(); if (containingFile == null) return null; final JsonSchemaService service = JsonSchemaService.Impl.get(element.getProject()); @@ -65,6 +67,15 @@ public class JsonSchemaDocumentationProvider implements DocumentationProvider { return generateDoc(element, rootSchema, preferShort, forcedPropName); } + private static boolean hasFileOrPointerReferences(PsiReference[] references) { + for (PsiReference reference : references) { + if (reference instanceof PsiFileReference + || reference instanceof JsonPointerReferenceProvider.JsonSchemaIdReference + || reference instanceof JsonPointerReferenceProvider.JsonPointerReference) return true; + } + return false; + } + private static boolean isWhitespaceOrComment(@Nullable PsiElement originalElement) { return originalElement instanceof PsiWhiteSpace || originalElement instanceof PsiComment; }