mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
json: restore documentation for file/pointer references
This commit is contained in:
@@ -224,7 +224,7 @@ public class JsonPointerReferenceProvider extends PsiReferenceProvider {
|
||||
}
|
||||
}
|
||||
|
||||
private static class JsonPointerReference extends JsonSchemaBaseReference<JsonValue> {
|
||||
static class JsonPointerReference extends JsonSchemaBaseReference<JsonValue> {
|
||||
private final String myFullPath;
|
||||
|
||||
JsonPointerReference(JsonValue element, TextRange textRange, String curPath) {
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user