mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[javadoc] Implemented syntax highlighting for javadocs
GitOrigin-RevId: 4544b607c251f14c294cbf6b25d689c7350f6f01
This commit is contained in:
committed by
intellij-monorepo-bot
parent
7b6b2db8a6
commit
6552646d41
+1
-1
@@ -80,7 +80,7 @@ public final class HighlightNamesUtil {
|
||||
return false;
|
||||
}
|
||||
|
||||
private static boolean isStaticallyImported(@NotNull PsiElement elementToHighlight) {
|
||||
public static boolean isStaticallyImported(@NotNull PsiElement elementToHighlight) {
|
||||
PsiReferenceExpression referenceExpression = PsiTreeUtil.getParentOfType(elementToHighlight, PsiReferenceExpression.class);
|
||||
if (referenceExpression != null) {
|
||||
JavaResolveResult result = referenceExpression.advancedResolve(false);
|
||||
|
||||
+1
-1
@@ -92,7 +92,7 @@ public abstract class NonCodeAnnotationsLineMarkerProvider extends LineMarkerPro
|
||||
|
||||
String tooltip = XmlStringUtil.wrapInHtml(
|
||||
NonCodeAnnotationGenerator.getNonCodeHeaderAvalable(nonCodeAnnotations) + CommonXmlStrings.NBSP + JavaBundle.message("non.code.annotations.explanation.full.signature") + "<p>\n" +
|
||||
JavaDocInfoGenerator.generateSignature(owner));
|
||||
new JavaDocInfoGenerator(owner.getProject(), owner, false).generateSignature(owner));
|
||||
return new LineMarkerInfo<>(element, element.getTextRange(), AllIcons.Gutter.ExtAnnotation, __ -> tooltip, MyIconGutterHandler.INSTANCE,
|
||||
GutterIconRenderer.Alignment.RIGHT);
|
||||
}
|
||||
|
||||
@@ -3,12 +3,13 @@ package com.intellij.codeInsight.javadoc;
|
||||
|
||||
import com.intellij.codeInsight.AnnotationTargetUtil;
|
||||
import com.intellij.codeInsight.AnnotationUtil;
|
||||
import com.intellij.ide.highlighter.JavaHighlightingColors;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.editor.richcopy.HtmlSyntaxInfoUtil;
|
||||
import com.intellij.openapi.project.IndexNotReadyException;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.util.ObjectUtils;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import com.intellij.xml.util.XmlStringUtil;
|
||||
import one.util.streamex.StreamEx;
|
||||
import org.intellij.lang.annotations.Flow;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -18,6 +19,9 @@ import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import static com.intellij.openapi.editor.richcopy.HtmlSyntaxInfoUtil.appendStyledSpan;
|
||||
import static com.intellij.openapi.editor.richcopy.HtmlSyntaxInfoUtil.getStyledSpan;
|
||||
|
||||
public final class AnnotationDocGenerator {
|
||||
private static final Logger LOG = Logger.getInstance(AnnotationDocGenerator.class);
|
||||
@NotNull private final PsiAnnotation myAnnotation;
|
||||
@@ -85,12 +89,19 @@ public final class AnnotationDocGenerator {
|
||||
boolean generateLink = format != AnnotationFormat.ToolTip;
|
||||
boolean forceShortNames = format != AnnotationFormat.JavaDocComplete;
|
||||
|
||||
buffer.append("@");
|
||||
if (red) {
|
||||
buffer.append("@");
|
||||
} else {
|
||||
appendStyledSpan(buffer, JavaHighlightingColors.ANNOTATION_NAME_ATTRIBUTES, "@");
|
||||
}
|
||||
String name = forceShortNames ? myNameReference.getReferenceName() : myNameReference.getText();
|
||||
if (type != null && generateLink) {
|
||||
JavaDocInfoGenerator.generateLink(buffer, myTargetClass, name, format == AnnotationFormat.JavaDocComplete);
|
||||
} else {
|
||||
buffer.append(name);
|
||||
String styledName = getStyledSpan(JavaHighlightingColors.ANNOTATION_NAME_ATTRIBUTES, name);
|
||||
new JavaDocInfoGenerator(myContext.getProject(), null, format != AnnotationFormat.JavaDocComplete)
|
||||
.generateLink(buffer, myTargetClass, styledName, format == AnnotationFormat.JavaDocComplete);
|
||||
}
|
||||
else if (!red && name != null) {
|
||||
appendStyledSpan(buffer, JavaHighlightingColors.ANNOTATION_NAME_ATTRIBUTES, name);
|
||||
}
|
||||
if (red) buffer.append("</font>");
|
||||
|
||||
@@ -102,34 +113,36 @@ public final class AnnotationDocGenerator {
|
||||
private void generateAnnotationAttributes(StringBuilder buffer, boolean generateLink) {
|
||||
final PsiNameValuePair[] attributes = myAnnotation.getParameterList().getAttributes();
|
||||
if (attributes.length > 0) {
|
||||
buffer.append("(");
|
||||
appendStyledSpan(buffer, JavaHighlightingColors.PARENTHESES, "(");
|
||||
boolean first = true;
|
||||
for (PsiNameValuePair pair : attributes) {
|
||||
if (!first) buffer.append(", ");
|
||||
if (!first) appendStyledSpan(buffer, JavaHighlightingColors.COMMA, ", ");
|
||||
first = false;
|
||||
generateAnnotationAttribute(buffer, generateLink, pair);
|
||||
}
|
||||
buffer.append(")");
|
||||
appendStyledSpan(buffer, JavaHighlightingColors.PARENTHESES, ")");
|
||||
}
|
||||
}
|
||||
|
||||
private static void generateAnnotationAttribute(StringBuilder buffer, boolean generateLink, PsiNameValuePair pair) {
|
||||
final String name = pair.getName();
|
||||
if (name != null) {
|
||||
buffer.append(name);
|
||||
buffer.append(" = ");
|
||||
appendStyledSpan(buffer, JavaHighlightingColors.ANNOTATION_ATTRIBUTE_NAME_ATTRIBUTES, name);
|
||||
appendStyledSpan(buffer, JavaHighlightingColors.OPERATION_SIGN, " = ");
|
||||
}
|
||||
final PsiAnnotationMemberValue value = pair.getValue();
|
||||
if (value != null) {
|
||||
if (value instanceof PsiArrayInitializerMemberValue) {
|
||||
buffer.append("{");
|
||||
appendStyledSpan(buffer, JavaHighlightingColors.BRACES, "{");
|
||||
boolean firstMember = true;
|
||||
for(PsiAnnotationMemberValue memberValue:((PsiArrayInitializerMemberValue)value).getInitializers()) {
|
||||
if (!firstMember) buffer.append(",");
|
||||
if (!firstMember) {
|
||||
appendStyledSpan(buffer, JavaHighlightingColors.COMMA, ",");
|
||||
}
|
||||
firstMember = false;
|
||||
appendLinkOrText(buffer, memberValue, generateLink);
|
||||
}
|
||||
buffer.append("}");
|
||||
appendStyledSpan(buffer, JavaHighlightingColors.BRACES, "}");
|
||||
}
|
||||
else {
|
||||
appendLinkOrText(buffer, value, generateLink);
|
||||
@@ -161,12 +174,17 @@ public final class AnnotationDocGenerator {
|
||||
else {
|
||||
if (aClass != null) text = aClass.getQualifiedName() + '#' + field.getName();
|
||||
}
|
||||
JavaDocInfoGenerator.generateLink(buffer, text, aClass != null? aClass.getName() + '.' + field.getName():null, memberValue, false);
|
||||
new JavaDocInfoGenerator(field.getProject(), null, true)
|
||||
.generateLink(buffer, text, aClass != null? aClass.getName() + '.' + field.getName():null, memberValue, false);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
buffer.append(XmlStringUtil.escapeString(memberValue.getText()));
|
||||
HtmlSyntaxInfoUtil.appendHighlightedByLexerAndEncodedAsHtmlCodeSnippet(
|
||||
buffer,
|
||||
memberValue.getProject(),
|
||||
memberValue.getLanguage(),
|
||||
memberValue.getText());
|
||||
}
|
||||
|
||||
public static List<AnnotationDocGenerator> getAnnotationsToShow(@NotNull PsiAnnotationOwner owner, @NotNull PsiElement context) {
|
||||
|
||||
+2
-2
@@ -12,8 +12,8 @@ import java.awt.*;
|
||||
/**
|
||||
* @author spleaner
|
||||
*/
|
||||
public final class ColorUtil {
|
||||
private ColorUtil() {
|
||||
public final class JavaDocColorUtil {
|
||||
private JavaDocColorUtil() {
|
||||
}
|
||||
|
||||
public static String generatePreviewHtml(@NotNull final Color color) {
|
||||
@@ -116,7 +116,8 @@ public class JavaDocExternalFilter extends AbstractExternalFilter {
|
||||
PsiClass aClass = ((PsiMethod)element).getContainingClass();
|
||||
if (aClass != null) {
|
||||
String qName = aClass.getQualifiedName();
|
||||
return pair(qName, qName + JavaDocInfoGenerator.generateTypeParameters(aClass, true));
|
||||
return pair(qName, qName + new JavaDocInfoGenerator(aClass.getProject(), null, false)
|
||||
.generateTypeParameters(aClass, true));
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
+14
-4
@@ -5,18 +5,28 @@ import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
public class JavaDocInfoGeneratorFactory {
|
||||
public static JavaDocInfoGeneratorFactory getInstance() {
|
||||
return ApplicationManager.getApplication().getService(JavaDocInfoGeneratorFactory.class);
|
||||
}
|
||||
|
||||
protected JavaDocInfoGenerator createImpl(Project project, PsiElement element) {
|
||||
return new JavaDocInfoGenerator(project, element);
|
||||
protected JavaDocInfoGenerator createImpl(@NotNull Project project, @Nullable PsiElement element) {
|
||||
return new JavaDocInfoGenerator(project, element, false);
|
||||
}
|
||||
|
||||
protected JavaDocInfoGenerator createImpl(@NotNull Project project, @Nullable PsiElement element, boolean isGenerationForRenderedDoc) {
|
||||
return new JavaDocInfoGenerator(project, element, isGenerationForRenderedDoc);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static JavaDocInfoGenerator create(Project project, PsiElement element) {
|
||||
return getInstance().createImpl(project, element);
|
||||
public static JavaDocInfoGenerator create(@NotNull Project project, @Nullable PsiElement element) {
|
||||
return getInstance().createImpl(project, element, false);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static JavaDocInfoGenerator create(@NotNull Project project, @Nullable PsiElement element, boolean isGenerationForRenderedDoc) {
|
||||
return getInstance().createImpl(project, element, isGenerationForRenderedDoc);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,6 +13,7 @@ import com.intellij.codeInsight.javadoc.JavaDocExternalFilter;
|
||||
import com.intellij.codeInsight.javadoc.JavaDocInfoGenerator;
|
||||
import com.intellij.codeInsight.javadoc.JavaDocInfoGeneratorFactory;
|
||||
import com.intellij.codeInsight.javadoc.JavaDocUtil;
|
||||
import com.intellij.ide.highlighter.JavaHighlightingColors;
|
||||
import com.intellij.ide.util.PackageUtil;
|
||||
import com.intellij.java.JavaBundle;
|
||||
import com.intellij.lang.CodeDocumentationAwareCommenter;
|
||||
@@ -23,6 +24,7 @@ import com.intellij.lang.documentation.DocumentationMarkup;
|
||||
import com.intellij.lang.documentation.ExternalDocumentationProvider;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
import com.intellij.openapi.editor.richcopy.HtmlSyntaxInfoUtil;
|
||||
import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.progress.ProcessCanceledException;
|
||||
import com.intellij.openapi.project.IndexNotReadyException;
|
||||
@@ -59,6 +61,7 @@ import org.jetbrains.builtInWebServer.BuiltInWebBrowserUrlProviderKt;
|
||||
import java.util.*;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
import static com.intellij.openapi.editor.richcopy.HtmlSyntaxInfoUtil.*;
|
||||
import static com.intellij.util.ObjectUtils.notNull;
|
||||
|
||||
/**
|
||||
@@ -132,19 +135,13 @@ public class JavaDocumentationProvider implements CodeDocumentationProvider, Ext
|
||||
JavaDocInfoGenerator.appendExpressionValue(buffer, initializer);
|
||||
PsiExpression constantInitializer = JavaDocInfoGenerator.calcInitializerExpression(variable);
|
||||
if (constantInitializer != null) {
|
||||
buffer.append(DocumentationMarkup.GRAYED_START);
|
||||
JavaDocInfoGenerator.appendExpressionValue(buffer, constantInitializer);
|
||||
buffer.append(DocumentationMarkup.GRAYED_END);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static void generateModifiers(StringBuilder buffer, PsiModifierListOwner element) {
|
||||
String modifiers = PsiFormatUtil.formatModifiers(element, PsiFormatUtilBase.JAVADOC_MODIFIERS_ONLY);
|
||||
if (modifiers.length() > 0) {
|
||||
buffer.append(modifiers);
|
||||
buffer.append(" ");
|
||||
}
|
||||
JavaDocInfoGenerator.generateModifiers(buffer, element, false);
|
||||
}
|
||||
|
||||
private static @NlsSafe String generatePackageInfo(PsiPackage aPackage) {
|
||||
@@ -199,9 +196,9 @@ public class JavaDocumentationProvider implements CodeDocumentationProvider, Ext
|
||||
aClass.isEnum() ? PsiKeyword.ENUM :
|
||||
aClass.isRecord() ? PsiKeyword.RECORD :
|
||||
PsiKeyword.CLASS;
|
||||
buffer.append(classString).append(" ");
|
||||
appendStyledSpan(buffer, JavaHighlightingColors.KEYWORD, classString).append(" ");
|
||||
|
||||
buffer.append(JavaDocUtil.getShortestClassName(aClass, aClass));
|
||||
appendStyledSpan(buffer, JavaDocInfoGenerator.getClassTextAttributes(aClass), JavaDocUtil.getShortestClassName(aClass, aClass));
|
||||
|
||||
generateTypeParameters(aClass, buffer);
|
||||
|
||||
@@ -218,16 +215,16 @@ public class JavaDocumentationProvider implements CodeDocumentationProvider, Ext
|
||||
public static void writeImplements(PsiClass aClass, StringBuilder buffer, PsiClassType[] refs) {
|
||||
if (refs.length > 0) {
|
||||
newLine(buffer);
|
||||
buffer.append("implements "); // <- Groovy keyword
|
||||
appendStyledSpan(buffer, JavaHighlightingColors.KEYWORD, "implements "); // <- Groovy keyword
|
||||
writeTypeRefs(aClass, buffer, refs);
|
||||
}
|
||||
}
|
||||
|
||||
public static void writeExtends(PsiClass aClass, StringBuilder buffer, PsiClassType[] refs) {
|
||||
if (refs.length > 0 || !aClass.isInterface() && !CommonClassNames.JAVA_LANG_OBJECT.equals(aClass.getQualifiedName())) {
|
||||
buffer.append(" extends "); // <- Groovy keyword
|
||||
appendStyledSpan(buffer, JavaHighlightingColors.KEYWORD, " extends "); // <- Groovy keyword
|
||||
if (refs.length == 0) {
|
||||
buffer.append("Object");
|
||||
appendStyledSpan(buffer, JavaHighlightingColors.CLASS_NAME_ATTRIBUTES, "Object");
|
||||
}
|
||||
else {
|
||||
writeTypeRefs(aClass, buffer, refs);
|
||||
@@ -237,10 +234,11 @@ public class JavaDocumentationProvider implements CodeDocumentationProvider, Ext
|
||||
|
||||
private static void writeTypeRefs(PsiClass aClass, StringBuilder buffer, PsiClassType[] refs) {
|
||||
for (int i = 0; i < refs.length; i++) {
|
||||
JavaDocInfoGenerator.generateType(buffer, refs[i], aClass, false, true);
|
||||
new JavaDocInfoGenerator(aClass.getProject(), null, false)
|
||||
.generateType(buffer, refs[i], aClass, false, true);
|
||||
|
||||
if (i < refs.length - 1) {
|
||||
buffer.append(", ");
|
||||
appendStyledSpan(buffer, JavaHighlightingColors.COMMA, ", ");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -249,7 +247,7 @@ public class JavaDocumentationProvider implements CodeDocumentationProvider, Ext
|
||||
if (typeParameterOwner.hasTypeParameters()) {
|
||||
PsiTypeParameter[] params = typeParameterOwner.getTypeParameters();
|
||||
|
||||
buffer.append("<");
|
||||
appendStyledSpan(buffer, JavaHighlightingColors.OPERATION_SIGN, "<");
|
||||
|
||||
for (int i = 0; i < params.length; i++) {
|
||||
PsiTypeParameter p = params[i];
|
||||
@@ -258,23 +256,24 @@ public class JavaDocumentationProvider implements CodeDocumentationProvider, Ext
|
||||
PsiClassType[] refs = p.getExtendsList().getReferencedTypes();
|
||||
|
||||
if (refs.length > 0) {
|
||||
buffer.append(" extends "); // <- Groovy keyword
|
||||
appendStyledSpan(buffer, JavaHighlightingColors.KEYWORD, " extends "); // <- Groovy keyword
|
||||
|
||||
for (int j = 0; j < refs.length; j++) {
|
||||
JavaDocInfoGenerator.generateType(buffer, refs[j], typeParameterOwner, false, true);
|
||||
new JavaDocInfoGenerator(typeParameterOwner.getProject(), null, false)
|
||||
.generateType(buffer, refs[j], typeParameterOwner, false, true);
|
||||
|
||||
if (j < refs.length - 1) {
|
||||
buffer.append(" & ");
|
||||
appendStyledSpan(buffer, JavaHighlightingColors.OPERATION_SIGN, " & ");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (i < params.length - 1) {
|
||||
buffer.append(", ");
|
||||
appendStyledSpan(buffer, JavaHighlightingColors.COMMA, ", ");
|
||||
}
|
||||
}
|
||||
|
||||
buffer.append(">");
|
||||
appendStyledSpan(buffer, JavaHighlightingColors.OPERATION_SIGN, ">");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -288,7 +287,8 @@ public class JavaDocumentationProvider implements CodeDocumentationProvider, Ext
|
||||
generateOrderEntryAndPackageInfo(buffer, parentClass);
|
||||
}
|
||||
|
||||
buffer.append(JavaDocUtil.getShortestClassName(parentClass, method));
|
||||
appendStyledSpan(
|
||||
buffer, JavaDocInfoGenerator.getClassTextAttributes(parentClass), JavaDocUtil.getShortestClassName(parentClass, method));
|
||||
newLine(buffer);
|
||||
}
|
||||
|
||||
@@ -298,42 +298,45 @@ public class JavaDocumentationProvider implements CodeDocumentationProvider, Ext
|
||||
generateTypeParameters(method, buffer);
|
||||
|
||||
if (method.getReturnType() != null) {
|
||||
JavaDocInfoGenerator.generateType(buffer, substitutor.substitute(method.getReturnType()), method, false, true);
|
||||
new JavaDocInfoGenerator(method.getProject(), null, false)
|
||||
.generateType(buffer, substitutor.substitute(method.getReturnType()), method, false, true);
|
||||
buffer.append(" ");
|
||||
}
|
||||
|
||||
buffer.append(method.getName());
|
||||
appendStyledSpan(buffer, JavaDocInfoGenerator.getMethodDeclarationTextAttributes(method), method.getName());
|
||||
|
||||
buffer.append("(");
|
||||
appendStyledSpan(buffer, JavaHighlightingColors.PARENTHESES, "(");
|
||||
PsiParameter[] params = method.getParameterList().getParameters();
|
||||
for (int i = 0; i < params.length; i++) {
|
||||
PsiParameter param = params[i];
|
||||
JavaDocInfoGenerator.generateType(buffer, substitutor.substitute(param.getType()), method, false, true);
|
||||
new JavaDocInfoGenerator(method.getProject(), null, false)
|
||||
.generateType(buffer, substitutor.substitute(param.getType()), method, false, true);
|
||||
buffer.append(" ");
|
||||
buffer.append(param.getName());
|
||||
appendStyledSpan(buffer, JavaHighlightingColors.PARAMETER_ATTRIBUTES, param.getName());
|
||||
if (i < params.length - 1) {
|
||||
buffer.append(", ");
|
||||
appendStyledSpan(buffer, JavaHighlightingColors.COMMA, ", ");
|
||||
}
|
||||
}
|
||||
|
||||
buffer.append(")");
|
||||
appendStyledSpan(buffer, JavaHighlightingColors.PARENTHESES, ")");
|
||||
|
||||
PsiClassType[] refs = method.getThrowsList().getReferencedTypes();
|
||||
if (refs.length > 0) {
|
||||
newLine(buffer);
|
||||
buffer.append(" throws ");
|
||||
appendStyledSpan(buffer, JavaHighlightingColors.KEYWORD, " throws ");
|
||||
for (int i = 0; i < refs.length; i++) {
|
||||
PsiClass throwsClass = refs[i].resolve();
|
||||
|
||||
if (throwsClass != null) {
|
||||
buffer.append(JavaDocUtil.getShortestClassName(throwsClass, method));
|
||||
appendStyledSpan(buffer, JavaDocInfoGenerator.getClassTextAttributes(throwsClass),
|
||||
JavaDocUtil.getShortestClassName(throwsClass, method));
|
||||
}
|
||||
else {
|
||||
buffer.append(refs[i].getPresentableText());
|
||||
}
|
||||
|
||||
if (i < refs.length - 1) {
|
||||
buffer.append(", ");
|
||||
appendStyledSpan(buffer, JavaHighlightingColors.COMMA, ", ");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -346,16 +349,18 @@ public class JavaDocumentationProvider implements CodeDocumentationProvider, Ext
|
||||
PsiClass parentClass = field.getContainingClass();
|
||||
|
||||
if (parentClass != null && !(parentClass instanceof PsiAnonymousClass)) {
|
||||
buffer.append(JavaDocUtil.getShortestClassName(parentClass, field));
|
||||
appendStyledSpan(
|
||||
buffer, JavaDocInfoGenerator.getClassTextAttributes(parentClass), JavaDocUtil.getShortestClassName(parentClass, field));
|
||||
newLine(buffer);
|
||||
}
|
||||
|
||||
JavaDocInfoGenerator.generateTooltipAnnotations(field, buffer);
|
||||
generateModifiers(buffer, field);
|
||||
|
||||
JavaDocInfoGenerator.generateType(buffer, substitutor.substitute(field.getType()), field, false, true);
|
||||
new JavaDocInfoGenerator(field.getProject(), null, false)
|
||||
.generateType(buffer, substitutor.substitute(field.getType()), field, false, true);
|
||||
buffer.append(" ");
|
||||
buffer.append(field.getName());
|
||||
appendStyledSpan(buffer, JavaDocInfoGenerator.getFieldTextAttributes(field), field.getName());
|
||||
|
||||
generateInitializer(buffer, field);
|
||||
|
||||
@@ -368,11 +373,12 @@ public class JavaDocumentationProvider implements CodeDocumentationProvider, Ext
|
||||
|
||||
generateModifiers(buffer, variable);
|
||||
|
||||
JavaDocInfoGenerator.generateType(buffer, variable.getType(), variable, false, true);
|
||||
new JavaDocInfoGenerator(variable.getProject(), null, false)
|
||||
.generateType(buffer, variable.getType(), variable, false, true);
|
||||
|
||||
buffer.append(" ");
|
||||
|
||||
buffer.append(variable.getName());
|
||||
appendStyledSpan(buffer, JavaHighlightingColors.LOCAL_VARIABLE_ATTRIBUTES, variable.getName());
|
||||
generateInitializer(buffer, variable);
|
||||
|
||||
return buffer.toString();
|
||||
@@ -385,7 +391,9 @@ public class JavaDocumentationProvider implements CodeDocumentationProvider, Ext
|
||||
VirtualFile file = PsiImplUtil.getModuleVirtualFile(module);
|
||||
generateOrderEntryInfo(sb, file, module.getProject());
|
||||
|
||||
sb.append(PsiKeyword.MODULE).append(' ').append(module.getName());
|
||||
appendStyledSpan(sb, JavaHighlightingColors.KEYWORD, PsiKeyword.MODULE);
|
||||
sb.append(' ');
|
||||
appendStyledSpan(sb, JavaHighlightingColors.CLASS_NAME_ATTRIBUTES, module.getName());
|
||||
|
||||
return sb.toString();
|
||||
}
|
||||
@@ -587,7 +595,7 @@ public class JavaDocumentationProvider implements CodeDocumentationProvider, Ext
|
||||
public @Nls @Nullable String generateRenderedDoc(@NotNull PsiDocCommentBase comment) {
|
||||
PsiElement target = comment.getOwner();
|
||||
if (target == null) target = comment;
|
||||
JavaDocInfoGenerator generator = JavaDocInfoGeneratorFactory.create(target.getProject(), target);
|
||||
JavaDocInfoGenerator generator = JavaDocInfoGeneratorFactory.create(target.getProject(), target, true);
|
||||
return JavaDocExternalFilter.filterInternalDocInfo(generator.generateRenderedDocInfo());
|
||||
}
|
||||
|
||||
@@ -648,7 +656,7 @@ public class JavaDocumentationProvider implements CodeDocumentationProvider, Ext
|
||||
|
||||
@Nullable
|
||||
public static String generateExternalJavadoc(@NotNull final PsiElement element, @Nullable List<String> docURLs) {
|
||||
final JavaDocInfoGenerator javaDocInfoGenerator = JavaDocInfoGeneratorFactory.create(element.getProject(), element);
|
||||
final JavaDocInfoGenerator javaDocInfoGenerator = JavaDocInfoGeneratorFactory.create(element.getProject(), element, false);
|
||||
return generateExternalJavadoc(javaDocInfoGenerator, docURLs);
|
||||
}
|
||||
|
||||
|
||||
@@ -1 +1 @@
|
||||
<a href="psi_element://java.lang.String">String</a> item
|
||||
<span style="color:#000000;"><a href="psi_element://java.lang.String">String</a></span> <span style="color:#000000;">item</span>
|
||||
@@ -1 +1 @@
|
||||
<a href="psi_element://java.lang.String">String</a> a = "aaa"
|
||||
<span style="color:#000000;"><a href="psi_element://java.lang.String">String</a></span> <span style="color:#000000;">a</span><span style=""> = </span><span style="color:#008000;font-weight:bold;">"aaa"</span>
|
||||
@@ -1,3 +1,3 @@
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><a href="psi_element://Test"><code>Test</code></a><br><font color=red>@Nullable</font>
|
||||
@<a href="psi_element://java.lang.Deprecated"><code>Deprecated</code></a>
|
||||
public <a href="psi_element://java.lang.String"><code>String</code></a> <b>field</b> = null</pre></div><table class='sections'></table>
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><font color=red>@</font>
|
||||
<span style="color:#808000;">@</span><a href="psi_element://java.lang.Deprecated"><code style='font-size:96%;'><span style="color:#808000;">Deprecated</span></code></a>
|
||||
<span style="color:#000080;font-weight:bold;">public</span> <a href="psi_element://java.lang.String"><code><span style="color:#000000;">String</span></code></a> <span style="color:#660e7a;font-weight:bold;">field</span><span style=""> = </span><span style="color:#000080;font-weight:bold;">null</span><br><span class='grayed'>defined in </span><a href="psi_element://Test"><code><span style="color:#000000;">Test</span></code></a></pre></div><table class='sections'></table>
|
||||
@@ -1,2 +1,2 @@
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><a href="psi_element://Test"><code>Test</code></a><br>public void <b>foo</b>(@<a href="psi_element://java.lang.Deprecated"><code>Deprecated</code></a> <a href="psi_element://java.lang.String"><code>String</code></a> s,
|
||||
@<a href="psi_element://java.lang.Deprecated"><code>Deprecated</code></a> <a href="psi_element://java.lang.String"><code>String</code></a> p)</pre></div><table class='sections'><p></table>
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><span style="color:#000080;font-weight:bold;">public</span> <span style="color:#000080;font-weight:bold;">void</span> <span style="color:#000000;">foo</span><span style="">(</span><span style="color:#808000;">@</span><a href="psi_element://java.lang.Deprecated"><code style='font-size:96%;'><span style="color:#808000;">Deprecated</span></code></a> <a href="psi_element://java.lang.String"><code><span style="color:#000000;">String</span></code></a> <span style="">s</span><span style="">,
|
||||
</span> <span style="color:#808000;">@</span><a href="psi_element://java.lang.Deprecated"><code style='font-size:96%;'><span style="color:#808000;">Deprecated</span></code></a> <a href="psi_element://java.lang.String"><code><span style="color:#000000;">String</span></code></a> <span style="">p</span><span style="">)</span><br><span class='grayed'>defined in </span><a href="psi_element://Test"><code><span style="color:#000000;">Test</span></code></a></pre></div><table class='sections'><p></table>
|
||||
@@ -1,3 +1,3 @@
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre>public void <b>foo</b>()</pre></div><table class='sections'><p><tr><td valign='top' class='section'><p>From interface:</td><td valign='top'><p><a href="psi_element://Foo"><code>Foo</code></a><br>
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><span style="color:#000080;font-weight:bold;">public</span> <span style="color:#000080;font-weight:bold;">void</span> <span style="color:#000000;">foo</span><span style="">(</span><span style="">)</span></pre></div><table class='sections'><p><tr><td valign='top' class='section'><p>From interface:</td><td valign='top'><p><a href="psi_element://Foo"><code><span style="color:#000000;">Foo</span></code></a><br>
|
||||
some javadoc
|
||||
</td><tr><td valign='top' class='section'><p>Specified by:</td><td valign='top'><p><a href="psi_element://Foo#foo()"><code>foo</code></a> in interface <a href="psi_element://Foo"><code>Foo</code></a></td></table>
|
||||
</td><tr><td valign='top' class='section'><p>Specified by:</td><td valign='top'><p><a href="psi_element://Foo#foo()"><code><span style="color:#000000;">foo</span></code></a> in interface <a href="psi_element://Foo"><code><span style="color:#000000;">Foo</span></code></a></td></table>
|
||||
@@ -1 +1 @@
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><a href="psi_element://Test"><code>Test</code></a><br>public void <b>foo</b>()</pre></div><table class='sections'><p><tr><td valign='top' class='section'><p>API Note:</td><td valign='top'><p> my api note </td><tr><td valign='top' class='section'><p>Implementation Requirements:</td><td valign='top'><p> my impl spec </td><tr><td valign='top' class='section'><p>Implementation Note:</td><td valign='top'><p> my impl note</td></table>
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><span style="color:#000080;font-weight:bold;">public</span> <span style="color:#000080;font-weight:bold;">void</span> <span style="color:#000000;">foo</span><span style="">(</span><span style="">)</span><br><span class='grayed'>defined in </span><a href="psi_element://Test"><code><span style="color:#000000;">Test</span></code></a></pre></div><table class='sections'><p><tr><td valign='top' class='section'><p>API Note:</td><td valign='top'><p> my api note </td><tr><td valign='top' class='section'><p>Implementation<br>Requirements:</td><td valign='top'><p> my impl spec </td><tr><td valign='top' class='section'><p>Implementation<br>Note:</td><td valign='top'><p> my impl note</td></table>
|
||||
@@ -1,2 +1,2 @@
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre>class <b>MethodTypeParam</b><T>
|
||||
extends <a href="psi_element://java.lang.Object"><code>Object</code></a></pre></div><table class='sections'><p><tr><td valign='top' class='section'><p>Type parameters:</td><td valign='top'><T> – type param</td></table>
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><span style="color:#000080;font-weight:bold;">class</span> <span style="color:#000000;">MethodTypeParam</span><span style=""><</span><span style="color:#20999d;">T</span><span style="">></span>
|
||||
<span style="color:#000080;font-weight:bold;">extends </span><a href="psi_element://java.lang.Object"><code><span style="color:#000000;">Object</span></code></a></pre></div><table class='sections'><p><tr><td valign='top' class='section'><p>Type parameters:</td><td valign='top'><<span style="color:#20999d;">T</span>> – type param</td></table>
|
||||
@@ -1 +1 @@
|
||||
[< java 1.7 >] java.util<br/> public class ArrayList<E> extends <a href="psi_element://java.util.AbstractList">AbstractList</a><E><br/> implements <a href="psi_element://java.util.List">List</a><E>, <a href="psi_element://java.util.RandomAccess">RandomAccess</a>, <a href="psi_element://java.lang.Cloneable">Cloneable</a>, <a href="psi_element://java.io.Serializable">Serializable</a>
|
||||
[< java 1.7 >] <a href="psi_element://java.util">java.util</a><br/> <span style="color:#000080;font-weight:bold;">public</span> <span style="color:#000080;font-weight:bold;">class</span> <span style="color:#000000;">ArrayList</span><span style=""><</span>E<span style="">></span><span style="color:#000080;font-weight:bold;"> extends </span><span style="color:#000000;"><a href="psi_element://java.util.AbstractList">AbstractList</a></span><span style=""><</span><span style="color:#20999d;">E</span><span style="">></span><br/> <span style="color:#000080;font-weight:bold;">implements </span><span style="color:#000000;"><a href="psi_element://java.util.List">List</a></span><span style=""><</span><span style="color:#20999d;">E</span><span style="">></span><span style="">, </span><span style="color:#000000;"><a href="psi_element://java.util.RandomAccess">RandomAccess</a></span><span style="">, </span><span style="color:#000000;"><a href="psi_element://java.lang.Cloneable">Cloneable</a></span><span style="">, </span><span style="color:#000000;"><a href="psi_element://java.io.Serializable">Serializable</a></span>
|
||||
@@ -1,3 +1,3 @@
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre>@<a href="psi_element://Bar"><code>Bar</code></a>(<a href="psi_element://Baz#CONST"><code>Baz.CONST</code></a>, value = {<a href="psi_element://Baz#CONST"><code>Baz.CONST</code></a>})
|
||||
class <b>Foo</b>
|
||||
extends <a href="psi_element://java.lang.Object"><code>Object</code></a></pre></div><table class='sections'></table>
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><span style="color:#808000;">@</span><a href="psi_element://Bar"><code style='font-size:96%;'><span style="color:#808000;">Bar</span></code></a><span style="">(</span><a href="psi_element://Baz#CONST"><code style='font-size:96%;'><span style="color:#000000;">Baz</span><span style="">.</span><span style="color:#660e7a;font-style:italic;">CONST</span></code></a><span style="">, </span><span style="">value</span><span style=""> = </span><span style="">{</span><a href="psi_element://Baz#CONST"><code style='font-size:96%;'><span style="color:#000000;">Baz</span><span style="">.</span><span style="color:#660e7a;font-style:italic;">CONST</span></code></a><span style="">}</span><span style="">)</span>
|
||||
<span style="color:#000080;font-weight:bold;">class</span> <span style="color:#000000;">Foo</span>
|
||||
<span style="color:#000080;font-weight:bold;">extends </span><a href="psi_element://java.lang.Object"><code><span style="color:#000000;">Object</span></code></a></pre></div><table class='sections'></table>
|
||||
@@ -1,11 +1,5 @@
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><a href="psi_element://Foo"><code>Foo</code></a><br>int <b>foo</b></pre></div><div class='content'>
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><span style="color:#000080;font-weight:bold;">int</span> <span style="color:#660e7a;font-weight:bold;">foo</span><br><span class='grayed'>defined in </span><a href="psi_element://Foo"><code><span style="color:#000000;">Foo</span></code></a></pre></div><div class='content'>
|
||||
<pre>
|
||||
<code>
|
||||
class Clazzz {
|
||||
def f[U](u: U) {}
|
||||
|
||||
val a = 1
|
||||
}
|
||||
</code>
|
||||
<code><span style=""><span style="color:#000080;font-weight:bold;">class </span><span style="">Clazzz {</span><span style="">  def f[U](u: U) {}</span><span style=""></span><span style="">  val a = </span><span style="color:#0000ff;">1</span><span style="">}</span></span></code>
|
||||
</pre>
|
||||
</div><table class='sections'><p></table>
|
||||
@@ -1 +1 @@
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><a href="psi_element://Test"><code>Test</code></a><br>public <a href="psi_element://java.lang.String"><code>String</code></a> <b>field</b> = foo("", "")</pre></div><table class='sections'></table>
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><span style="color:#000080;font-weight:bold;">public</span> <a href="psi_element://java.lang.String"><code><span style="color:#000000;">String</span></code></a> <span style="color:#660e7a;font-weight:bold;">field</span><span style=""> = </span><span style="color:#000000;">foo</span><span style="">(</span><span style="color:#008000;font-weight:bold;">""</span><span style="">, </span><span style="color:#008000;font-weight:bold;">""</span><span style="">)</span><br><span class='grayed'>defined in </span><a href="psi_element://Test"><code><span style="color:#000000;">Test</span></code></a></pre></div><table class='sections'></table>
|
||||
@@ -1 +1 @@
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><a href="psi_element://Test"><code>Test</code></a><br>public static final int <b>field</b> = 1 + 1<span class='grayed'> = 2</span></pre></div><table class='sections'></table>
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><span style="color:#000080;font-weight:bold;">public static final</span> <span style="color:#000080;font-weight:bold;">int</span> <span style="color:#660e7a;">field</span><span style=""> = </span><span style="color:#0000ff;">1 </span><span style="">+ </span><span style="color:#0000ff;">1</span><span class='grayed'><span style=""> = </span><span style="color:#0000ff;">2</span></span><br><span class='grayed'>defined in </span><a href="psi_element://Test"><code><span style="color:#000000;">Test</span></code></a></pre></div><table class='sections'></table>
|
||||
@@ -1,3 +1,3 @@
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><a href="psi_element://FooBar"><code>FooBar</code></a><br>public <a href="psi_element://java.lang.String"><code>String</code></a> <b>getMyFoo</b>()</pre></div><table class='sections'><p><tr><td valign='top' class='section'><p>From field:</td><td valign='top'><p><a href="psi_element://FooBar#myFoo"><code>myFoo</code></a><br>
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><span style="color:#000080;font-weight:bold;">public</span> <a href="psi_element://java.lang.String"><code><span style="color:#000000;">String</span></code></a> <span style="color:#000000;">getMyFoo</span><span style="">(</span><span style="">)</span><br><span class='grayed'>defined in </span><a href="psi_element://FooBar"><code><span style="color:#000000;">FooBar</span></code></a></pre></div><table class='sections'><p><tr><td valign='top' class='section'><p>From field:</td><td valign='top'><p><a href="psi_element://FooBar#myFoo"><code><span style="color:#660e7a;font-weight:bold;">myFoo</span></code></a><br>
|
||||
foo bar baz
|
||||
</td></table>
|
||||
+6
-9
@@ -1,6 +1,6 @@
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre>java.lang<br>public final class <b>String</b>
|
||||
extends <a href="psi_element://java.lang.Object"><code>Object</code></a>
|
||||
implements <a href="psi_element://java.io.Serializable"><code>java.io.Serializable</code></a>, <a href="psi_element://java.lang.Comparable"><code>Comparable</code></a><<a href="psi_element://java.lang.String"><code>String</code></a>>, <a href="psi_element://java.lang.CharSequence"><code>CharSequence</code></a></pre></div><div class='content'>
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><span style="color:#000080;font-weight:bold;">public final</span> <span style="color:#000080;font-weight:bold;">class</span> <span style="color:#000000;">String</span>
|
||||
<span style="color:#000080;font-weight:bold;">extends </span><a href="psi_element://java.lang.Object"><code><span style="color:#000000;">Object</span></code></a>
|
||||
<span style="color:#000080;font-weight:bold;">implements </span><a href="psi_element://java.io.Serializable"><code><span style="color:#000000;">java.io.Serializable</span></code></a><span style="">,</span> <a href="psi_element://java.lang.Comparable"><code><span style="color:#000000;">Comparable</span></code></a><span style=""><</span><a href="psi_element://java.lang.String"><code><span style="color:#000000;">String</span></code></a><span style="">></span><span style="">,</span> <a href="psi_element://java.lang.CharSequence"><code><span style="color:#000000;">CharSequence</span></code></a><br><span class='grayed'>defined in </span><a href="psi_element://java.lang"><code><span style="color:#000000;">java.lang</span></code></a></pre></div><div class='content'>
|
||||
The <code>String</code> class represents character strings. All
|
||||
string literals in Java programs, such as <code>"abc"</code>, are
|
||||
implemented as instances of this class.
|
||||
@@ -30,7 +30,7 @@ implements <a href="psi_element://java.io.Serializable"><code>java.io.Serializab
|
||||
searching strings, for extracting substrings, and for creating a
|
||||
copy of a string with all characters translated to uppercase or to
|
||||
lowercase. Case mapping is based on the Unicode Standard version
|
||||
specified by the <a href="psi_element://java.lang.Character"><code>Character</code></a> class.
|
||||
specified by the <a href="psi_element://java.lang.Character"><code><span style="color:#000000;">Character</span></code></a> class.
|
||||
<p>
|
||||
The Java language provides special support for the string
|
||||
concatenation operator ( + ), and for conversion of
|
||||
@@ -44,7 +44,7 @@ implements <a href="psi_element://java.io.Serializable"><code>java.io.Serializab
|
||||
<i>The Java Language Specification</i>.
|
||||
|
||||
<p> Unless otherwise noted, passing a <tt>null</tt> argument to a constructor
|
||||
or method in this class will cause a <a href="psi_element://java.lang.NullPointerException"><code>NullPointerException</code></a> to be
|
||||
or method in this class will cause a <a href="psi_element://java.lang.NullPointerException"><code><span style="color:#000000;">NullPointerException</span></code></a> to be
|
||||
thrown.
|
||||
|
||||
<p>A <code>String</code> represents a string in the UTF-16 format
|
||||
@@ -58,7 +58,4 @@ implements <a href="psi_element://java.io.Serializable"><code>java.io.Serializab
|
||||
Unicode code points (i.e., characters), in addition to those for
|
||||
dealing with Unicode code units (i.e., <code>char</code> values).
|
||||
|
||||
</div><table class='sections'><p><tr><td valign='top' class='section'><p>Since:</td><td valign='top'><p>JDK1.0</td><tr><td valign='top' class='section'><p>See Also:</td><td valign='top'><p><a href="psi_element://java.lang.Object#toString()"><code>Object.toString()</code></a>,
|
||||
<a href="psi_element://java.lang.StringBuffer"><code>StringBuffer</code></a>,
|
||||
<a href="psi_element://java.lang.StringBuilder"><code>StringBuilder</code></a>,
|
||||
<font color=red>java.nio.charset.Charset</font></td></table>
|
||||
</div><table class='sections'><p><tr><td valign='top' class='section'><p>Since:</td><td valign='top'><p>JDK1.0</td><tr><td valign='top' class='section'><p>See Also:</td><td valign='top'><p><a href="psi_element://java.lang.Object#toString()"><code><span style="color:#000000;">Object</span><span style="">.</span><span style="color:#000000;">toString</span><span style="">()</span></code></a>,<br><a href="psi_element://java.lang.StringBuffer"><code><span style="color:#000000;">StringBuffer</span></code></a>,<br><a href="psi_element://java.lang.StringBuilder"><code><span style="color:#000000;">StringBuilder</span></code></a>,<br><font color=red>java.nio.charset.Charset</font></td></table>
|
||||
+3
-3
@@ -1,8 +1,8 @@
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><a href="psi_element://java.util.List"><code>java.util.List<E></code></a><br>@<a href="psi_element://org.jetbrains.annotations.Contract"><code>Contract</code></a>(pure = true)
|
||||
public abstract boolean <b>contains</b>(<a href="psi_element://java.lang.Object"><code>Object</code></a> o)</pre></div><div class='content'>
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><span style="color:#808000;">@</span><a href="psi_element://org.jetbrains.annotations.Contract"><code style='font-size:96%;'><span style="color:#808000;">Contract</span></code></a><span style="">(</span><span style="">pure</span><span style=""> = </span><span style="color:#000080;font-weight:bold;">true</span><span style="">)</span>
|
||||
<span style="color:#000080;font-weight:bold;">public abstract</span> <span style="color:#000080;font-weight:bold;">boolean</span> <span style="color:#000000;">contains</span><span style="">(</span><a href="psi_element://java.lang.Object"><code><span style="color:#000000;">Object</span></code></a> <span style="">o</span><span style="">)</span><br><span class='grayed'>defined in </span><a href="psi_element://java.util.List"><code><span style="color:#000000;">java.util.List<span style=""><</span><span style="color:#20999d;">E</span><span style="">></span></span></code></a></pre></div><div class='content'>
|
||||
Returns <tt>true</tt> if this list contains the specified element.
|
||||
More formally, returns <tt>true</tt> if and only if this list contains
|
||||
at least one element <tt>e</tt> such that
|
||||
<tt>(o==null ? e==null : o.equals(e))</tt>.
|
||||
|
||||
<p></div><table class='sections'><p><tr><td valign='top' class='section'><p>Overrides:</td><td valign='top'><p><a href="psi_element://java.util.Collection#contains(java.lang.Object)"><code>contains</code></a> in interface <a href="psi_element://java.util.Collection"><code>Collection</code></a></td><tr><td valign='top' class='section'><p>Params:</td><td valign='top'>o – element whose presence in this list is to be tested </td><tr><td valign='top' class='section'><p>Returns:</td><td valign='top'><p><tt>true</tt> if this list contains the specified element </td><tr><td valign='top' class='section'><p>Throws:</td><td valign='top'><p><a href="psi_element://java.lang.ClassCastException"><code>ClassCastException</code></a> – if the type of the specified element is incompatible with this list (<a href="psi_element://java.util.Collection###optional-restrictions">optional</a>) <p><a href="psi_element://java.lang.NullPointerException"><code>NullPointerException</code></a> – if the specified element is null and this list does not permit null elements (<a href="psi_element://java.util.Collection###optional-restrictions">optional</a>)</td><tr><td valign='top' class='section'><p>External<br> annotations:</td><td valign='top'><p>@<a href="psi_element://org.jetbrains.annotations.Contract">org.jetbrains.annotations.Contract</a>(pure = true)</td></table><div class='bottom'><icon src='AllIcons.Nodes.PpLibFolder'> < java 1.7 ></div>
|
||||
</div><table class='sections'><tr><td valign='top' class='section'><p>Overrides:</td><td valign='top'><p><a href="psi_element://java.util.Collection#contains(java.lang.Object)"><code><span style="color:#000000;">contains</span></code></a> in interface <a href="psi_element://java.util.Collection"><code><span style="color:#000000;">Collection</span></code></a></td><tr><td valign='top' class='section'><p>Params:</td><td valign='top'><span style="">o</span> – element whose presence in this list is to be tested </td><tr><td valign='top' class='section'><p>Returns:</td><td valign='top'><p><tt>true</tt> if this list contains the specified element </td><tr><td valign='top' class='section'><p>Throws:</td><td valign='top'><p><a href="psi_element://java.lang.ClassCastException"><code><span style="color:#000000;">ClassCastException</span></code></a> – if the type of the specified element is incompatible with this list (<a href="psi_element://java.util.Collection###optional-restrictions">optional</a>) <p><a href="psi_element://java.lang.NullPointerException"><code><span style="color:#000000;">NullPointerException</span></code></a> – if the specified element is null and this list does not permit null elements (<a href="psi_element://java.util.Collection###optional-restrictions">optional</a>)</td><tr><td valign='top' class='section'><p>External<br> annotations:</td><td valign='top'><p><span style="color:#808000;">@</span><a href="psi_element://org.jetbrains.annotations.Contract"><span style="color:#808000;">org.jetbrains.annotations.Contract</span></a><span style="">(</span><span style="">pure</span><span style=""> = </span><span style="color:#000080;font-weight:bold;">true</span><span style="">)</span></td></table><div class='bottom'><icon src='AllIcons.Nodes.PpLibFolder'> < java 1.7 ></div>
|
||||
+3
-3
@@ -1,8 +1,8 @@
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><a href="psi_element://My"><code>My</code></a><br><i>@<a href="psi_element://org.jetbrains.annotations.Contract"><code>Contract</code></a>(pure = true)</i>
|
||||
boolean <b>contains</b>(<a href="psi_element://java.lang.Object"><code>Object</code></a> o)</pre></div><table class='sections'><p><tr><td valign='top' class='section'><p>From interface:</td><td valign='top'><p><a href="psi_element://java.util.Collection"><code>java.util.Collection</code></a><br>
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><i><span style="color:#808000;">@</span><a href="psi_element://org.jetbrains.annotations.Contract"><code style='font-size:96%;'><span style="color:#808000;">Contract</span></code></a><span style="">(</span><span style="">pure</span><span style=""> = </span><span style="color:#000080;font-weight:bold;">true</span><span style="">)</span></i>
|
||||
<span style="color:#000080;font-weight:bold;">boolean</span> <span style="color:#000000;">contains</span><span style="">(</span><a href="psi_element://java.lang.Object"><code><span style="color:#000000;">Object</span></code></a> <span style="">o</span><span style="">)</span><br><span class='grayed'>defined in </span><a href="psi_element://My"><code><span style="color:#000000;">My</span></code></a></pre></div><table class='sections'><p><tr><td valign='top' class='section'><p>From interface:</td><td valign='top'><p><a href="psi_element://java.util.Collection"><code><span style="color:#000000;">java.util.Collection</span></code></a><br>
|
||||
Returns <tt>true</tt> if this collection contains the specified element.
|
||||
More formally, returns <tt>true</tt> if and only if this collection
|
||||
contains at least one element <tt>e</tt> such that
|
||||
<tt>(o==null ? e==null : o.equals(e))</tt>.
|
||||
|
||||
</td><tr><td valign='top' class='section'><p>Overrides:</td><td valign='top'><p><a href="psi_element://java.util.Collection#contains(java.lang.Object)"><code>contains</code></a> in interface <a href="psi_element://java.util.Collection"><code>Collection</code></a><br><a href="psi_element://I#contains(java.lang.Object)"><code>contains</code></a> in interface <a href="psi_element://I"><code>I</code></a></td><tr><td valign='top' class='section'><p>Params:</td><td valign='top'>o – element whose presence in this collection is to be tested </td><tr><td valign='top' class='section'><p>Returns:</td><td valign='top'><p><tt>true</tt> if this collection contains the specified element </td><tr><td valign='top' class='section'><p>Throws:</td><td valign='top'><p><a href="psi_element://java.lang.ClassCastException"><code>ClassCastException</code></a> – if the type of the specified element is incompatible with this collection (<a href="psi_element://My###optional-restrictions">optional</a>) <p><a href="psi_element://java.lang.NullPointerException"><code>NullPointerException</code></a> – if the specified element is null and this collection does not permit null elements (<a href="psi_element://My###optional-restrictions">optional</a>)</td><tr><td valign='top' class='section'><p><i>Inferred</i><br> annotations:</td><td valign='top'><p><i>@<a href="psi_element://org.jetbrains.annotations.Contract">org.jetbrains.annotations.Contract</a>(pure = true)</i></td></table>
|
||||
</td><tr><td valign='top' class='section'><p>Overrides:</td><td valign='top'><p><a href="psi_element://java.util.Collection#contains(java.lang.Object)"><code><span style="color:#000000;">contains</span></code></a> in interface <a href="psi_element://java.util.Collection"><code><span style="color:#000000;">Collection</span></code></a><br><a href="psi_element://I#contains(java.lang.Object)"><code><span style="color:#000000;">contains</span></code></a> in interface <a href="psi_element://I"><code><span style="color:#000000;">I</span></code></a></td><tr><td valign='top' class='section'><p>Params:</td><td valign='top'><span style="">o</span> – element whose presence in this collection is to be tested </td><tr><td valign='top' class='section'><p>Returns:</td><td valign='top'><p><tt>true</tt> if this collection contains the specified element </td><tr><td valign='top' class='section'><p>Throws:</td><td valign='top'><p><a href="psi_element://java.lang.ClassCastException"><code><span style="color:#000000;">ClassCastException</span></code></a> – if the type of the specified element is incompatible with this collection (<a href="psi_element://My###optional-restrictions">optional</a>) <p><a href="psi_element://java.lang.NullPointerException"><code><span style="color:#000000;">NullPointerException</span></code></a> – if the specified element is null and this collection does not permit null elements (<a href="psi_element://My###optional-restrictions">optional</a>)</td><tr><td valign='top' class='section'><p><i>Inferred</i><br> annotations:</td><td valign='top'><p><i><span style="color:#808000;">@</span><a href="psi_element://org.jetbrains.annotations.Contract"><span style="color:#808000;">org.jetbrains.annotations.Contract</span></a><span style="">(</span><span style="">pure</span><span style=""> = </span><span style="color:#000080;font-weight:bold;">true</span><span style="">)</span></i></td></table>
|
||||
@@ -1,4 +1,4 @@
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre>class <b>C</b>
|
||||
extends <a href="psi_element://java.lang.Object"><code>Object</code></a></pre></div><div class='content'>
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><span style="color:#000080;font-weight:bold;">class</span> <span style="color:#000000;">C</span>
|
||||
<span style="color:#000080;font-weight:bold;">extends </span><a href="psi_element://java.lang.Object"><code><span style="color:#000000;">Object</span></code></a></pre></div><div class='content'>
|
||||
a << b
|
||||
</div><table class='sections'><p></table>
|
||||
@@ -1,5 +1,5 @@
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre>class <b>C</b>
|
||||
extends java.lang.Object</pre></div><div class='content'>
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><span style="color:#000080;font-weight:bold;">class</span> <span style="color:#000000;">C</span>
|
||||
<span style="color:#000080;font-weight:bold;">extends </span>java.lang.Object</pre></div><div class='content'>
|
||||
some text
|
||||
|
||||
</div><table class='sections'><p><tr><td valign='top' class='section'><p>See Also:</td><td valign='top'><p>System.out</td></table>
|
||||
@@ -1,2 +1,2 @@
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><a href="psi_element://E"><code>E</code></a><br><a href="psi_element://E"><code>E</code></a> <b>A</b>
|
||||
Enum constant ordinal: 0</pre></div><table class='sections'></table>
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><a href="psi_element://E"><code><span style="color:#000000;">E</span></code></a> <span style="color:#660e7a;">A</span><br><span class='grayed'>defined in </span><a href="psi_element://E"><code><span style="color:#000000;">E</span></code></a>
|
||||
<span class='grayed'>Enum constant ordinal: 0</span></pre></div><table class='sections'></table>
|
||||
@@ -1 +1 @@
|
||||
<a href="psi_element://E">E</a><br/> <a href="psi_element://E">E</a> A<br/>Enum constant ordinal: 0
|
||||
<span style="color:#000000;"><a href="psi_element://E">E</a></span><br/> <span style="color:#000000;"><a href="psi_element://E">E</a></span> <span style="color:#660e7a;">A</span><br/><span class='grayed'>Enum constant ordinal: 0</span>
|
||||
@@ -1,4 +1,4 @@
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><a href="psi_element://En"><code>En</code></a><br><i>@<a href="psi_element://org.jetbrains.annotations.Contract"><code>Contract</code></a>(value = "_ -> param1", pure = true)</i>
|
||||
static int <b>valueOf</b>(int i)</pre></div><div class='content'>
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><i><span style="color:#808000;">@</span><a href="psi_element://org.jetbrains.annotations.Contract"><code style='font-size:96%;'><span style="color:#808000;">Contract</span></code></a><span style="">(</span><span style="">value</span><span style=""> = </span><span style="color:#008000;font-weight:bold;">"_ -> param1"</span><span style="">, </span><span style="">pure</span><span style=""> = </span><span style="color:#000080;font-weight:bold;">true</span><span style="">)</span></i>
|
||||
<span style="color:#000080;font-weight:bold;">static</span> <span style="color:#000080;font-weight:bold;">int</span> <span style="color:#000000;">valueOf</span><span style="">(</span><span style="color:#000080;font-weight:bold;">int</span> <span style="">i</span><span style="">)</span><br><span class='grayed'>defined in </span><a href="psi_element://En"><code><span style="color:#000000;">En</span></code></a></pre></div><div class='content'>
|
||||
myjavadoc
|
||||
<p></div><table class='sections'><p><tr><td valign='top' class='section'><p>Params:</td><td valign='top'>i – </td><tr><td valign='top' class='section'><p>Returns:</td><td valign='top'><p></td><tr><td valign='top' class='section'><p><i>Inferred</i><br> annotations:</td><td valign='top'><p><i>@<a href="psi_element://org.jetbrains.annotations.Contract">org.jetbrains.annotations.Contract</a>(value = "_ -> param1", pure = true)</i></td></table>
|
||||
</div><table class='sections'><tr><td valign='top' class='section'><p>Params:</td><td valign='top'><span style="">i</span> – </td><tr><td valign='top' class='section'><p>Returns:</td><td valign='top'><p></td><tr><td valign='top' class='section'><p><i>Inferred</i><br> annotations:</td><td valign='top'><p><i><span style="color:#808000;">@</span><a href="psi_element://org.jetbrains.annotations.Contract"><span style="color:#808000;">org.jetbrains.annotations.Contract</span></a><span style="">(</span><span style="">value</span><span style=""> = </span><span style="color:#008000;font-weight:bold;">"_ -> param1"</span><span style="">, </span><span style="">pure</span><span style=""> = </span><span style="color:#000080;font-weight:bold;">true</span><span style="">)</span></i></td></table>
|
||||
@@ -1,4 +1,4 @@
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre>class <b>Pattern</b>
|
||||
extends <a href="psi_element://java.lang.Object"><code>Object</code></a></pre></div><div class='content'>
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><span style="color:#000080;font-weight:bold;">class</span> <span style="color:#000000;">Pattern</span>
|
||||
<span style="color:#000080;font-weight:bold;">extends </span><a href="psi_element://java.lang.Object"><code><span style="color:#000000;">Object</span></code></a></pre></div><div class='content'>
|
||||
\W \n
|
||||
</div><table class='sections'><p></table>
|
||||
@@ -1,3 +1,3 @@
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><a href="psi_element://Foo"><code>Foo</code></a><br>int <b>foo</b></pre></div><div class='content'>
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><span style="color:#000080;font-weight:bold;">int</span> <span style="color:#660e7a;font-weight:bold;">foo</span><br><span class='grayed'>defined in </span><a href="psi_element://Foo"><code><span style="color:#000000;">Foo</span></code></a></pre></div><div class='content'>
|
||||
&gt; is > &lt; is < &quot; is "
|
||||
</div><table class='sections'><p></table>
|
||||
@@ -1 +1 @@
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><a href="psi_element://A"><code>A</code></a><br>public static void <b>JAVADOC_ME</b>()</pre></div><div class='content'> The value of B is <a href="psi_element://A#B">"a<b"</a>. <p></div><table class='sections'><p></table>
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><span style="color:#000080;font-weight:bold;">public static</span> <span style="color:#000080;font-weight:bold;">void</span> <span style="color:#000000;">JAVADOC_ME</span><span style="">(</span><span style="">)</span><br><span class='grayed'>defined in </span><a href="psi_element://A"><code><span style="color:#000000;">A</span></code></a></pre></div><div class='content'> The value of B is <a href="psi_element://A#B">"a<b"</a>. </div><table class='sections'></table>
|
||||
@@ -1 +1 @@
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><a href="psi_element://A"><code>A</code></a><br>public static int[] <b>x</b> = new int[]{1, 2, 3}</pre></div><table class='sections'></table>
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><span style="color:#000080;font-weight:bold;">public static</span> <span style="color:#000080;font-weight:bold;">int</span><span style="">[]</span> <span style="color:#660e7a;font-style:italic;">x</span><span style=""> = </span><span style="color:#000080;font-weight:bold;">new </span><span style="color:#000080;font-weight:bold;">int</span><span style="">[]</span><span style="">{</span><span style="color:#0000ff;">1</span><span style="">, </span><span style="color:#0000ff;">2</span><span style="">, </span><span style="color:#0000ff;">3</span><span style="">}</span><br><span class='grayed'>defined in </span><a href="psi_element://A"><code><span style="color:#000000;">A</span></code></a></pre></div><table class='sections'></table>
|
||||
@@ -1 +1 @@
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><a href="psi_element://A"><code>A</code></a><br>public static <font color=red>java.util.function.Consumer<Integer></font> <b>F</b> = i -> System.out.println(i)</pre></div><table class='sections'></table>
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><span style="color:#000080;font-weight:bold;">public static</span> <font color=red>java.util.function.Consumer<Integer></font> <span style="color:#660e7a;font-style:italic;">F</span><span style=""> = </span><span style="">i -> System.out.println(i)</span><br><span class='grayed'>defined in </span><a href="psi_element://A"><code><span style="color:#000000;">A</span></code></a></pre></div><table class='sections'></table>
|
||||
@@ -1 +1 @@
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><a href="psi_element://A"><code>A</code></a><br>public static int[] <b>x</b> = new int[1]</pre></div><table class='sections'></table>
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><span style="color:#000080;font-weight:bold;">public static</span> <span style="color:#000080;font-weight:bold;">int</span><span style="">[]</span> <span style="color:#660e7a;font-style:italic;">x</span><span style=""> = </span><span style="color:#000080;font-weight:bold;">new </span><span style="color:#000080;font-weight:bold;">int</span><span style="">[<span style="color:#0000ff;">1</span><span style="">]</span><br><span class='grayed'>defined in </span><a href="psi_element://A"><code><span style="color:#000000;">A</span></code></a></pre></div><table class='sections'></table>
|
||||
@@ -1 +1 @@
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><a href="psi_element://A"><code>A</code></a><br>public static int <b>JAVADOC_ME</b> = 23</pre></div><div class='content'> The value of the field is 23. </div><table class='sections'><p></table>
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><span style="color:#000080;font-weight:bold;">public static</span> <span style="color:#000080;font-weight:bold;">int</span> <span style="color:#660e7a;font-style:italic;">JAVADOC_ME</span><span style=""> = </span><span style="color:#0000ff;">23</span><br><span class='grayed'>defined in </span><a href="psi_element://A"><code><span style="color:#000000;">A</span></code></a></pre></div><div class='content'> The value of the field is 23. </div><table class='sections'><p></table>
|
||||
@@ -1,2 +1,2 @@
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre>class <b>htmlLink</b>
|
||||
extends <a href="psi_element://java.lang.Object"><code>Object</code></a></pre></div><div class='content'> <a href="psi_element://other">link</a> </div><table class='sections'><p></table>
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><span style="color:#000080;font-weight:bold;">class</span> <span style="color:#000000;">htmlLink</span>
|
||||
<span style="color:#000080;font-weight:bold;">extends </span><a href="psi_element://java.lang.Object"><code><span style="color:#000000;">Object</span></code></a></pre></div><div class='content'> <a href="psi_element://other">link</a> </div><table class='sections'><p></table>
|
||||
+2
-2
@@ -1,2 +1,2 @@
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre>pack<br>class <b>htmlLinkDeep</b>
|
||||
extends <a href="psi_element://java.lang.Object"><code>Object</code></a></pre></div><div class='content'> <a href="psi_element://other">link</a> </div><table class='sections'><p></table>
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><span style="color:#000080;font-weight:bold;">class</span> <span style="color:#000000;">htmlLinkDeep</span>
|
||||
<span style="color:#000080;font-weight:bold;">extends </span><a href="psi_element://java.lang.Object"><code><span style="color:#000000;">Object</span></code></a><br><span class='grayed'>defined in </span><a href="psi_element://pack"><code><span style="color:#000000;">pack</span></code></a></pre></div><div class='content'> <a href="psi_element://other">link</a> </div><table class='sections'><p></table>
|
||||
@@ -1,4 +1,4 @@
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre>pack<br>class <b>A</b>
|
||||
extends <a href="psi_element://java.lang.Object"><code>Object</code></a></pre></div><div class='content'>
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><span style="color:#000080;font-weight:bold;">class</span> <span style="color:#000000;">A</span>
|
||||
<span style="color:#000080;font-weight:bold;">extends </span><a href="psi_element://java.lang.Object"><code><span style="color:#000000;">Object</span></code></a><br><span class='grayed'>defined in </span><a href="psi_element://pack"><code><span style="color:#000000;">pack</span></code></a></pre></div><div class='content'>
|
||||
<a href="psi_element://pack###section2">link</a>
|
||||
</div><table class='sections'><p></table>
|
||||
@@ -1,5 +1,5 @@
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre>class <b>Test</b>
|
||||
extends <a href="psi_element://java.lang.Object"><code>Object</code></a></pre></div><div class='content'>
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><span style="color:#000080;font-weight:bold;">class</span> <span style="color:#000000;">Test</span>
|
||||
<span style="color:#000080;font-weight:bold;">extends </span><a href="psi_element://java.lang.Object"><code><span style="color:#000000;">Object</span></code></a></pre></div><div class='content'>
|
||||
<a name="section1">section one</a>
|
||||
text
|
||||
<a href="psi_element://Test###section1">link up</a>
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><a href="psi_element://Idea4780"><code>Idea4780</code></a><br>public <a href="psi_element://java.lang.Object"><code>Object</code></a> <b>read</b>()
|
||||
throws <a href="psi_element://java.io.IOException"><code>IOException</code></a></pre></div><table class='sections'><p><tr><td valign='top' class='section'><p>Throws:</td><td valign='top'><p><a href="psi_element://java.io.IOException"><code>IOException</code></a> – if an I/O error occurs while reading. <p><a href="psi_element://java.io.EOFException"><code>EOFException</code></a> – if this source is already closed when the <code>read()</code> is called, or is closed during the <code>read()</code>. <p><font color=red>InterruptedIOException</font> – if the reading thread is interrupted.</td></table>
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><span style="color:#000080;font-weight:bold;">public</span> <a href="psi_element://java.lang.Object"><code><span style="color:#000000;">Object</span></code></a> <span style="color:#000000;">read</span><span style="">(</span><span style="">)</span>
|
||||
<span style="color:#000080;font-weight:bold;">throws</span> <a href="psi_element://java.io.IOException"><code><span style="color:#000000;">IOException</span></code></a><br><span class='grayed'>defined in </span><a href="psi_element://Idea4780"><code><span style="color:#000000;">Idea4780</span></code></a></pre></div><table class='sections'><p><tr><td valign='top' class='section'><p>Throws:</td><td valign='top'><p><a href="psi_element://java.io.IOException"><code><span style="color:#000000;">IOException</span></code></a> – if an I/O error occurs while reading. <p><a href="psi_element://java.io.EOFException"><code><span style="color:#000000;">EOFException</span></code></a> – if this source is already closed when the <code>read()</code> is called, or is closed during the <code>read()</code>. <p><font color=red>InterruptedIOException</font> – if the reading thread is interrupted.</td></table>
|
||||
@@ -1,2 +1,2 @@
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><a href="psi_element://InheritedDocInThrows"><code>InheritedDocInThrows</code></a><br>void <b>foo</b>()
|
||||
throws <a href="psi_element://java.io.IOException"><code>IOException</code></a></pre></div><table class='sections'><p><tr><td valign='top' class='section'><p>Overrides:</td><td valign='top'><p><a href="psi_element://A#foo()"><code>foo</code></a> in class <a href="psi_element://A"><code>A</code></a></td><tr><td valign='top' class='section'><p>Throws:</td><td valign='top'><p><a href="psi_element://java.io.IOException"><code>IOException</code></a> – la-la-la</td></table>
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><span style="color:#000080;font-weight:bold;">void</span> <span style="color:#000000;">foo</span><span style="">(</span><span style="">)</span>
|
||||
<span style="color:#000080;font-weight:bold;">throws</span> <a href="psi_element://java.io.IOException"><code><span style="color:#000000;">IOException</span></code></a><br><span class='grayed'>defined in </span><a href="psi_element://InheritedDocInThrows"><code><span style="color:#000000;">InheritedDocInThrows</span></code></a></pre></div><table class='sections'><p><tr><td valign='top' class='section'><p>Overrides:</td><td valign='top'><p><a href="psi_element://A#foo()"><code><span style="color:#000000;">foo</span></code></a> in class <a href="psi_element://A"><code><span style="color:#000000;">A</span></code></a></td><tr><td valign='top' class='section'><p>Throws:</td><td valign='top'><p><a href="psi_element://java.io.IOException"><code><span style="color:#000000;">IOException</span></code></a> – la-la-la</td></table>
|
||||
@@ -1,2 +1,2 @@
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><a href="psi_element://InheritedDocInThrows1"><code>InheritedDocInThrows1</code></a><br>void <b>foo</b>()
|
||||
throws <a href="psi_element://java.io.IOException"><code>IOException</code></a></pre></div><table class='sections'><p><tr><td valign='top' class='section'><p>Overrides:</td><td valign='top'><p><a href="psi_element://A#foo()"><code>foo</code></a> in class <a href="psi_element://A"><code>A</code></a></td><tr><td valign='top' class='section'><p>Throws:</td><td valign='top'><p><a href="psi_element://java.io.IOException"><code>IOException</code></a> – comment</td></table>
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><span style="color:#000080;font-weight:bold;">void</span> <span style="color:#000000;">foo</span><span style="">(</span><span style="">)</span>
|
||||
<span style="color:#000080;font-weight:bold;">throws</span> <a href="psi_element://java.io.IOException"><code><span style="color:#000000;">IOException</span></code></a><br><span class='grayed'>defined in </span><a href="psi_element://InheritedDocInThrows1"><code><span style="color:#000000;">InheritedDocInThrows1</span></code></a></pre></div><table class='sections'><p><tr><td valign='top' class='section'><p>Overrides:</td><td valign='top'><p><a href="psi_element://A#foo()"><code><span style="color:#000000;">foo</span></code></a> in class <a href="psi_element://A"><code><span style="color:#000000;">A</span></code></a></td><tr><td valign='top' class='section'><p>Throws:</td><td valign='top'><p><a href="psi_element://java.io.IOException"><code><span style="color:#000000;">IOException</span></code></a> – comment</td></table>
|
||||
@@ -1 +1 @@
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><a href="psi_element://java.lang.String"><code>String</code></a> <b>s</b></pre></div><div class='content'>s – String parameter.</div><table class='sections'></table>
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><a href="psi_element://java.lang.String"><code><span style="color:#000000;">String</span></code></a> <span style="color:#000000;">s</span></pre></div><div class='content'><span style="">s</span> – String parameter.</div><table class='sections'></table>
|
||||
@@ -1 +1 @@
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><a href="psi_element://A"><code>A</code></a><br>public <a href="psi_element://java.lang.String"><code>String</code></a> <b>strings</b> = "A<BLANK>B"</pre></div><table class='sections'></table>
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><span style="color:#000080;font-weight:bold;">public</span> <a href="psi_element://java.lang.String"><code><span style="color:#000000;">String</span></code></a> <span style="color:#660e7a;font-weight:bold;">strings</span><span style=""> = </span><span style="color:#008000;font-weight:bold;">"A<BLANK>B"</span><br><span class='grayed'>defined in </span><a href="psi_element://A"><code><span style="color:#000000;">A</span></code></a></pre></div><table class='sections'></table>
|
||||
@@ -1 +1 @@
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><a href="psi_element://A"><code>A</code></a><br>public <a href="psi_element://java.util.List"><code>List</code></a><<a href="psi_element://java.lang.String"><code>String</code></a>> <b>strings</b> = new <a href="psi_element://java.util.ArrayList"><code>ArrayList</code></a><<a href="psi_element://java.lang.String"><code>String</code></a>>(new <a href="psi_element://java.util.ArrayList"><code>ArrayList</code></a><<a href="psi_element://java.lang.Integer"><code>Integer</code></a>>(), Collections.singleton(new <a href="psi_element://java.util.ArrayList"><code>ArrayList</code></a><<a href="psi_element://java.lang.Double"><code>Double</code></a>>()))</pre></div><table class='sections'></table>
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><span style="color:#000080;font-weight:bold;">public</span> <a href="psi_element://java.util.List"><code><span style="color:#000000;">List</span></code></a><span style=""><</span><a href="psi_element://java.lang.String"><code><span style="color:#000000;">String</span></code></a><span style="">></span> <span style="color:#660e7a;font-weight:bold;">strings</span><span style=""> = </span><span style="color:#000080;font-weight:bold;">new </span><a href="psi_element://java.util.ArrayList"><code><span style="color:#000000;">ArrayList</span></code></a><span style=""><</span><a href="psi_element://java.lang.String"><code><span style="color:#000000;">String</span></code></a><span style="">></span><span style="">(</span><span style="color:#000080;font-weight:bold;">new </span><a href="psi_element://java.util.ArrayList"><code><span style="color:#000000;">ArrayList</span></code></a><span style=""><</span><a href="psi_element://java.lang.Integer"><code><span style="color:#000000;">Integer</span></code></a><span style="">></span><span style="">(</span><span style="">)</span><span style="">, </span><span style="color:#000000;">Collections.singleton</span><span style="">(</span><span style="color:#000080;font-weight:bold;">new </span><a href="psi_element://java.util.ArrayList"><code><span style="color:#000000;">ArrayList</span></code></a><span style=""><</span><a href="psi_element://java.lang.Double"><code><span style="color:#000000;">Double</span></code></a><span style="">></span><span style="">(</span><span style="">)</span><span style="">)</span><span style="">)</span><br><span class='grayed'>defined in </span><a href="psi_element://A"><code><span style="color:#000000;">A</span></code></a></pre></div><table class='sections'></table>
|
||||
@@ -1 +1 @@
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><a href="psi_element://Test"><code>Test</code></a><br>public int <b>field</b> = anotherField</pre></div><table class='sections'></table>
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><span style="color:#000080;font-weight:bold;">public</span> <span style="color:#000080;font-weight:bold;">int</span> <span style="color:#660e7a;font-weight:bold;">field</span><span style=""> = </span><span style="">anotherField</span><br><span class='grayed'>defined in </span><a href="psi_element://Test"><code><span style="color:#000000;">Test</span></code></a></pre></div><table class='sections'></table>
|
||||
@@ -1 +1 @@
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre>int <b>a</b></pre></div><table class='sections'></table>
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><span style="color:#000080;font-weight:bold;">int</span> <span style="color:#000000;">a</span></pre></div><table class='sections'></table>
|
||||
@@ -1,2 +1,2 @@
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre>class <b>Test</b>
|
||||
extends <a href="psi_element://java.lang.Object"><code>Object</code></a></pre></div><div class='content'> <pre>abc</pre> </div><table class='sections'><p></table>
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><span style="color:#000080;font-weight:bold;">class</span> <span style="color:#000000;">Test</span>
|
||||
<span style="color:#000080;font-weight:bold;">extends </span><a href="psi_element://java.lang.Object"><code><span style="color:#000000;">Object</span></code></a></pre></div><div class='content'> <pre>abc</pre> </div><table class='sections'><p></table>
|
||||
@@ -1,3 +1,3 @@
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><a href="psi_element://Foo"><code>Foo</code></a><br>int <b>foo</b></pre></div><div class='content'>
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><span style="color:#000080;font-weight:bold;">int</span> <span style="color:#660e7a;font-weight:bold;">foo</span><br><span class='grayed'>defined in </span><a href="psi_element://Foo"><code><span style="color:#000000;">Foo</span></code></a></pre></div><div class='content'>
|
||||
foo<>
|
||||
</div><table class='sections'><p></table>
|
||||
@@ -1,9 +1,6 @@
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre>class <b>Foo</b>
|
||||
extends <a href="psi_element://java.lang.Object"><code>Object</code></a></pre></div><div class='content'>
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><span style="color:#000080;font-weight:bold;">class</span> <span style="color:#000000;">Foo</span>
|
||||
<span style="color:#000080;font-weight:bold;">extends </span><a href="psi_element://java.lang.Object"><code><span style="color:#000000;">Object</span></code></a></pre></div><div class='content'>
|
||||
<pre>
|
||||
<code>
|
||||
{@literal @Inject}
|
||||
public class Foo
|
||||
</code>
|
||||
<code><span style=""><span style="">{@literal @Inject}</span><span style="color:#000080;font-weight:bold;">public class </span><span style="">Foo</span></span></code>
|
||||
</pre>
|
||||
</div><table class='sections'><p></table>
|
||||
@@ -1,2 +1,2 @@
|
||||
<html><head><base href="placeholder"></head><body><div class='definition-only'><pre>class <b>Foo</b>
|
||||
extends <a href="psi_element://java.lang.Object"><code>Object</code></a></pre></div>
|
||||
<html><head><base href="placeholder"></head><body><div class='definition-only'><pre><span style="color:#000080;font-weight:bold;">class</span> <span style="color:#000000;">Foo</span>
|
||||
<span style="color:#000080;font-weight:bold;">extends </span><a href="psi_element://java.lang.Object"><code><span style="color:#000000;">Object</span></code></a></pre></div>
|
||||
@@ -1 +1 @@
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><a href="psi_element://Bar"><code>Bar</code></a><br>void <b>m</b>(int bar)</pre></div><table class='sections'><p><tr><td valign='top' class='section'><p>Overrides:</td><td valign='top'><p><a href="psi_element://Foo#m(int)"><code>m</code></a> in class <a href="psi_element://Foo"><code>Foo</code></a></td><tr><td valign='top' class='section'><p>Params:</td><td valign='top'>bar – description</td></table>
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><span style="color:#000080;font-weight:bold;">void</span> <span style="color:#000000;">m</span><span style="">(</span><span style="color:#000080;font-weight:bold;">int</span> <span style="">bar</span><span style="">)</span><br><span class='grayed'>defined in </span><a href="psi_element://Bar"><code><span style="color:#000000;">Bar</span></code></a></pre></div><table class='sections'><p><tr><td valign='top' class='section'><p>Overrides:</td><td valign='top'><p><a href="psi_element://Foo#m(int)"><code><span style="color:#000000;">m</span></code></a> in class <a href="psi_element://Foo"><code><span style="color:#000000;">Foo</span></code></a></td><tr><td valign='top' class='section'><p>Params:</td><td valign='top'><span style="">bar</span> – description</td></table>
|
||||
+1
-1
@@ -1 +1 @@
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><a href="psi_element://Bar"><code>Bar</code></a><br><U> void <b>m</b>(U u)</pre></div><table class='sections'><p><tr><td valign='top' class='section'><p>Overrides:</td><td valign='top'><p><a href="psi_element://Foo#m(java.lang.Object)"><code>m</code></a> in class <a href="psi_element://Foo"><code>Foo</code></a></td><tr><td valign='top' class='section'><p>Type parameters:</td><td valign='top'><U> – description</td></table>
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><span style=""><</span><span style="color:#20999d;">U</span><span style="">></span> <span style="color:#000080;font-weight:bold;">void</span> <span style="color:#000000;">m</span><span style="">(</span><span style="color:#20999d;">U</span> <span style="">u</span><span style="">)</span><br><span class='grayed'>defined in </span><a href="psi_element://Bar"><code><span style="color:#000000;">Bar</span></code></a></pre></div><table class='sections'><p><tr><td valign='top' class='section'><p>Overrides:</td><td valign='top'><p><a href="psi_element://Foo#m(java.lang.Object)"><code><span style="color:#000000;">m</span></code></a> in class <a href="psi_element://Foo"><code><span style="color:#000000;">Foo</span></code></a></td><tr><td valign='top' class='section'><p>Type parameters:</td><td valign='top'><<span style="color:#20999d;">U</span>> – description</td></table>
|
||||
@@ -1 +1 @@
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><a href="psi_element://A"><code>A</code></a><br>public byte[] <b>bytes</b> = "&amp;".getBytes()</pre></div><table class='sections'></table>
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><span style="color:#000080;font-weight:bold;">public</span> <span style="color:#000080;font-weight:bold;">byte</span><span style="">[]</span> <span style="color:#660e7a;font-weight:bold;">bytes</span><span style=""> = </span><span style="color:#000000;">"&amp;".getBytes</span><span style="">(</span><span style="">)</span><br><span class='grayed'>defined in </span><a href="psi_element://A"><code><span style="color:#000000;">A</span></code></a></pre></div><table class='sections'></table>
|
||||
@@ -1,3 +1,3 @@
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><a href="psi_element://Producer"><code>Producer<T></code></a><br><E extends <a href="psi_element://java.lang.Exception"><code>Exception</code></a>> <font color=red>@Anno</font> <a href="psi_element://java.lang.String"><code>String</code></a> <b>drainTo</b>(<a href="psi_element://Consumer"><code>Consumer</code></a><? super T, E> consumer,
|
||||
<a href="psi_element://java.lang.Object"><code>Object</code></a> someParameter)
|
||||
throws <a href="psi_element://E"><code>E</code></a></pre></div><table class='sections'><p><tr><td valign='top' class='section'><p>Throws:</td><td valign='top'><p><a href="psi_element://E"><code>E</code></a></td></table>
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><span style=""><</span><span style="color:#20999d;">E</span><span style="color:#000080;font-weight:bold;"> extends </span><a href="psi_element://java.lang.Exception"><code><span style="color:#000000;">Exception</span></code></a><span style="">></span> <font color=red>@</font> <a href="psi_element://java.lang.String"><code><span style="color:#000000;">String</span></code></a> <span style="color:#000000;">drainTo</span><span style="">(</span><a href="psi_element://Consumer"><code><span style="color:#000000;">Consumer</span></code></a><span style=""><</span><span style="">?</span><span style="color:#000080;font-weight:bold;"> super </span><span style="color:#20999d;">T</span><span style="">, </span><span style="color:#20999d;">E</span><span style="">></span> <span style="">consumer</span><span style="">,
|
||||
</span> <a href="psi_element://java.lang.Object"><code><span style="color:#000000;">Object</span></code></a> <span style="">someParameter</span><span style="">)</span>
|
||||
<span style="color:#000080;font-weight:bold;">throws</span> <a href="psi_element://E"><code><span style="color:#000000;">E</span></code></a><br><span class='grayed'>defined in </span><a href="psi_element://Producer"><code><span style="color:#000000;">Producer<span style=""><</span><span style="color:#20999d;">T</span><span style="">></span></span></code></a></pre></div><table class='sections'><p><tr><td valign='top' class='section'><p>Throws:</td><td valign='top'><p><a href="psi_element://E"><code><span style="color:#000000;">E</span></code></a></td></table>
|
||||
@@ -1 +1 @@
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><a href="psi_element://MethodTypeParam"><code>MethodTypeParam</code></a><br><T> void <b>foo</b>(T t)</pre></div><table class='sections'><p><tr><td valign='top' class='section'><p>Type parameters:</td><td valign='top'><T> – type param</td></table>
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><span style=""><</span><span style="color:#20999d;">T</span><span style="">></span> <span style="color:#000080;font-weight:bold;">void</span> <span style="color:#000000;">foo</span><span style="">(</span><span style="color:#20999d;">T</span> <span style="">t</span><span style="">)</span><br><span class='grayed'>defined in </span><a href="psi_element://MethodTypeParam"><code><span style="color:#000000;">MethodTypeParam</span></code></a></pre></div><table class='sections'><p></table>
|
||||
@@ -1,2 +1,2 @@
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre>class <b>Test</b>
|
||||
extends <a href="psi_element://java.lang.Object"><code>Object</code></a></pre></div><div class='content'> <pre>a bc</pre> </div><table class='sections'><p></table>
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><span style="color:#000080;font-weight:bold;">class</span> <span style="color:#000000;">Test</span>
|
||||
<span style="color:#000080;font-weight:bold;">extends </span><a href="psi_element://java.lang.Object"><code><span style="color:#000000;">Object</span></code></a></pre></div><div class='content'> <pre>a bc</pre> </div><table class='sections'><p></table>
|
||||
@@ -1,2 +1,2 @@
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre>class <b>Foo</b>
|
||||
extends <a href="psi_element://java.lang.Object"><code>Object</code></a></pre></div><div class='content'> foobar </div><table class='sections'><p></table>
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><span style="color:#000080;font-weight:bold;">class</span> <span style="color:#000000;">Foo</span>
|
||||
<span style="color:#000080;font-weight:bold;">extends </span><a href="psi_element://java.lang.Object"><code><span style="color:#000000;">Object</span></code></a></pre></div><div class='content'> foobar </div><table class='sections'><p></table>
|
||||
@@ -1,4 +1,4 @@
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><a href="psi_element://Test"><code>Test</code></a><br>public <a href="psi_element://java.lang.String"><code>String</code></a> <b>field</b> = null</pre></div><div class='content'>
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><span style="color:#000080;font-weight:bold;">public</span> <a href="psi_element://java.lang.String"><code><span style="color:#000000;">String</span></code></a> <span style="color:#660e7a;font-weight:bold;">field</span><span style=""> = </span><span style="color:#000080;font-weight:bold;">null</span><br><span class='grayed'>defined in </span><a href="psi_element://Test"><code><span style="color:#000000;">Test</span></code></a></pre></div><div class='content'>
|
||||
<pre>
|
||||
foo
|
||||
<p></p>
|
||||
|
||||
@@ -1 +1 @@
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre>int <b>i</b></pre></div><div class='content'>i – input</div>
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><span style="color:#000080;font-weight:bold;">int</span> <span style="color:#000000;">i</span></pre></div><div class='content'><span style="">i</span> – input</div>
|
||||
@@ -1,4 +1,4 @@
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre>record <b>Test</b>
|
||||
extends <font color=red>java.lang.Record</font></pre></div><div class='content'>
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><span style="color:#000080;font-weight:bold;">record</span> <span style="color:#000000;">Test</span>
|
||||
<span style="color:#000080;font-weight:bold;">extends </span><font color=red>java.lang.Record</font></pre></div><div class='content'>
|
||||
main comment
|
||||
</div><table class='sections'><p><tr><td valign='top' class='section'><p>Params:</td><td valign='top'>test – simple description</td></table>
|
||||
</div><table class='sections'><p><tr><td valign='top' class='section'><p>Params:</td><td valign='top'><span style="">test</span> – simple description</td></table>
|
||||
@@ -1 +1 @@
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><a href="psi_element://A"><code>A</code></a><br>public static int <b>JAVADOC_ME</b></pre></div><div class='content'> Test </div><table class='sections'><p></table>
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><span style="color:#000080;font-weight:bold;">public static</span> <span style="color:#000080;font-weight:bold;">int</span> <span style="color:#660e7a;font-style:italic;">JAVADOC_ME</span><br><span class='grayed'>defined in </span><a href="psi_element://A"><code><span style="color:#000000;">A</span></code></a></pre></div><div class='content'> Test </div><table class='sections'><p></table>
|
||||
@@ -1 +1 @@
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><a href="psi_element://Test"><code>Test<E extends <a href="psi_element://java.lang.Number"><code>Number</code></a>></code></a><br>E <b>remove</b>(<a href="psi_element://java.lang.Integer"><code>Integer</code></a> idx)</pre></div><table class='sections'><p><tr><td valign='top' class='section'><p>See Also:</td><td valign='top'><p><a href="psi_element://TestImpl#remove(java.lang.Number)"><code>TestImpl.remove(Number)</code></a></td></table>
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><span style="color:#20999d;">E</span> <span style="color:#000000;">remove</span><span style="">(</span><a href="psi_element://java.lang.Integer"><code><span style="color:#000000;">Integer</span></code></a> <span style="">idx</span><span style="">)</span><br><span class='grayed'>defined in </span><a href="psi_element://Test"><code><span style="color:#000000;">Test<span style=""><</span><span style="color:#20999d;">E</span><span style="color:#000080;font-weight:bold;"> extends </span><a href="psi_element://java.lang.Number"><code><span style="color:#000000;">Number</span></code></a><span style="">></span></span></code></a></pre></div><table class='sections'><p><tr><td valign='top' class='section'><p>See Also:</td><td valign='top'><p><a href="psi_element://TestImpl#remove(java.lang.Number)"><code><span style="color:#000000;">TestImpl</span><span style="">.</span><span style="color:#000000;">remove</span><span style="">(Number)</span></code></a></td></table>
|
||||
@@ -1 +1 @@
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><a href="psi_element://Test"><code>Test<E></code></a><br>E <b>remove</b>(int idx)</pre></div><table class='sections'><p><tr><td valign='top' class='section'><p>See Also:</td><td valign='top'><p><a href="psi_element://TestImpl#remove(int)"><code>TestImpl.remove(int)</code></a></td></table>
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><span style="color:#20999d;">E</span> <span style="color:#000000;">remove</span><span style="">(</span><span style="color:#000080;font-weight:bold;">int</span> <span style="">idx</span><span style="">)</span><br><span class='grayed'>defined in </span><a href="psi_element://Test"><code><span style="color:#000000;">Test<span style=""><</span><span style="color:#20999d;">E</span><span style="">></span></span></code></a></pre></div><table class='sections'><p><tr><td valign='top' class='section'><p>See Also:</td><td valign='top'><p><a href="psi_element://TestImpl#remove(int)"><code><span style="color:#000000;">TestImpl</span><span style="">.</span><span style="color:#000000;">remove</span><span style="">(</span><span style="color:#000080;font-weight:bold;">int</span><span style="">)</span></code></a></td></table>
|
||||
@@ -1,5 +1,5 @@
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><a href="psi_element://E"><code>E</code></a><br><i>@<a href="psi_element://org.jetbrains.annotations.Contract"><code>Contract</code></a>(value = " -> new", pure = true)</i>
|
||||
public static <a href="psi_element://E"><code>E</code></a>[] <b>values</b>()</pre></div><div class='content'>
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><i><span style="color:#808000;">@</span><a href="psi_element://org.jetbrains.annotations.Contract"><code style='font-size:96%;'><span style="color:#808000;">Contract</span></code></a><span style="">(</span><span style="">value</span><span style=""> = </span><span style="color:#008000;font-weight:bold;">" -> new"</span><span style="">, </span><span style="">pure</span><span style=""> = </span><span style="color:#000080;font-weight:bold;">true</span><span style="">)</span></i>
|
||||
<span style="color:#000080;font-weight:bold;">public static</span> <a href="psi_element://E"><code><span style="color:#000000;">E</span></code></a><span style="">[]</span> <span style="color:#000000;">values</span><span style="">(</span><span style="">)</span><br><span class='grayed'>defined in </span><a href="psi_element://E"><code><span style="color:#000000;">E</span></code></a></pre></div><div class='content'>
|
||||
Returns an array containing the constants of this enum
|
||||
type, in the order they're declared. This method may be
|
||||
used to iterate over the constants as follows:
|
||||
@@ -8,4 +8,4 @@ public static <a href="psi_element://E"><code>E</code></a>[] <b>values
|
||||
System.out.println(c);
|
||||
</pre>
|
||||
|
||||
<p></div><table class='sections'><p><tr><td valign='top' class='section'><p>Returns:</td><td valign='top'><p>an array containing the constants of this enum type, in the order they're declared</td><tr><td valign='top' class='section'><p><i>Inferred</i><br> annotations:</td><td valign='top'><p><i>@<a href="psi_element://org.jetbrains.annotations.Contract">org.jetbrains.annotations.Contract</a>(value = " -> new", pure = true)</i></td></table>
|
||||
</div><table class='sections'><tr><td valign='top' class='section'><p>Returns:</td><td valign='top'><p>an array containing the constants of this enum type, in the order they're declared</td><tr><td valign='top' class='section'><p><i>Inferred</i><br> annotations:</td><td valign='top'><p><i><span style="color:#808000;">@</span><a href="psi_element://org.jetbrains.annotations.Contract"><span style="color:#808000;">org.jetbrains.annotations.Contract</span></a><span style="">(</span><span style="">value</span><span style=""> = </span><span style="color:#008000;font-weight:bold;">" -> new"</span><span style="">, </span><span style="">pure</span><span style=""> = </span><span style="color:#000080;font-weight:bold;">true</span><span style="">)</span></i></td></table>
|
||||
@@ -1 +1 @@
|
||||
<html><head><base href="placeholder"></head><body><div class='definition-only'><pre><a href="psi_element://Test"><code>Test</code></a><br>public <@<a href="psi_element://Test.Foo"><code>Foo</code></a>(1) T extends @<a href="psi_element://Test.Foo"><code>Foo</code></a>(2) <a href="psi_element://java.lang.CharSequence"><code>CharSequence</code></a> & @<a href="psi_element://Test.Foo"><code>Foo</code></a>(3) <a href="psi_element://java.lang.Cloneable"><code>Cloneable</code></a>> @<a href="psi_element://Test.Foo"><code>Foo</code></a>(4) <a href="psi_element://java.util.List"><code>List</code></a><@<a href="psi_element://Test.Foo"><code>Foo</code></a>(5) ? super @<a href="psi_element://Test.Foo"><code>Foo</code></a>(6) T> <b>bar</b>()</pre></div>
|
||||
<html><head><base href="placeholder"></head><body><div class='definition-only'><pre><span style="color:#000080;font-weight:bold;">public</span> <span style=""><</span><span style="color:#808000;">@</span><a href="psi_element://Test.Foo"><code style='font-size:96%;'><span style="color:#808000;">Foo</span></code></a><span style="">(</span><span style="color:#0000ff;">1</span><span style="">)</span> <span style="color:#20999d;">T</span><span style="color:#000080;font-weight:bold;"> extends </span><span style="color:#808000;">@</span><a href="psi_element://Test.Foo"><code style='font-size:96%;'><span style="color:#808000;">Foo</span></code></a><span style="">(</span><span style="color:#0000ff;">2</span><span style="">)</span> <a href="psi_element://java.lang.CharSequence"><code><span style="color:#000000;">CharSequence</span></code></a><span style=""> & </span><span style="color:#808000;">@</span><a href="psi_element://Test.Foo"><code style='font-size:96%;'><span style="color:#808000;">Foo</span></code></a><span style="">(</span><span style="color:#0000ff;">3</span><span style="">)</span> <a href="psi_element://java.lang.Cloneable"><code><span style="color:#000000;">Cloneable</span></code></a><span style="">></span> <span style="color:#808000;">@</span><a href="psi_element://Test.Foo"><code style='font-size:96%;'><span style="color:#808000;">Foo</span></code></a><span style="">(</span><span style="color:#0000ff;">4</span><span style="">)</span> <a href="psi_element://java.util.List"><code><span style="color:#000000;">List</span></code></a><span style=""><</span><span style="color:#808000;">@</span><a href="psi_element://Test.Foo"><code style='font-size:96%;'><span style="color:#808000;">Foo</span></code></a><span style="">(</span><span style="color:#0000ff;">5</span><span style="">)</span> <span style="">?</span><span style="color:#000080;font-weight:bold;"> super </span><span style="color:#808000;">@</span><a href="psi_element://Test.Foo"><code style='font-size:96%;'><span style="color:#808000;">Foo</span></code></a><span style="">(</span><span style="color:#0000ff;">6</span><span style="">)</span> <span style="color:#20999d;">T</span><span style="">></span> <span style="color:#000000;">bar</span><span style="">(</span><span style="">)</span><br><span class='grayed'>defined in </span><a href="psi_element://Test"><code><span style="color:#000000;">Test</span></code></a></pre></div>
|
||||
@@ -1 +1 @@
|
||||
<html><head><base href="placeholder"></head><body><div class='definition-only'><pre><a href="psi_element://Test"><code>Test</code></a><br>public @<a href="psi_element://Foo"><code>Foo</code></a>(1) <a href="psi_element://java.lang.String"><code>String</code></a> @<a href="psi_element://Foo"><code>Foo</code></a>(2) [] <b>foo</b>()</pre></div>
|
||||
<html><head><base href="placeholder"></head><body><div class='definition-only'><pre><span style="color:#000080;font-weight:bold;">public</span> <span style="color:#808000;">@</span><a href="psi_element://Foo"><code style='font-size:96%;'><span style="color:#808000;">Foo</span></code></a><span style="">(</span><span style="color:#0000ff;">1</span><span style="">)</span> <a href="psi_element://java.lang.String"><code><span style="color:#000000;">String</span></code></a> <span style="color:#808000;">@</span><a href="psi_element://Foo"><code style='font-size:96%;'><span style="color:#808000;">Foo</span></code></a><span style="">(</span><span style="color:#0000ff;">2</span><span style="">)</span> <span style="">[]</span> <span style="color:#000000;">foo</span><span style="">(</span><span style="">)</span><br><span class='grayed'>defined in </span><a href="psi_element://Test"><code><span style="color:#000000;">Test</span></code></a></pre></div>
|
||||
@@ -1,3 +1,3 @@
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre>@<a href="psi_element://Foo"><code>Foo</code></a>(1)
|
||||
class <b>Test</b>
|
||||
extends @<a href="psi_element://Foo"><code>Foo</code></a>(2) <a href="psi_element://java.util.List"><code>List</code></a><@<a href="psi_element://Foo"><code>Foo</code></a>(3) <a href="psi_element://java.lang.String"><code>String</code></a>></pre></div><table class='sections'></table>
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><span style="color:#808000;">@</span><a href="psi_element://Foo"><code style='font-size:96%;'><span style="color:#808000;">Foo</span></code></a><span style="">(</span><span style="color:#0000ff;">1</span><span style="">)</span>
|
||||
<span style="color:#000080;font-weight:bold;">class</span> <span style="color:#000000;">Test</span>
|
||||
<span style="color:#000080;font-weight:bold;">extends </span><span style="color:#808000;">@</span><a href="psi_element://Foo"><code style='font-size:96%;'><span style="color:#808000;">Foo</span></code></a><span style="">(</span><span style="color:#0000ff;">2</span><span style="">)</span> <a href="psi_element://java.util.List"><code><span style="color:#000000;">List</span></code></a><span style=""><</span><span style="color:#808000;">@</span><a href="psi_element://Foo"><code style='font-size:96%;'><span style="color:#808000;">Foo</span></code></a><span style="">(</span><span style="color:#0000ff;">3</span><span style="">)</span> <a href="psi_element://java.lang.String"><code><span style="color:#000000;">String</span></code></a><span style="">></span></pre></div><table class='sections'></table>
|
||||
@@ -1,4 +1,4 @@
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre>class <b>Test</b>
|
||||
extends <a href="psi_element://java.lang.Object"><code>Object</code></a></pre></div><div class='content'>
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><span style="color:#000080;font-weight:bold;">class</span> <span style="color:#000000;">Test</span>
|
||||
<span style="color:#000080;font-weight:bold;">extends </span><a href="psi_element://java.lang.Object"><code><span style="color:#000000;">Object</span></code></a></pre></div><div class='content'>
|
||||
a@b c@d
|
||||
</div><table class='sections'><p></table>
|
||||
@@ -1 +1 @@
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><a href="psi_element://A"><code>A</code></a><br>public static void <b>JAVADOC_ME</b>()</pre></div><div class='content'> The value of A is <a href="psi_element://A#A">23</a>. <p></div><table class='sections'><p></table>
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><span style="color:#000080;font-weight:bold;">public static</span> <span style="color:#000080;font-weight:bold;">void</span> <span style="color:#000000;">JAVADOC_ME</span><span style="">(</span><span style="">)</span><br><span class='grayed'>defined in </span><a href="psi_element://A"><code><span style="color:#000000;">A</span></code></a></pre></div><div class='content'> The value of A is <a href="psi_element://A#A">23</a>. </div><table class='sections'></table>
|
||||
@@ -1 +1 @@
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><a href="psi_element://A"><code>A</code></a><br>public static void <b>JAVADOC_ME</b>()</pre></div><div class='content'> The value of A is <a href="psi_element://A#A">23</a>. <p></div><table class='sections'><p></table>
|
||||
<html><head><base href="placeholder"></head><body><div class='definition'><pre><span style="color:#000080;font-weight:bold;">public static</span> <span style="color:#000080;font-weight:bold;">void</span> <span style="color:#000000;">JAVADOC_ME</span><span style="">(</span><span style="">)</span><br><span class='grayed'>defined in </span><a href="psi_element://A"><code><span style="color:#000000;">A</span></code></a></pre></div><div class='content'> The value of A is <a href="psi_element://A#A">23</a>. </div><table class='sections'></table>
|
||||
@@ -1 +1 @@
|
||||
<html><head><base href="placeholder"></head><body><div class='definition-only'><pre><a href="psi_element://A"><code>A</code></a><<a href="psi_element://java.lang.String"><code>String</code></a>> <b>a = new <a href="psi_element://A"><code>A</code></a><<a href="psi_element://java.lang.String"><code>String</code></a>>()</b></pre></div>
|
||||
<html><head><base href="placeholder"></head><body><div class='definition-only'><pre><a href="psi_element://A"><code><span style="color:#000000;">A</span></code></a><span style=""><</span><a href="psi_element://java.lang.String"><code><span style="color:#000000;">String</span></code></a><span style="">></span> <span style="color:#000000;">a</span><span style=""> = </span><span style="color:#000080;font-weight:bold;">new </span><a href="psi_element://A"><code><span style="color:#000000;">A</span></code></a><span style=""><</span><a href="psi_element://java.lang.String"><code><span style="color:#000000;">String</span></code></a><span style="">></span><span style="">(</span><span style="">)</span></pre></div>
|
||||
@@ -75,7 +75,7 @@ class JavaDocumentationTest extends LightJavaCodeInsightFixtureTestCase {
|
||||
def doc = new JavaDocumentationProvider().generateDoc(exprList, null)
|
||||
|
||||
def expected =
|
||||
"<div class='definition'><pre><a href=\"psi_element://Foo\"><code>Foo</code></a><br>void <b>doFoo</b>()</pre></div><table class='sections'><p></table>"
|
||||
"<div class=\'definition\'><pre><span style=\"color:#000080;font-weight:bold;\">void</span> <span style=\"color:#000000;\">doFoo</span><span style=\"\">(</span><span style=\"\">)</span><br><span class=\'grayed\'>defined in </span><a href=\"psi_element://Foo\"><code><span style=\"color:#000000;\">Foo</span></code></a></pre></div><table class=\'sections\'><p></table>"
|
||||
|
||||
assert doc == expected
|
||||
}
|
||||
@@ -87,7 +87,7 @@ class JavaDocumentationTest extends LightJavaCodeInsightFixtureTestCase {
|
||||
class Foo {{
|
||||
new Bar<String>().f<caret>oo();
|
||||
}}""",
|
||||
"Bar<br/> <a href=\"psi_element://java.util.List\">List</a><String> foo(String param)")
|
||||
"<span style=\"color:#000000;\"><a href=\"psi_element://Bar\">Bar</a></span><br/> <span style=\"color:#000000;\"><a href=\"psi_element://java.util.List\">List</a></span><span style=\"\"><</span><span style=\"color:#000000;\">String</span><span style=\"\">></span> <span style=\"color:#000000;\">foo</span><span style=\"\">(</span><span style=\"color:#000000;\">String</span> <span style=\"\">param</span><span style=\"\">)</span>")
|
||||
}
|
||||
|
||||
void testGenericField() {
|
||||
@@ -97,7 +97,7 @@ class JavaDocumentationTest extends LightJavaCodeInsightFixtureTestCase {
|
||||
class Foo {{
|
||||
new Bar<Integer>().fi<caret>eld
|
||||
}}""",
|
||||
"Bar<br/> Integer field")
|
||||
"<span style=\"color:#000000;\"><a href=\"psi_element://Bar\">Bar</a></span><br/> <span style=\"color:#000000;\">Integer</span> <span style=\"color:#660e7a;font-weight:bold;\">field</span>")
|
||||
}
|
||||
|
||||
void testMethodInAnonymousClass() {
|
||||
@@ -112,7 +112,7 @@ class JavaDocumentationTest extends LightJavaCodeInsightFixtureTestCase {
|
||||
private void m() {}
|
||||
}.run();
|
||||
}}""",
|
||||
"private void m()")
|
||||
"<span style=\"color:#000080;font-weight:bold;\">private</span> <span style=\"color:#000080;font-weight:bold;\">void</span> <span style=\"color:#000000;\">m</span><span style=\"\">(</span><span style=\"\">)</span>")
|
||||
}
|
||||
|
||||
void testAnnotationInCtrlHoverDoc() {
|
||||
@@ -124,7 +124,7 @@ class JavaDocumentationTest extends LightJavaCodeInsightFixtureTestCase {
|
||||
}
|
||||
@java.lang.annotation.Documented
|
||||
@interface Anno {} """,
|
||||
"<a href=\"psi_element://Foo\">Foo</a><br/> @Anno <br/>private void m()")
|
||||
"<span style=\"color:#000000;\"><a href=\"psi_element://Foo\">Foo</a></span><br/> <span style=\"color:#808000;\">@</span><span style=\"color:#808000;\"><a href=\"psi_element://Anno\">Anno</a></span> <br/><span style=\"color:#000080;font-weight:bold;\">private</span> <span style=\"color:#000080;font-weight:bold;\">void</span> <span style=\"color:#000000;\">m</span><span style=\"\">(</span><span style=\"\">)</span>")
|
||||
}
|
||||
|
||||
void testInnerClass() {
|
||||
@@ -139,7 +139,7 @@ class JavaDocumentationTest extends LightJavaCodeInsightFixtureTestCase {
|
||||
class Outer {
|
||||
class Inner {}
|
||||
}""",
|
||||
"<a href=\"psi_element://C\">C</a><br/> <a href=\"psi_element://Outer.Inner\">Outer.Inner</a> field")
|
||||
"<span style=\"color:#000000;\"><a href=\"psi_element://C\">C</a></span><br/> <span style=\"color:#000000;\"><a href=\"psi_element://Outer.Inner\">Outer.Inner</a></span> <span style=\"color:#660e7a;font-weight:bold;\">field</span>")
|
||||
}
|
||||
|
||||
void testAsterisksFiltering() {
|
||||
@@ -157,9 +157,7 @@ class JavaDocumentationTest extends LightJavaCodeInsightFixtureTestCase {
|
||||
def doc = new JavaDocumentationProvider().generateDoc(method, null)
|
||||
|
||||
def expected =
|
||||
"<div class='definition'><pre><a href=\"psi_element://C\"><code>C</code></a><br>public void <b>m</b>()</pre></div><div class='content'>\n" +
|
||||
" For example, <a href=\"psi_element://java.lang.String#String(byte[], int, int, java.lang.String)\"><code>String.String(byte[], int, int, String)</code></a>.\n" +
|
||||
" <p></div><table class='sections'><p></table>"
|
||||
"<div class=\'definition\'><pre><span style=\"color:#000080;font-weight:bold;\">public</span> <span style=\"color:#000080;font-weight:bold;\">void</span> <span style=\"color:#000000;\">m</span><span style=\"\">(</span><span style=\"\">)</span><br><span class=\'grayed\'>defined in </span><a href=\"psi_element://C\"><code><span style=\"color:#000000;\">C</span></code></a></pre></div><div class=\'content\'>\n For example, <a href=\"psi_element://java.lang.String#String(byte[], int, int, java.lang.String)\"><code><span style=\"color:#000000;\">String</span><span style=\"\">.</span><span style=\"color:#000000;\">String</span><span style=\"\">(</span><span style=\"color:#000080;font-weight:bold;\">byte</span><span style=\"\">[], </span><span style=\"color:#000080;font-weight:bold;\">int</span><span style=\"\">, </span><span style=\"color:#000080;font-weight:bold;\">int</span><span style=\"\">, String)</span></code></a>.\n </div><table class=\'sections\'></table>"
|
||||
|
||||
assert doc == expected
|
||||
}
|
||||
@@ -175,7 +173,7 @@ class JavaDocumentationTest extends LightJavaCodeInsightFixtureTestCase {
|
||||
def doc = new JavaDocumentationProvider().generateDoc(method, null)
|
||||
|
||||
def expected =
|
||||
"<div class='definition'><pre><a href=\"psi_element://C\"><code>C</code></a><br>public void <b>m</b>()</pre></div><div class='content'> Visit the \"<code>/login</code>\" URL. <p></div><table class='sections'><p></table>"
|
||||
"<div class=\'definition\'><pre><span style=\"color:#000080;font-weight:bold;\">public</span> <span style=\"color:#000080;font-weight:bold;\">void</span> <span style=\"color:#000000;\">m</span><span style=\"\">(</span><span style=\"\">)</span><br><span class=\'grayed\'>defined in </span><a href=\"psi_element://C\"><code><span style=\"color:#000000;\">C</span></code></a></pre></div><div class=\'content\'> Visit the \"<code><span style=\"\"><span style=\"\">/login</span></span></code>\" URL. </div><table class=\'sections\'></table>"
|
||||
|
||||
assert doc == expected
|
||||
}
|
||||
@@ -219,9 +217,7 @@ class Bar {
|
||||
def method = PsiTreeUtil.getParentOfType(myFixture.file.findElementAt(myFixture.editor.caretModel.offset), PsiMethod.class)
|
||||
def doc = new JavaDocumentationProvider().generateDoc(method, null)
|
||||
|
||||
String expected = "<div class='definition'><pre><a href=\"psi_element://Bar\"><code>Bar</code></a><br>void <b>foo</b>()</pre></div><table class='sections'><p><tr><td valign='top' class='section'><p>From class:</td><td valign='top'><p><a href=\"psi_element://Foo\"><code>Foo</code></a><br>\n" +
|
||||
" Some doc\n" +
|
||||
" </td></table>"
|
||||
String expected = "<div class=\'definition\'><pre><span style=\"color:#000080;font-weight:bold;\">void</span> <span style=\"color:#000000;\">foo</span><span style=\"\">(</span><span style=\"\">)</span><br><span class=\'grayed\'>defined in </span><a href=\"psi_element://Bar\"><code><span style=\"color:#000000;\">Bar</span></code></a></pre></div><table class=\'sections\'><p><tr><td valign=\'top\' class=\'section\'><p>From class:</td><td valign=\'top\'><p><a href=\"psi_element://Foo\"><code><span style=\"color:#000000;\">Foo</span></code></a><br>\n Some doc\n </td></table>"
|
||||
|
||||
assert doc == expected
|
||||
}
|
||||
|
||||
+6
-5
@@ -116,11 +116,12 @@ public class JavaDocInfoGeneratorTest extends JavaCodeInsightTestCase {
|
||||
|
||||
public void testRepeatableAnnotations() {
|
||||
useJava8();
|
||||
assertEquals("@R("a") \n" +
|
||||
"@R("b") \n" +
|
||||
"class <b>repeatableAnnotations</b>\n" +
|
||||
"extends <a href=\"psi_element://java.lang.Object\"><code>Object</code></a>",
|
||||
JavaDocInfoGenerator.generateSignature(getTestClass()));
|
||||
assertEquals(
|
||||
"<span style=\"color:#808000;\">@</span><span style=\"color:#808000;\">R</span><span style=\"\">(</span><span style=\"color:#008000;font-weight:bold;\">\"a\"</span><span style=\"\">)</span> \n" +
|
||||
"<span style=\"color:#808000;\">@</span><span style=\"color:#808000;\">R</span><span style=\"\">(</span><span style=\"color:#008000;font-weight:bold;\">\"b\"</span><span style=\"\">)</span> \n" +
|
||||
"<span style=\"color:#000080;font-weight:bold;\">class</span> <span style=\"color:#000000;\">repeatableAnnotations</span>\n" +
|
||||
"<span style=\"color:#000080;font-weight:bold;\">extends </span><a href=\"psi_element://java.lang.Object\"><code><span style=\"color:#000000;\">Object</span></code></a>",
|
||||
new JavaDocInfoGenerator(getProject(), getTestClass(), false).generateSignature(getTestClass()));
|
||||
}
|
||||
|
||||
public void testAnonymousAndSuperJavadoc() {
|
||||
|
||||
+5
-5
@@ -12,12 +12,12 @@ class LightJavadocGeneratorTest : LightJavaCodeInsightFixtureTestCase() {
|
||||
|
||||
fun testPlainModule() = doTestModule(
|
||||
"module M.N { }",
|
||||
"<div class='definition'><pre>module <b>M.N</b></pre></div>")
|
||||
"<div class='definition'><pre><span style=\"color:#000080;font-weight:bold;\">module </span><span style=\"color:#000000;\">M.N</span></pre></div>")
|
||||
|
||||
fun testDocumentedModule() = doTestModule(
|
||||
"/** One humble module. */\n@Deprecated\nmodule M.N { }",
|
||||
"<div class='definition'><pre>@<a href=\"psi_element://java.lang.Deprecated\"><code>Deprecated</code></a> \n" +
|
||||
"module <b>M.N</b></pre></div><div class='content'> One humble module. </div>")
|
||||
"<div class='definition'><pre><span style=\"color:#808000;\">@</span><a href=\"psi_element://java.lang.Deprecated\"><code style='font-size:96%;'><span style=\"color:#808000;\">Deprecated</span></code></a> \n" +
|
||||
"<span style=\"color:#000080;font-weight:bold;\">module </span><span style=\"color:#000000;\">M.N</span></pre></div><div class='content'> One humble module. </div>")
|
||||
|
||||
fun testRootedClassLink() = doTestLink("{@docRoot}/java/lang/Character.html#unicode", "psi_element://java.lang.Character###unicode")
|
||||
fun testRootedPackageLink() = doTestLink("{@docRoot}/java/util/package-summary.html", "psi_element://java.util")
|
||||
@@ -38,7 +38,7 @@ class LightJavadocGeneratorTest : LightJavaCodeInsightFixtureTestCase() {
|
||||
private fun doTestLink(link: String, expected: String) {
|
||||
doTestClass(
|
||||
"package a.b;\n/** A <a href=\"${link}\">link</a>. */\ninterface I { }",
|
||||
"<div class='definition'><pre>a.b<br>interface <b>I</b></pre></div><div class='content'> A <a href=\"${expected}\">link</a>. </div>")
|
||||
"<div class='definition'><pre><span style=\"color:#000080;font-weight:bold;\">interface</span> <span style=\"color:#000000;\">I</span><br><span class='grayed'>defined in </span><font color=red>a.b</font></pre></div><div class='content'> A <a href=\"${expected}\">link</a>. </div>")
|
||||
}
|
||||
|
||||
private fun doTestClass(text: String, expected: String) {
|
||||
@@ -47,7 +47,7 @@ class LightJavadocGeneratorTest : LightJavaCodeInsightFixtureTestCase() {
|
||||
}
|
||||
|
||||
private fun generateDoc(element: PsiElement): String? =
|
||||
JavaDocInfoGeneratorFactory.create(project, element).generateDocInfo(null)
|
||||
JavaDocInfoGeneratorFactory.create(project, element, false).generateDocInfo(null)
|
||||
?.replace(" ", " ")
|
||||
?.substringBeforeLast("<table class='sections'><p></table>")
|
||||
//</editor-fold>
|
||||
|
||||
+8
-5
@@ -106,15 +106,18 @@ public class BytecodeAnalysisIntegrationTest extends LightJavaCodeInsightFixture
|
||||
|
||||
checkHasGutter("org.apache.velocity.util.ExceptionUtils",
|
||||
"<html><i>Inferred</i> annotations available. Full signature:<p>\n" +
|
||||
"<b><i>@Contract('null,_,_->null')</i></b> \n" +
|
||||
"Throwable <b>createWithCause</b>(Class,\n String,\n Throwable)</html>");
|
||||
"<b><i><span style=\"color:#808000;\">@</span><span style=\"color:#808000;\">Contract</span><span style=\"\">(</span><span style=\"color:#008000;font-weight:bold;\">\"null,_,_->null\"</span><span style=\"\">)</span></i></b> \n" +
|
||||
"<span style=\"color:#000000;\">Throwable</span> <span style=\"color:#000000;\">createWithCause</span><span style=\"\">(</span><span style=\"color:#000000;\">Class</span><span style=\"\">,\n" +
|
||||
" </span> <span style=\"color:#000000;\">String</span><span style=\"\">,\n" +
|
||||
" </span> <span style=\"color:#000000;\">Throwable</span><span style=\"\">)</span></html>");
|
||||
}
|
||||
|
||||
public void testExternalAnnoGutter() {
|
||||
checkHasGutter("java.lang.String",
|
||||
"<html>External and <i>inferred</i> annotations available. Full signature:<p>\n" +
|
||||
"<b><i>@Contract(pure = true)</i></b> \n" +
|
||||
"<b>String</b>(<b>@NotNull</b> String)</html>");
|
||||
"<html>External annotations available. Full signature:<p>\n" +
|
||||
"<b><span style=\"color:#808000;\">@</span><span style=\"color:#808000;\">Contract</span><span style=\"\">(</span><span style=\"\">pure</span><span style=\"\"> = </span><span style=\"color:#000080;font-weight:bold;\">true</span><span style=\"\">)</span></b> \n" +
|
||||
"<span style=\"color:#000000;\">String</span><span style=\"\">(</span><span style=\"color:#000080;font-weight:bold;\">char</span><span style=\"\">[]</span><span style=\"\">,\n" +
|
||||
" </span> <span style=\"color:#000080;font-weight:bold;\">boolean</span><span style=\"\">)</span></html>");
|
||||
}
|
||||
|
||||
private void checkHasGutter(String className, String expectedText) {
|
||||
|
||||
@@ -910,6 +910,7 @@ javadoc.deprecated=Deprecated
|
||||
javadoc.description.copied.from.class=From class:
|
||||
javadoc.description.copied.from.field=From field:
|
||||
javadoc.description.copied.from.interface=From interface:
|
||||
javadoc.generate.defined.in=defined in
|
||||
javadoc.generate.arguments=&Other command line arguments:
|
||||
javadoc.generate.exited=\n"javadoc" finished with exit code $EXIT_CODE$
|
||||
javadoc.generate.heap.size=&Maximum heap size (Mb):
|
||||
@@ -943,8 +944,8 @@ javadoc.since=Since:
|
||||
javadoc.author=Author:
|
||||
javadoc.version=Version:
|
||||
javadoc.apiNote=API Note:
|
||||
javadoc.implNote=Implementation Note:
|
||||
javadoc.implSpec=Implementation Requirements:
|
||||
javadoc.implNote=Implementation<br>Note:
|
||||
javadoc.implSpec=Implementation<br>Requirements:
|
||||
javadoc.type.parameters=Type parameters:
|
||||
jrt.node.short=[JRT]
|
||||
label.add.math.max.0.count.to.avoid.possible.semantics.change=Add Math.max(0, count) to avoid possible semantics change
|
||||
|
||||
+33
-5
@@ -10,13 +10,20 @@ public class DocumentationManagerUtil {
|
||||
}
|
||||
|
||||
@SuppressWarnings({"HardCodedStringLiteral", "UnusedParameters"})
|
||||
protected void createHyperlinkImpl(StringBuilder buffer, PsiElement refElement, String refText, String label, boolean plainLink) {
|
||||
protected void createHyperlinkImpl(
|
||||
StringBuilder buffer,
|
||||
PsiElement refElement,
|
||||
String refText,
|
||||
String label,
|
||||
boolean plainLink,
|
||||
boolean isRendered
|
||||
) {
|
||||
buffer.append("<a href=\"");
|
||||
buffer.append(DocumentationManagerProtocol.PSI_ELEMENT_PROTOCOL); // :-)
|
||||
buffer.append(refText);
|
||||
buffer.append("\">");
|
||||
if (!plainLink) {
|
||||
buffer.append("<code>");
|
||||
buffer.append(isRendered ? "<code style='font-size:96%;'>" : "<code>");
|
||||
}
|
||||
buffer.append(label);
|
||||
if (!plainLink) {
|
||||
@@ -26,7 +33,21 @@ public class DocumentationManagerUtil {
|
||||
}
|
||||
|
||||
public static void createHyperlink(StringBuilder buffer, String refText, String label, boolean plainLink) {
|
||||
getInstance().createHyperlinkImpl(buffer, null, refText, label, plainLink);
|
||||
getInstance().createHyperlinkImpl(buffer, null, refText, label, plainLink, false);
|
||||
}
|
||||
|
||||
public static void createHyperlink(StringBuilder buffer, String refText, String label, boolean plainLink, boolean isRendered) {
|
||||
getInstance().createHyperlinkImpl(buffer, null, refText, label, plainLink, isRendered);
|
||||
}
|
||||
|
||||
public static void createHyperlink(
|
||||
StringBuilder buffer,
|
||||
PsiElement refElement,
|
||||
String refText,
|
||||
String label,
|
||||
boolean plainLink
|
||||
) {
|
||||
getInstance().createHyperlinkImpl(buffer, refElement, refText, label, plainLink, false);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -38,7 +59,14 @@ public class DocumentationManagerUtil {
|
||||
* @param label the label for the hyperlink
|
||||
* @param plainLink if false, the label of the link is wrapped in the <code> tag.
|
||||
*/
|
||||
public static void createHyperlink(StringBuilder buffer, PsiElement refElement, String refText, String label, boolean plainLink) {
|
||||
getInstance().createHyperlinkImpl(buffer, refElement, refText, label, plainLink);
|
||||
public static void createHyperlink(
|
||||
StringBuilder buffer,
|
||||
PsiElement refElement,
|
||||
String refText,
|
||||
String label,
|
||||
boolean plainLink,
|
||||
boolean isRendered
|
||||
) {
|
||||
getInstance().createHyperlinkImpl(buffer, refElement, refText, label, plainLink, isRendered);
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -57,7 +57,7 @@ final class DocumentationHtmlEditorKit extends JBHtmlEditorKit {
|
||||
String linkColor = ColorUtil.toHtmlColor(JBUI.CurrentTheme.Link.Foreground.ENABLED);
|
||||
String borderColor = ColorUtil.toHtmlColor(UIUtil.getTooltipSeparatorColor());
|
||||
String sectionColor = ColorUtil.toHtmlColor(SECTION_COLOR);
|
||||
String editorFontStyle = "{font-family:\"" + EditorCssFontResolver.EDITOR_FONT_NAME_NO_LIGATURES_PLACEHOLDER + "\"; font-size: 96%;}";
|
||||
String editorFontStyle = "{font-family:\"" + EditorCssFontResolver.EDITOR_FONT_NAME_NO_LIGATURES_PLACEHOLDER + "\";}";
|
||||
|
||||
StyleSheet styleSheet = editorKit.getStyleSheet();
|
||||
styleSheet.addRule("tt" + editorFontStyle);
|
||||
|
||||
+1
-1
@@ -1410,7 +1410,7 @@ public class DocumentationManager extends DockablePopupManager<DocumentationComp
|
||||
}
|
||||
|
||||
public static void createHyperlink(StringBuilder buffer, String refText, String label, boolean plainLink) {
|
||||
DocumentationManagerUtil.createHyperlink(buffer, refText, label, plainLink);
|
||||
DocumentationManagerUtil.createHyperlink(buffer, refText, label, plainLink, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+182
-16
@@ -2,26 +2,109 @@
|
||||
package com.intellij.openapi.editor.richcopy;
|
||||
|
||||
import com.intellij.ide.highlighter.HighlighterFactory;
|
||||
import com.intellij.lang.Language;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.editor.colors.EditorColorsManager;
|
||||
import com.intellij.openapi.editor.colors.EditorColorsScheme;
|
||||
import com.intellij.openapi.editor.colors.TextAttributesKey;
|
||||
import com.intellij.openapi.editor.highlighter.EditorHighlighter;
|
||||
import com.intellij.openapi.editor.markup.EffectType;
|
||||
import com.intellij.openapi.editor.markup.TextAttributes;
|
||||
import com.intellij.openapi.editor.richcopy.model.SyntaxInfo;
|
||||
import com.intellij.openapi.editor.richcopy.view.HtmlSyntaxInfoReader;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.text.HtmlChunk;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.psi.PsiFileFactory;
|
||||
import com.intellij.ui.ColorUtil;
|
||||
import kotlin.text.StringsKt;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.awt.*;
|
||||
import java.io.IOException;
|
||||
import java.util.Objects;
|
||||
|
||||
|
||||
public final class HtmlSyntaxInfoUtil {
|
||||
|
||||
@Nullable
|
||||
public static CharSequence getHtmlContent(@NotNull PsiFile file,
|
||||
@NotNull CharSequence text,
|
||||
@Nullable SyntaxInfoBuilder.RangeIterator ownRangeIterator,
|
||||
@NotNull EditorColorsScheme schemeToUse,
|
||||
int startOffset,
|
||||
int endOffset) {
|
||||
|
||||
private HtmlSyntaxInfoUtil() { }
|
||||
|
||||
public static @NotNull String getStyledSpan(@Nullable String value, String @NotNull ... properties) {
|
||||
return appendStyledSpan(new StringBuilder(), value, properties).toString();
|
||||
}
|
||||
|
||||
public static @NotNull String getStyledSpan(@NotNull TextAttributesKey attributesKey, @Nullable String value) {
|
||||
return appendStyledSpan(new StringBuilder(), attributesKey, value).toString();
|
||||
}
|
||||
|
||||
public static @NotNull String getHighlightedByLexerAndEncodedAsHtmlCodeSnippet(
|
||||
@NotNull Project project,
|
||||
@NotNull Language language,
|
||||
@Nullable String codeSnippet
|
||||
) {
|
||||
return appendHighlightedByLexerAndEncodedAsHtmlCodeSnippet(new StringBuilder(), project, language, codeSnippet).toString();
|
||||
}
|
||||
|
||||
public static @NotNull StringBuilder appendStyledSpan(
|
||||
@NotNull StringBuilder buffer,
|
||||
@Nullable String value,
|
||||
String @NotNull ... properties
|
||||
) {
|
||||
HtmlChunk.span().style(StringUtil.join(properties, ";"))
|
||||
.addRaw(StringUtil.notNullize(value)) //NON-NLS
|
||||
.appendTo(buffer);
|
||||
return buffer;
|
||||
}
|
||||
|
||||
public static @NotNull StringBuilder appendStyledSpan(
|
||||
@NotNull StringBuilder buffer,
|
||||
@NotNull TextAttributesKey attributesKey,
|
||||
@Nullable String value
|
||||
) {
|
||||
appendStyledSpan(
|
||||
buffer,
|
||||
Objects.requireNonNull(EditorColorsManager.getInstance().getGlobalScheme().getAttributes(attributesKey)),
|
||||
value);
|
||||
return buffer;
|
||||
}
|
||||
|
||||
public static @NotNull StringBuilder appendStyledSpan(
|
||||
@NotNull StringBuilder buffer,
|
||||
@NotNull TextAttributes attributes,
|
||||
@Nullable String value
|
||||
) {
|
||||
createHtmlSpanBlockStyledAsTextAttributes(attributes)
|
||||
.addRaw(StringUtil.notNullize(value)) //NON-NLS
|
||||
.appendTo(buffer);
|
||||
return buffer;
|
||||
}
|
||||
|
||||
public static @NotNull StringBuilder appendHighlightedByLexerAndEncodedAsHtmlCodeSnippet(
|
||||
@NotNull StringBuilder buffer,
|
||||
@NotNull Project project,
|
||||
@NotNull Language language,
|
||||
@Nullable String codeSnippet
|
||||
) {
|
||||
codeSnippet = StringUtil.notNullize(codeSnippet);
|
||||
String zeroIndentCode = StringsKt.trimIndent(codeSnippet).replace("\t", " ");
|
||||
PsiFile fakePsiFile = PsiFileFactory.getInstance(project).createFileFromText(language, codeSnippet);
|
||||
EditorColorsScheme scheme = EditorColorsManager.getInstance().getGlobalScheme();
|
||||
if (!zeroIndentCode.isEmpty()) {
|
||||
buffer.append(getHtmlContent(fakePsiFile, zeroIndentCode, null, scheme, 0, zeroIndentCode.length()));
|
||||
}
|
||||
return buffer;
|
||||
}
|
||||
|
||||
public static @Nullable CharSequence getHtmlContent(
|
||||
@NotNull PsiFile file,
|
||||
@NotNull CharSequence text,
|
||||
@Nullable SyntaxInfoBuilder.RangeIterator ownRangeIterator,
|
||||
@NotNull EditorColorsScheme schemeToUse,
|
||||
int startOffset,
|
||||
int endOffset
|
||||
) {
|
||||
EditorHighlighter highlighter =
|
||||
HighlighterFactory.createHighlighter(file.getViewProvider().getVirtualFile(), schemeToUse, file.getProject());
|
||||
highlighter.setText(text);
|
||||
@@ -35,11 +118,12 @@ public final class HtmlSyntaxInfoUtil {
|
||||
return getHtmlContent(text, ownRangeIterator, schemeToUse, endOffset);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static CharSequence getHtmlContent(@NotNull CharSequence text,
|
||||
@NotNull SyntaxInfoBuilder.RangeIterator ownRangeIterator,
|
||||
@NotNull EditorColorsScheme schemeToUse,
|
||||
int stopOffset) {
|
||||
public static @Nullable CharSequence getHtmlContent(
|
||||
@NotNull CharSequence text,
|
||||
@NotNull SyntaxInfoBuilder.RangeIterator ownRangeIterator,
|
||||
@NotNull EditorColorsScheme schemeToUse,
|
||||
int stopOffset
|
||||
) {
|
||||
SyntaxInfoBuilder.Context context = new SyntaxInfoBuilder.Context(text, schemeToUse, 0);
|
||||
SyntaxInfoBuilder.MyMarkupIterator iterator = new SyntaxInfoBuilder.MyMarkupIterator(text, ownRangeIterator, schemeToUse);
|
||||
|
||||
@@ -60,20 +144,102 @@ public final class HtmlSyntaxInfoUtil {
|
||||
return null;
|
||||
}
|
||||
|
||||
private static @NotNull HtmlChunk.Element createHtmlSpanBlockStyledAsTextAttributes(@NotNull TextAttributes attributes) {
|
||||
StringBuilder style = new StringBuilder();
|
||||
|
||||
Color foregroundColor = attributes.getForegroundColor();
|
||||
Color backgroundColor = attributes.getBackgroundColor();
|
||||
|
||||
if (foregroundColor != null) appendProperty(style, "color", ColorUtil.toHtmlColor(foregroundColor));
|
||||
if (backgroundColor != null) appendProperty(style, "background-color", ColorUtil.toHtmlColor(backgroundColor));
|
||||
|
||||
switch (attributes.getFontType()) {
|
||||
case Font.BOLD:
|
||||
appendProperty(style, "font-weight", "bold");
|
||||
break;
|
||||
case Font.ITALIC:
|
||||
appendProperty(style, "font-style", "italic");
|
||||
break;
|
||||
}
|
||||
|
||||
EffectType effectType = attributes.getEffectType();
|
||||
if (attributes.hasEffects() && effectType != null) {
|
||||
switch (effectType) {
|
||||
case LINE_UNDERSCORE:
|
||||
appendProperty(style, "text-decoration-line", "underline");
|
||||
break;
|
||||
case WAVE_UNDERSCORE:
|
||||
appendProperty(style, "text-decoration-line", "underline");
|
||||
appendProperty(style, "text-decoration-style", "wavy");
|
||||
break;
|
||||
case BOLD_LINE_UNDERSCORE:
|
||||
appendProperty(style, "text-decoration-line", "underline");
|
||||
appendProperty(style, "text-decoration-thickness", "2px");
|
||||
break;
|
||||
case BOLD_DOTTED_LINE:
|
||||
appendProperty(style, "text-decoration-line", "underline");
|
||||
appendProperty(style, "text-decoration-thickness", "2px");
|
||||
appendProperty(style, "text-decoration-style", "dotted");
|
||||
break;
|
||||
case STRIKEOUT:
|
||||
appendProperty(style, "text-decoration-line", "line-through");
|
||||
break;
|
||||
case BOXED:
|
||||
case SLIGHTLY_WIDER_BOX:
|
||||
case SEARCH_MATCH:
|
||||
appendProperty(style, "border", "1px solid");
|
||||
break;
|
||||
case ROUNDED_BOX:
|
||||
appendProperty(style, "border", "1px solid");
|
||||
appendProperty(style, "border-radius", "2px");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Color effectColor = attributes.getEffectColor();
|
||||
if (attributes.hasEffects() && effectType != null && effectColor != null) {
|
||||
switch (effectType) {
|
||||
case LINE_UNDERSCORE:
|
||||
case WAVE_UNDERSCORE:
|
||||
case BOLD_LINE_UNDERSCORE:
|
||||
case BOLD_DOTTED_LINE:
|
||||
case STRIKEOUT:
|
||||
appendProperty(style, "text-decoration-color", ColorUtil.toHtmlColor(effectColor));
|
||||
break;
|
||||
case BOXED:
|
||||
case ROUNDED_BOX:
|
||||
case SEARCH_MATCH:
|
||||
case SLIGHTLY_WIDER_BOX:
|
||||
appendProperty(style, "border-color", ColorUtil.toHtmlColor(effectColor));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return HtmlChunk.span().style(style.toString());
|
||||
}
|
||||
|
||||
private static void appendProperty(@NotNull StringBuilder builder, @NotNull String name, @NotNull String value) {
|
||||
builder.append(name);
|
||||
builder.append(":");
|
||||
builder.append(value);
|
||||
builder.append(";");
|
||||
}
|
||||
|
||||
|
||||
private final static class SimpleHtmlSyntaxInfoReader extends HtmlSyntaxInfoReader {
|
||||
|
||||
|
||||
private SimpleHtmlSyntaxInfoReader(SyntaxInfo info) {
|
||||
super(info, 2);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void appendCloseTags() {
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void appendStartTags() {
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -3,6 +3,7 @@ package com.intellij.util.ui;
|
||||
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.util.IconLoader;
|
||||
import com.intellij.openapi.util.Pair;
|
||||
import com.intellij.util.ObjectUtils;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -21,12 +22,15 @@ import java.beans.PropertyChangeEvent;
|
||||
import java.beans.PropertyChangeListener;
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.IOException;
|
||||
import java.util.Base64;
|
||||
import java.util.*;
|
||||
import java.util.List;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.StreamSupport;
|
||||
|
||||
public class JBHtmlEditorKit extends HTMLEditorKit {
|
||||
private static final Logger LOG = Logger.getInstance(JBHtmlEditorKit.class);
|
||||
|
||||
static {
|
||||
ourCommonStyle = StartupUiUtil.createStyleSheet(
|
||||
"code { font-size: 100%; }" + // small by Swing's default
|
||||
@@ -43,6 +47,7 @@ public class JBHtmlEditorKit extends HTMLEditorKit {
|
||||
);
|
||||
StartupUiUtil.configureHtmlKitStylesheet();
|
||||
}
|
||||
|
||||
private static final ViewFactory ourViewFactory = new JBHtmlFactory();
|
||||
private static final StyleSheet ourCommonStyle;
|
||||
private static final StyleSheet ourNoGapsBetweenParagraphsStyle;
|
||||
@@ -83,7 +88,8 @@ public class JBHtmlEditorKit extends HTMLEditorKit {
|
||||
|
||||
if (e.getEventType() == HyperlinkEvent.EventType.ENTERED) {
|
||||
setUnderlined(true, element);
|
||||
} else if (e.getEventType() == HyperlinkEvent.EventType.EXITED) {
|
||||
}
|
||||
else if (e.getEventType() == HyperlinkEvent.EventType.EXITED) {
|
||||
setUnderlined(false, element);
|
||||
}
|
||||
}
|
||||
@@ -93,12 +99,37 @@ public class JBHtmlEditorKit extends HTMLEditorKit {
|
||||
Object attribute = attributes.getAttribute(HTML.Tag.A);
|
||||
if (attribute instanceof MutableAttributeSet) {
|
||||
MutableAttributeSet a = (MutableAttributeSet)attribute;
|
||||
|
||||
Object href = a.getAttribute(HTML.Attribute.HREF);
|
||||
Pair<Integer, Integer> aRange = findRangeOfParentTagWithGivenAttribute(element, href, HTML.Tag.A, HTML.Attribute.HREF);
|
||||
|
||||
a.addAttribute(CSS.Attribute.TEXT_DECORATION, underlined ? "underline" : "none");
|
||||
((StyledDocument)element.getDocument()).setCharacterAttributes(element.getStartOffset(),
|
||||
element.getEndOffset() - element.getStartOffset(),
|
||||
a, false);
|
||||
((StyledDocument)element.getDocument()).setCharacterAttributes(aRange.first, aRange.second - aRange.first, a, false);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* There was a bug that if the anchor tag contained some span block, e.g.
|
||||
* {@code <a><span>Objects.</span><span>equals()</span></a>} then only one block
|
||||
* was underlined on mouse hover.
|
||||
*
|
||||
* <p>That was due to the receiver of the {@code HyperlinkEvent} was only one of child blocks
|
||||
* and we need to properly find the range occupied by the whole parent.</p>
|
||||
*/
|
||||
private @NotNull Pair<Integer, Integer> findRangeOfParentTagWithGivenAttribute(
|
||||
@NotNull Element element,
|
||||
Object elementAttributeValue,
|
||||
@NotNull HTML.Tag tag,
|
||||
@NotNull HTML.Attribute attribute
|
||||
) {
|
||||
HtmlIteratorWrapper anchorTagIterator = new HtmlIteratorWrapper(((HTMLDocument)element.getDocument()).getIterator(tag));
|
||||
return StreamSupport.stream(anchorTagIterator.spliterator(), false)
|
||||
.filter(it -> Objects.equals(it.getAttributes().getAttribute(attribute), elementAttributeValue))
|
||||
.filter(it -> it.getStartOffset() <= element.getStartOffset() && element.getStartOffset() <= it.getEndOffset())
|
||||
.map(it -> new Pair<>(it.getStartOffset(), it.getEndOffset()))
|
||||
.findFirst()
|
||||
.orElse(new Pair<>(element.getStartOffset(), element.getEndOffset()));
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@@ -202,7 +233,8 @@ public class JBHtmlEditorKit extends HTMLEditorKit {
|
||||
private static class MouseExitSupportLinkController extends HTMLEditorKit.LinkController {
|
||||
@Override
|
||||
public void mouseExited(@NotNull MouseEvent e) {
|
||||
mouseMoved(new MouseEvent(e.getComponent(), e.getID(), e.getWhen(), e.getModifiersEx(), -1, -1, e.getClickCount(), e.isPopupTrigger(), e.getButton()));
|
||||
mouseMoved(new MouseEvent(e.getComponent(), e.getID(), e.getWhen(), e.getModifiersEx(), -1, -1, e.getClickCount(), e.isPopupTrigger(),
|
||||
e.getButton()));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -265,13 +297,16 @@ public class JBHtmlEditorKit extends HTMLEditorKit {
|
||||
if (width < 0 && height < 0) {
|
||||
this.width = myBufferedImage.getWidth();
|
||||
this.height = myBufferedImage.getHeight();
|
||||
} else if (width < 0) {
|
||||
}
|
||||
else if (width < 0) {
|
||||
this.width = height * getAspectRatio();
|
||||
this.height = height;
|
||||
} else if (height < 0) {
|
||||
}
|
||||
else if (height < 0) {
|
||||
this.width = width;
|
||||
this.height = width / getAspectRatio();
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
this.width = width;
|
||||
this.height = height;
|
||||
}
|
||||
@@ -355,7 +390,7 @@ public class JBHtmlEditorKit extends HTMLEditorKit {
|
||||
|
||||
@Override
|
||||
public int viewToModel(float x, float y, Shape a, Position.Bias[] bias) {
|
||||
Rectangle alloc = (Rectangle) a;
|
||||
Rectangle alloc = (Rectangle)a;
|
||||
if (x < alloc.x + alloc.width) {
|
||||
bias[0] = Position.Bias.Forward;
|
||||
return getStartOffset();
|
||||
@@ -462,7 +497,7 @@ public class JBHtmlEditorKit extends HTMLEditorKit {
|
||||
private final ParserCallback delegate;
|
||||
private int depth;
|
||||
|
||||
private CallbackWrapper(ParserCallback delegate) {this.delegate = delegate;}
|
||||
private CallbackWrapper(ParserCallback delegate) { this.delegate = delegate; }
|
||||
|
||||
@Override
|
||||
public void flush() throws BadLocationException {
|
||||
@@ -523,4 +558,69 @@ public class JBHtmlEditorKit extends HTMLEditorKit {
|
||||
*/
|
||||
@NotNull Font getFont(@NotNull Font defaultFont, @NotNull AttributeSet attributeSet);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Implements {@code java.lang.Iterable} for {@code HTMLDocument.Iterator}
|
||||
*/
|
||||
public static final class HtmlIteratorWrapper implements Iterable<HTMLDocument.Iterator> {
|
||||
|
||||
private final @NotNull HTMLDocument.Iterator myDelegate;
|
||||
|
||||
public HtmlIteratorWrapper(@NotNull HTMLDocument.Iterator delegate) {
|
||||
myDelegate = delegate;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public Iterator<HTMLDocument.Iterator> iterator() {
|
||||
return new Iterator<>() {
|
||||
@Override
|
||||
public boolean hasNext() {
|
||||
return myDelegate.isValid();
|
||||
}
|
||||
|
||||
@Override
|
||||
public HTMLDocument.Iterator next() {
|
||||
final AttributeSet attributeSet = myDelegate.getAttributes();
|
||||
final int startOffset = myDelegate.getStartOffset();
|
||||
final int endOffset = myDelegate.getEndOffset();
|
||||
final HTML.Tag tag = myDelegate.getTag();
|
||||
HTMLDocument.Iterator current = new HTMLDocument.Iterator() {
|
||||
@Override
|
||||
public AttributeSet getAttributes() {
|
||||
return attributeSet;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getStartOffset() {
|
||||
return startOffset;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getEndOffset() {
|
||||
return endOffset;
|
||||
}
|
||||
|
||||
@Override
|
||||
public HTML.Tag getTag() {
|
||||
return tag;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void next() {
|
||||
throw new IllegalStateException("Must not be called");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isValid() {
|
||||
throw new IllegalStateException("Must not be called");
|
||||
}
|
||||
};
|
||||
myDelegate.next();
|
||||
return current;
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
package org.jetbrains.idea.devkit.themes;
|
||||
|
||||
import com.intellij.codeInsight.javadoc.JavaDocInfoGenerator;
|
||||
import com.intellij.codeInsight.javadoc.JavaDocInfoGeneratorFactory;
|
||||
import com.intellij.ide.ui.UIThemeMetadata;
|
||||
import com.intellij.json.psi.JsonProperty;
|
||||
import com.intellij.lang.documentation.AbstractDocumentationProvider;
|
||||
@@ -79,7 +80,7 @@ public class ThemeJsonDocumentationProvider extends AbstractDocumentationProvide
|
||||
final PsiClassType type = JavaPsiFacade.getElementFactory(element.getProject()).createTypeByFQClassName(source);
|
||||
|
||||
StringBuilder typeBuilder = new StringBuilder();
|
||||
JavaDocInfoGenerator.generateType(typeBuilder, type, element);
|
||||
JavaDocInfoGeneratorFactory.create(element.getProject(), null, false).generateType(typeBuilder, type, element);
|
||||
return typeBuilder.toString(); //NON-NLS
|
||||
});
|
||||
}
|
||||
|
||||
+4
-4
@@ -49,10 +49,10 @@ public class ExtensionPointDocumentationProviderTest extends LightJavaCodeInsigh
|
||||
assertEquals(
|
||||
"<div class=\"definition\"><pre><b>foo.bar</b><br/>" +
|
||||
pluginXml +
|
||||
"<div class='definition'><pre>bar<br>public class <b>MyExtensionPoint</b>\n" +
|
||||
"extends <a href=\"psi_element://java.lang.Object\"><code>Object</code></a></pre></div><div class='content'>\n" +
|
||||
"<div class='definition'><pre><span style=\"color:#000080;font-weight:bold;\">public</span> <span style=\"color:#000080;font-weight:bold;\">class</span> <span style=\"color:#000000;\">MyExtensionPoint</span>\n" +
|
||||
"<span style=\"color:#000080;font-weight:bold;\">extends </span><a href=\"psi_element://java.lang.Object\"><code><span style=\"color:#000000;\">Object</span></code></a><br><span class='grayed'>defined in </span><a href=\"psi_element://bar\"><code><span style=\"color:#000000;\">bar</span></code></a></pre></div><div class='content'>\n" +
|
||||
" MyExtensionPoint JavaDoc.\n" +
|
||||
" </div><table class='sections'><p></table><table class=\"sections\"><tr><td class=\"section\" valign=\"top\"><p><a href=\"psi_element://bar.MyExtensionPoint#implementationClass\"><code>implementationClass</code></a></p></td><td valign=\"top\">String (required)</td></tr><tr><td class=\"section\" valign=\"top\"><p><a href=\"psi_element://bar.MyExtensionPoint#stringCanBeEmpty\"><code>stringCanBeEmpty</code></a></p></td><td valign=\"top\">String (required, empty allowed)</td></tr><tr><td class=\"section\" valign=\"top\"><p><a href=\"psi_element://bar.MyExtensionPoint#intValue\"><code><intValue></code></a></p></td><td valign=\"top\">Integer</td></tr><br/></table></pre></div><div class=\"content\"><a href=\"https://jb.gg/ipe?extensions=foo.bar\">Show Usages in IntelliJ Platform Explorer</a></div><div class=\"content\"><h2>Extension Point Implementation</h2><div class='definition'><pre>bar<br>public interface <b>MyExtension</b></pre></div><div class='content'>\n" +
|
||||
" </div><table class='sections'><p></table><table class=\"sections\"><tr><td class=\"section\" valign=\"top\"><p><a href=\"psi_element://bar.MyExtensionPoint#implementationClass\"><code>implementationClass</code></a></p></td><td valign=\"top\">String (required)</td></tr><tr><td class=\"section\" valign=\"top\"><p><a href=\"psi_element://bar.MyExtensionPoint#stringCanBeEmpty\"><code>stringCanBeEmpty</code></a></p></td><td valign=\"top\">String (required, empty allowed)</td></tr><tr><td class=\"section\" valign=\"top\"><p><a href=\"psi_element://bar.MyExtensionPoint#intValue\"><code><intValue></code></a></p></td><td valign=\"top\">Integer</td></tr><br/></table></pre></div><div class=\"content\"><a href=\"https://jb.gg/ipe?extensions=foo.bar\">Show Usages in IntelliJ Platform Explorer</a></div><div class=\"content\"><h2>Extension Point Implementation</h2><div class='definition'><pre><span style=\"color:#000080;font-weight:bold;\">public</span> <span style=\"color:#000080;font-weight:bold;\">interface</span> <span style=\"color:#000000;\">MyExtension</span><br><span class='grayed'>defined in </span><a href=\"psi_element://bar\"><code><span style=\"color:#000000;\">bar</span></code></a></pre></div><div class='content'>\n" +
|
||||
" My Extension Javadoc.\n" +
|
||||
" </div><table class='sections'><p></table></div>",
|
||||
provider.generateDoc(docElement, getOriginalElement()));
|
||||
@@ -74,7 +74,7 @@ public class ExtensionPointDocumentationProviderTest extends LightJavaCodeInsigh
|
||||
provider.getQuickNavigateInfo(docElement, getOriginalElement()));
|
||||
|
||||
assertEquals(
|
||||
"<div class=\"definition\"><pre><b>foo.bar</b><br/>interfaceExtensionPointDocumentation.xml</pre></div><div class=\"content\"><a href=\"https://jb.gg/ipe?extensions=foo.bar\">Show Usages in IntelliJ Platform Explorer</a></div><div class=\"content\"><h2>Extension Point Implementation</h2><div class='definition'><pre>bar<br>public interface <b>MyExtension</b></pre></div><div class='content'>\n" +
|
||||
"<div class=\"definition\"><pre><b>foo.bar</b><br/>interfaceExtensionPointDocumentation.xml</pre></div><div class=\"content\"><a href=\"https://jb.gg/ipe?extensions=foo.bar\">Show Usages in IntelliJ Platform Explorer</a></div><div class=\"content\"><h2>Extension Point Implementation</h2><div class='definition'><pre><span style=\"color:#000080;font-weight:bold;\">public</span> <span style=\"color:#000080;font-weight:bold;\">interface</span> <span style=\"color:#000000;\">MyExtension</span><br><span class='grayed'>defined in </span><a href=\"psi_element://bar\"><code><span style=\"color:#000000;\">bar</span></code></a></pre></div><div class='content'>\n" +
|
||||
" My Extension Javadoc.\n" +
|
||||
" </div><table class='sections'><p></table></div>",
|
||||
provider.generateDoc(docElement, getOriginalElement()));
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
package org.jetbrains.plugins.gradle.service.resolve
|
||||
|
||||
import com.intellij.codeInsight.javadoc.JavaDocInfoGenerator
|
||||
import com.intellij.codeInsight.javadoc.JavaDocInfoGeneratorFactory
|
||||
import com.intellij.icons.AllIcons
|
||||
import com.intellij.ide.presentation.Presentation
|
||||
import com.intellij.openapi.util.Key
|
||||
@@ -9,7 +9,6 @@ import com.intellij.psi.OriginInfoAwareElement
|
||||
import com.intellij.psi.PsiElement
|
||||
import com.intellij.util.lazyPub
|
||||
import org.jetbrains.plugins.gradle.settings.GradleExtensionsSettings.GradleProp
|
||||
import org.jetbrains.plugins.gradle.util.GradleBundle
|
||||
import org.jetbrains.plugins.gradle.util.GradleDocumentationBundle
|
||||
import org.jetbrains.plugins.groovy.dsl.holders.NonCodeMembersHolder
|
||||
import org.jetbrains.plugins.groovy.lang.resolve.api.LazyTypeProperty
|
||||
@@ -30,7 +29,7 @@ class GradleGroovyProperty(
|
||||
val value = myProperty.value
|
||||
val result = StringBuilder()
|
||||
result.append("<PRE>")
|
||||
JavaDocInfoGenerator.generateType(result, propertyType, context, true)
|
||||
JavaDocInfoGeneratorFactory.create(context.project, null, false).generateType(result, propertyType, context, true)
|
||||
result.append(" " + myProperty.name)
|
||||
val hasInitializer = !value.isNullOrBlank()
|
||||
if (hasInitializer) {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
package org.jetbrains.plugins.gradle.service.resolve
|
||||
|
||||
import com.intellij.codeInsight.javadoc.JavaDocInfoGenerator.generateType
|
||||
import com.intellij.codeInsight.javadoc.JavaDocInfoGeneratorFactory
|
||||
import com.intellij.ide.presentation.Presentation
|
||||
import com.intellij.openapi.util.Key
|
||||
import com.intellij.psi.OriginInfoAwareElement
|
||||
@@ -27,7 +27,7 @@ class GradleTaskProperty(
|
||||
private val doc by lazyPub {
|
||||
val result = StringBuilder()
|
||||
result.append("<PRE>")
|
||||
generateType(result, propertyType, myContext, true)
|
||||
JavaDocInfoGeneratorFactory.create(context.project, null, false).generateType(result, propertyType, myContext, true)
|
||||
result.append(" " + task.name)
|
||||
result.append("</PRE>")
|
||||
task.description?.let(result::append)
|
||||
|
||||
+2
-1
@@ -2,6 +2,7 @@
|
||||
package org.jetbrains.plugins.groovy.lang.psi.impl;
|
||||
|
||||
import com.intellij.codeInsight.javadoc.JavaDocInfoGenerator;
|
||||
import com.intellij.codeInsight.javadoc.JavaDocInfoGeneratorFactory;
|
||||
import com.intellij.lang.ASTNode;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.project.Project;
|
||||
@@ -797,7 +798,7 @@ public final class PsiImplUtil {
|
||||
|
||||
public static void appendTypeString(StringBuilder buffer, final PsiType type, PsiElement context) {
|
||||
if (type != null) {
|
||||
JavaDocInfoGenerator.generateType(buffer, type, context);
|
||||
JavaDocInfoGeneratorFactory.create(context.getProject(), null, false).generateType(buffer, type, context);
|
||||
}
|
||||
else {
|
||||
buffer.append(GrModifier.DEF);
|
||||
|
||||
+2
-1
@@ -5,6 +5,7 @@ import com.intellij.codeInsight.CodeInsightBundle;
|
||||
import com.intellij.codeInsight.editorActions.CodeDocumentationUtil;
|
||||
import com.intellij.codeInsight.javadoc.JavaDocExternalFilter;
|
||||
import com.intellij.codeInsight.javadoc.JavaDocInfoGenerator;
|
||||
import com.intellij.codeInsight.javadoc.JavaDocInfoGeneratorFactory;
|
||||
import com.intellij.codeInsight.javadoc.JavaDocUtil;
|
||||
import com.intellij.java.JavaBundle;
|
||||
import com.intellij.lang.CodeDocumentationAwareCommenter;
|
||||
@@ -250,7 +251,7 @@ public class GroovyDocumentationProvider implements CodeDocumentationProvider, E
|
||||
generateTraitType(buffer, ((GrTraitType)type), context);
|
||||
}
|
||||
else if (type != null) {
|
||||
JavaDocInfoGenerator.generateType(buffer, type, context);
|
||||
JavaDocInfoGeneratorFactory.create(context.getProject(), null, false).generateType(buffer, type, context);
|
||||
}
|
||||
else {
|
||||
buffer.append(GrModifier.DEF);
|
||||
|
||||
@@ -21,7 +21,7 @@ new Bar<String>().f<caret>oo();
|
||||
def ref = myFixture.file.findReferenceAt(myFixture.editor.caretModel.offset)
|
||||
assert CtrlMouseHandler.getInfo(ref.resolve(), ref.element) == """\
|
||||
Bar
|
||||
<a href="psi_element://java.util.List"><code>List</code></a><<a href="psi_element://java.lang.String"><code>String</code></a>> foo (<a href="psi_element://java.lang.String"><code>String</code></a> param)"""
|
||||
<a href="psi_element://java.util.List"><code><span style="color:#000000;">List</span></code></a><span style=""><</span><a href="psi_element://java.lang.String"><code><span style="color:#000000;">String</span></code></a><span style="">></span> foo (<a href="psi_element://java.lang.String"><code><span style="color:#000000;">String</span></code></a> param)"""
|
||||
}
|
||||
|
||||
void testGenericField() {
|
||||
@@ -32,7 +32,7 @@ new Bar<Integer>().fi<caret>eld
|
||||
def ref = myFixture.file.findReferenceAt(myFixture.editor.caretModel.offset)
|
||||
assert CtrlMouseHandler.getInfo(ref.resolve(), ref.element) == """\
|
||||
Bar
|
||||
<a href="psi_element://java.lang.Integer"><code>Integer</code></a> getField ()"""
|
||||
<a href="psi_element://java.lang.Integer"><code><span style="color:#000000;">Integer</span></code></a> getField ()"""
|
||||
}
|
||||
|
||||
void testLink() {
|
||||
@@ -46,9 +46,9 @@ class Gr {
|
||||
}
|
||||
new Gr().fo<caret>o()
|
||||
''', '''\
|
||||
<div class='definition'><pre><a href="psi_element://Gr"><code>Gr</code></a><br>void <b>foo</b>()</pre></div><div class='content'>
|
||||
Use <a href="psi_element://Gr#bar()"><code>bar()</code></a> from class <a href="psi_element://Gr"><code>Gr</code></a> instead
|
||||
<p></div><table class='sections'><p></table>'''
|
||||
<div class='definition'><pre><span style="color:#000080;font-weight:bold;">void</span> <span style="color:#000000;">foo</span><span style="">(</span><span style="">)</span><br><span class='grayed'>defined in </span><a href="psi_element://Gr"><code><span style="color:#000000;">Gr</span></code></a></pre></div><div class='content'>
|
||||
Use <a href="psi_element://Gr#bar()"><code><span style="color:#000000;">bar</span><span style="">()</span></code></a> from class <a href="psi_element://Gr"><code><span style="color:#000000;">Gr</span></code></a> instead
|
||||
</div><table class='sections'></table>'''
|
||||
}
|
||||
|
||||
void 'test link with label'() {
|
||||
@@ -59,13 +59,9 @@ new Gr().fo<caret>o()
|
||||
def docs() {}
|
||||
|
||||
<caret>docs()
|
||||
''', '''<div class='definition'><pre>\
|
||||
<a href="psi_element://_"><code>_</code></a><br>\
|
||||
<a href="psi_element://java.lang.Object"><code>Object</code></a> <b>docs</b>()</pre></div>\
|
||||
<div class='content'>
|
||||
check this out <a href="psi_element://java.lang.CharSequence"><code>character sequences</code></a>
|
||||
<p></div>\
|
||||
<table class='sections'><p></table>'''
|
||||
''', '''<div class='definition'><pre><a href="psi_element://java.lang.Object"><code><span style="color:#000000;">Object</span></code></a> <span style="color:#000000;">docs</span><span style="">(</span><span style="">)</span><br><span class='grayed'>defined in </span><a href="psi_element://_"><code><span style="color:#000000;">_</span></code></a></pre></div><div class='content'>
|
||||
check this out <a href="psi_element://java.lang.CharSequence"><code><span style="color:#000000;">character sequences</span></code></a>
|
||||
</div><table class='sections'></table>'''
|
||||
}
|
||||
|
||||
void 'test link to method'() {
|
||||
@@ -85,19 +81,13 @@ class Main {
|
||||
}
|
||||
Main.<caret>docs()
|
||||
''', '''\
|
||||
<div class='definition'><pre>\
|
||||
<a href="psi_element://Main"><code>Main</code></a><br>\
|
||||
static void <b>docs</b>()\
|
||||
</pre></div>\
|
||||
<div class='content'>
|
||||
Link 1: <a href="psi_element://Main#foo(java.lang.String[])"><code>foo(String[])</code></a>
|
||||
<div class='definition'><pre><span style="color:#000080;font-weight:bold;">static</span> <span style="color:#000080;font-weight:bold;">void</span> <span style="color:#000000;">docs</span><span style="">(</span><span style="">)</span><br><span class='grayed'>defined in </span><a href="psi_element://Main"><code><span style="color:#000000;">Main</span></code></a></pre></div><div class='content'>
|
||||
Link 1: <a href="psi_element://Main#foo(java.lang.String[])"><code><span style="color:#000000;">foo</span><span style="">(String[])</span></code></a>
|
||||
<p>
|
||||
Link 2: <a href="psi_element://Main#bar(java.lang.String[])"><code>bar(String[])</code></a>
|
||||
Link 2: <a href="psi_element://Main#bar(java.lang.String[])"><code><span style="color:#000000;">bar</span><span style="">(String[])</span></code></a>
|
||||
<p>
|
||||
Link 3: <a href="psi_element://Main#bar(java.lang.String[], java.lang.Integer)"><code>bar(String[], Integer)</code></a>
|
||||
<p>\
|
||||
</div>\
|
||||
<table class='sections'><p></table>\
|
||||
Link 3: <a href="psi_element://Main#bar(java.lang.String[], java.lang.Integer)"><code><span style="color:#000000;">bar</span><span style="">(String[], Integer)</span></code></a>
|
||||
</div><table class='sections'></table>\
|
||||
'''
|
||||
}
|
||||
|
||||
@@ -106,7 +96,7 @@ static void <b>docs</b>()\
|
||||
def aa = 1
|
||||
a<caret>a
|
||||
''', '''\
|
||||
<div class='definition'><pre><a href="psi_element://java.lang.Object"><code>Object</code></a> <b>aa</b></pre></div><table class='sections'></table><p>[Inferred type] <a href="psi_element://java.lang.Integer"><code>Integer</code></a>'''
|
||||
<div class='definition'><pre><a href="psi_element://java.lang.Object"><code><span style="color:#000000;">Object</span></code></a> <span style="color:#000000;">aa</span></pre></div><table class='sections'></table><p>[Inferred type] <a href="psi_element://java.lang.Integer"><code><span style="color:#000000;">Integer</span></code></a>'''
|
||||
}
|
||||
|
||||
void 'test implicit closure parameter'() {
|
||||
@@ -114,7 +104,7 @@ a<caret>a
|
||||
List<String> ss = []
|
||||
ss.collect { i<caret>t }
|
||||
''', '''\
|
||||
<div class='definition'><pre><a href="psi_element://java.lang.Object"><code>Object</code></a> <b>it</b></pre></div><table class='sections'></table><p>[Inferred type] <a href="psi_element://java.lang.String"><code>String</code></a>'''
|
||||
<div class='definition'><pre><a href="psi_element://java.lang.Object"><code><span style="color:#000000;">Object</span></code></a> <span style="color:#000000;">it</span></pre></div><table class='sections'></table><p>[Inferred type] <a href="psi_element://java.lang.String"><code><span style="color:#000000;">String</span></code></a>'''
|
||||
}
|
||||
|
||||
void 'test code tag'() {
|
||||
@@ -129,11 +119,9 @@ class Foo {
|
||||
}
|
||||
new Foo().<caret>foo()
|
||||
''', '''\
|
||||
<div class='definition'><pre><a href="psi_element://Foo"><code>Foo</code></a><br><a href="psi_element://java.lang.String"><code>String</code></a> <b>foo</b>()</pre></div>\
|
||||
<div class='content'>
|
||||
May return <code>null</code>
|
||||
<p></div>\
|
||||
<table class='sections'><p></table>\
|
||||
<div class='definition'><pre><a href="psi_element://java.lang.String"><code><span style="color:#000000;">String</span></code></a> <span style="color:#000000;">foo</span><span style="">(</span><span style="">)</span><br><span class='grayed'>defined in </span><a href="psi_element://Foo"><code><span style="color:#000000;">Foo</span></code></a></pre></div><div class='content'>
|
||||
May return <code><span style=""><span style="color:#000043;font-weight:bold;">null</span></span></code>
|
||||
</div><table class='sections'></table>\
|
||||
'''
|
||||
}
|
||||
|
||||
@@ -146,15 +134,7 @@ def foo() {}
|
||||
|
||||
f<caret>oo()""",
|
||||
"""\
|
||||
<div class='definition'>\
|
||||
<pre>\
|
||||
<a href=\"psi_element://_\"><code>_</code></a>\
|
||||
<br>\
|
||||
<a href=\"psi_element://java.lang.Object\"><code>Object</code></a> <b>foo</b>()</pre>\
|
||||
</div>\
|
||||
<table class='sections'><p>\
|
||||
<tr><td valign='top' class='section'><p>Returns:</td>\
|
||||
<td valign='top'><p><code> lorem ipsum </code></td></table>\
|
||||
<div class='definition'><pre><a href="psi_element://java.lang.Object"><code><span style="color:#000000;">Object</span></code></a> <span style="color:#000000;">foo</span><span style="">(</span><span style="">)</span><br><span class='grayed'>defined in </span><a href="psi_element://_"><code><span style="color:#000000;">_</span></code></a></pre></div><table class='sections'><p><tr><td valign='top' class='section'><p>Returns:</td><td valign='top'><p><code> lorem ipsum </code></td></table>\
|
||||
"""
|
||||
}
|
||||
|
||||
@@ -166,8 +146,8 @@ f<caret>oo()""",
|
||||
class GroovyDocTest<T> { }
|
||||
|
||||
new Gr<caret>oovyDocTest<Integer>()""", """\
|
||||
<div class='definition'><pre>class <b>GroovyDocTest</b><T>
|
||||
extends <a href="psi_element://java.lang.Object"><code>Object</code></a></pre></div><table class='sections'><p><tr><td valign='top' class='section'><p>See Also:</td><td valign='top'><p><a href="https://google.com">ref</a></td></table>\
|
||||
<div class='definition'><pre><span style="color:#000080;font-weight:bold;">class</span> <span style="color:#000000;">GroovyDocTest</span><span style=""><</span><span style="color:#20999d;">T</span><span style="">></span>
|
||||
<span style="color:#000080;font-weight:bold;">extends </span><a href="psi_element://java.lang.Object"><code><span style="color:#000000;">Object</span></code></a></pre></div><table class='sections'><p><tr><td valign='top' class='section'><p>See Also:</td><td valign='top'><p><a href="https://google.com">ref</a></td></table>\
|
||||
"""
|
||||
}
|
||||
|
||||
@@ -180,8 +160,8 @@ extends <a href="psi_element://java.lang.Object"><code>Object</code></a></pre></
|
||||
class GroovyDocTest<T> { }
|
||||
|
||||
new Gr<caret>oovyDocTest<Integer>()""", """\
|
||||
<div class='definition'><pre>class <b>GroovyDocTest</b><T>
|
||||
extends <a href="psi_element://java.lang.Object"><code>Object</code></a></pre></div><table class='sections'><p><tr><td valign='top' class='section'><p>Type parameters:</td><td valign='top'><T> – kej</td></table>\
|
||||
<div class='definition'><pre><span style="color:#000080;font-weight:bold;">class</span> <span style="color:#000000;">GroovyDocTest</span><span style=""><</span><span style="color:#20999d;">T</span><span style="">></span>
|
||||
<span style="color:#000080;font-weight:bold;">extends </span><a href="psi_element://java.lang.Object"><code><span style="color:#000000;">Object</span></code></a></pre></div><table class='sections'><p><tr><td valign='top' class='section'><p>Type parameters:</td><td valign='top'><<span style="color:#20999d;">T</span>> – kej</td></table>\
|
||||
"""
|
||||
}
|
||||
|
||||
|
||||
@@ -217,7 +217,7 @@ public class MyCategory {
|
||||
myFixture.completeBasic()
|
||||
assert generateDoc().contains('Some doc')
|
||||
assert generateDoc().contains('foo')
|
||||
assert generateDoc().contains('()')
|
||||
assert generateDoc().contains('<span style="">(</span><span style="">)</span>')
|
||||
}
|
||||
|
||||
void testPropertyDoc() {
|
||||
|
||||
@@ -84,7 +84,7 @@ class HtmlClassifierNamePolicy(val base: ClassifierNamePolicy) : ClassifierNameP
|
||||
return name
|
||||
return buildString {
|
||||
val ref = classifier.fqNameUnsafe.toString()
|
||||
DocumentationManagerUtil.createHyperlink(this, ref, name, true)
|
||||
DocumentationManagerUtil.createHyperlink(this, ref, name, true, false)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -444,7 +444,7 @@ class KotlinDocumentationProvider : AbstractDocumentationProvider() {
|
||||
if (containingDeclaration != null) {
|
||||
val fqName = containingDeclaration.fqNameSafe
|
||||
if (!fqName.isRoot) {
|
||||
DocumentationManagerUtil.createHyperlink(this, fqName.asString(), fqName.asString(), false)
|
||||
DocumentationManagerUtil.createHyperlink(this, fqName.asString(), fqName.asString(), false, true)
|
||||
}
|
||||
val fileName =
|
||||
descriptor
|
||||
@@ -475,7 +475,7 @@ class KotlinDocumentationProvider : AbstractDocumentationProvider() {
|
||||
val psi = declarationDescriptor.findPsi() as? KtFunction ?: return ""
|
||||
val lightElement =
|
||||
LightClassUtil.getLightClassMethod(psi) // Light method for super's scan in javadoc info gen
|
||||
val javaDocInfoGenerator = JavaDocInfoGeneratorFactory.create(psi.project, lightElement)
|
||||
val javaDocInfoGenerator = JavaDocInfoGeneratorFactory.create(psi.project, lightElement, false)
|
||||
val builder = StringBuilder()
|
||||
if (javaDocInfoGenerator.generateDocInfoCore(builder, false)) {
|
||||
val renderedJava = builder.toString()
|
||||
|
||||
@@ -66,7 +66,7 @@ object KDocRenderer {
|
||||
}
|
||||
|
||||
private fun KDocLink.createHyperlink(to: StringBuilder) {
|
||||
DocumentationManagerUtil.createHyperlink(to, getLinkText(), getLinkText(), false)
|
||||
DocumentationManagerUtil.createHyperlink(to, getLinkText(), getLinkText(), false, true)
|
||||
}
|
||||
|
||||
private fun KDocLink.getTargetElement(): PsiElement? {
|
||||
@@ -130,7 +130,7 @@ object KDocRenderer {
|
||||
val tag = iterator.next()
|
||||
val subjectName = tag.getSubjectName()
|
||||
if (subjectName != null) {
|
||||
DocumentationManagerUtil.createHyperlink(this, subjectName, subjectName, false)
|
||||
DocumentationManagerUtil.createHyperlink(this, subjectName, subjectName, false, true)
|
||||
} else {
|
||||
append(tag.getContent())
|
||||
}
|
||||
@@ -150,7 +150,7 @@ object KDocRenderer {
|
||||
val subjectName = getSubjectName()
|
||||
if (subjectName != null) {
|
||||
append("<p><code>")
|
||||
DocumentationManagerUtil.createHyperlink(this@renderSection, subjectName, subjectName, false)
|
||||
DocumentationManagerUtil.createHyperlink(this@renderSection, subjectName, subjectName, false, true)
|
||||
append("</code> - ${markdownToHtml(getContent().trimStart())}")
|
||||
}
|
||||
}
|
||||
@@ -272,7 +272,7 @@ object KDocRenderer {
|
||||
if (linkLabelContent != null) {
|
||||
val label = linkLabelContent.joinToString(separator = "") { it.text }
|
||||
val linkText = node.child(MarkdownElementTypes.LINK_TEXT)?.toHtml() ?: label
|
||||
DocumentationManagerUtil.createHyperlink(sb, label, linkText, true)
|
||||
DocumentationManagerUtil.createHyperlink(sb, label, linkText, true, true)
|
||||
} else {
|
||||
sb.append(node.text)
|
||||
}
|
||||
|
||||
+3
-3
@@ -30,9 +30,9 @@ class JavadocNavigationTest() : KotlinLightCodeInsightFixtureTestCase() {
|
||||
val psiClass = (file as PsiJavaFile).classes[0]
|
||||
val docInfo = JavaDocInfoGenerator(project, psiClass).generateDocInfo(emptyList())
|
||||
Assert.assertEquals(
|
||||
"""<div class='definition'><pre>class <b>ExtMethod</b>
|
||||
extends <a href="psi_element://Super"><code>Super</code></a></pre></div><div class='content'>
|
||||
<a href="psi_element://Project#guessDir()"><code>directory</code></a>
|
||||
"""<div class='definition'><pre><span style="color:#000080;font-weight:bold;">class</span> <span style="color:#000000;">ExtMethod</span>
|
||||
<span style="color:#000080;font-weight:bold;">extends </span><a href="psi_element://Super"><code><span style="color:#000000;">Super</span></code></a></pre></div><div class='content'>
|
||||
<a href="psi_element://Project#guessDir()"><code><span style="color:#000000;">directory</span></code></a>
|
||||
</div><table class='sections'><p></table>""", docInfo)
|
||||
}
|
||||
|
||||
|
||||
@@ -54,4 +54,4 @@ class klass<T, X>(val name: String, val name2: String) {
|
||||
}
|
||||
|
||||
//RENDER: <div class='content'><p>This class has no useful logic; it's just a documentation example.</p></div><table class='sections'><tr><td valign='top' class='section'><p>Params:</td><td valign='top'><p><code>T</code> - the type of a member in this class.<p><code>X</code> - the type of a member in this class.</td><tr><td valign='top' class='section'><p>Properties:</td><td valign='top'><p><code>name</code> - is blablabla for name<p><code>name2</code> - is blublublu for name2</td><tr><td valign='top' class='section'><p>Constructor:</td><td valign='top'>primary ctor for it</td></table>
|
||||
//RENDER: <div class='content'><p>This method has no useful logic; it's just a documentation example.</p></div><table class='sections'><tr><td valign='top' class='section'><p>Params:</td><td valign='top'><p><code>M</code> - the type of a member in this method.<p><code>K</code> - the type of a member in this group.</td><tr><td valign='top' class='section'><p>Properties:</td><td valign='top'><p><code>name</code> - is blablabla for name<p><code>name2</code> - blublublu for name2</td><tr><td valign='top' class='section'><p>Returns:</td><td valign='top'><a href="psi_element://returnMethod">returnMethod</a> if Duck is Dark</td><tr><td valign='top' class='section'><p>Throws:</td><td valign='top'><p><code><a href="psi_element://IndexOutOfBoundsException"><code>IndexOutOfBoundsException</code></a></code> - if something wrong<p><code><a href="psi_element://ArrayIndexOutOfBoundsException"><code>ArrayIndexOutOfBoundsException</code></a></code> - if else something wrong<p><code><a href="psi_element://java.io.IOException"><code>java.io.IOException</code></a></code> - if something else else wrong</td><tr><td valign='top' class='section'><p>Author:</td><td valign='top'>DarkWing Duck</td><tr><td valign='top' class='section'><p>Suppress:</td><td valign='top'>something to suppress</td><tr><td valign='top' class='section'><p>See Also:</td><td valign='top'><a href="psi_element://method2"><code>method2</code></a>, <a href="psi_element://method3"><code>method3</code></a></td><tr><td valign='top' class='section'><p>Samples:</td><td valign='top'><p><a href="psi_element://sample"><code>sample</code></a><pre><code>//this is the sample</code></pre><p><a href="psi_element://sample2"><code>sample2</code></a><pre><code>//this is the sample2</code></pre></td></table>
|
||||
//RENDER: <div class='content'><p>This method has no useful logic; it's just a documentation example.</p></div><table class='sections'><tr><td valign='top' class='section'><p>Params:</td><td valign='top'><p><code>M</code> - the type of a member in this method.<p><code>K</code> - the type of a member in this group.</td><tr><td valign='top' class='section'><p>Properties:</td><td valign='top'><p><code>name</code> - is blablabla for name<p><code>name2</code> - blublublu for name2</td><tr><td valign='top' class='section'><p>Returns:</td><td valign='top'><a href="psi_element://returnMethod">returnMethod</a> if Duck is Dark</td><tr><td valign='top' class='section'><p>Throws:</td><td valign='top'><p><code><a href="psi_element://IndexOutOfBoundsException"><code style='font-size:96%;'>IndexOutOfBoundsException</code></a></code> - if something wrong<p><code><a href="psi_element://ArrayIndexOutOfBoundsException"><code style='font-size:96%;'>ArrayIndexOutOfBoundsException</code></a></code> - if else something wrong<p><code><a href="psi_element://java.io.IOException"><code style='font-size:96%;'>java.io.IOException</code></a></code> - if something else else wrong</td><tr><td valign='top' class='section'><p>Author:</td><td valign='top'>DarkWing Duck</td><tr><td valign='top' class='section'><p>Suppress:</td><td valign='top'>something to suppress</td><tr><td valign='top' class='section'><p>See Also:</td><td valign='top'><a href="psi_element://method2"><code style='font-size:96%;'>method2</code></a>, <a href="psi_element://method3"><code style='font-size:96%;'>method3</code></a></td><tr><td valign='top' class='section'><p>Samples:</td><td valign='top'><p><a href="psi_element://sample"><code style='font-size:96%;'>sample</code></a><pre><code>//this is the sample</code></pre><p><a href="psi_element://sample2"><code style='font-size:96%;'>sample2</code></a><pre><code>//this is the sample2</code></pre></td></table>
|
||||
@@ -9,4 +9,4 @@ class C {
|
||||
}
|
||||
}
|
||||
|
||||
//INFO: <div class='definition'><pre><a href="psi_element://C"><code>C</code></a><br>public final fun <b>foo</b>(): Unit</pre></div><div class='content'><p>Use <a href="psi_element://SOME_REFERENCED_VAL">SOME_REFERENCED_VAL</a> to do something</p></div><table class='sections'></table>
|
||||
//INFO: <div class='definition'><pre><a href="psi_element://C"><code style='font-size:96%;'>C</code></a><br>public final fun <b>foo</b>(): Unit</pre></div><div class='content'><p>Use <a href="psi_element://SOME_REFERENCED_VAL">SOME_REFERENCED_VAL</a> to do something</p></div><table class='sections'></table>
|
||||
|
||||
@@ -5,4 +5,4 @@ interface Base
|
||||
*/
|
||||
class Some<<caret>T: Base>
|
||||
|
||||
//INFO: <div class='definition'><pre><a href="psi_element://Some"><code>Some</code></a><br><<b>T</b> : <a href="psi_element://Base">Base</a>></pre></div><div class='content'><p>this is docs for T</p></div><table class='sections'></table>
|
||||
//INFO: <div class='definition'><pre><a href="psi_element://Some"><code style='font-size:96%;'>Some</code></a><br><<b>T</b> : <a href="psi_element://Base">Base</a>></pre></div><div class='content'><p>this is docs for T</p></div><table class='sections'></table>
|
||||
|
||||
@@ -4,4 +4,4 @@ class C(var v: Int) {
|
||||
}
|
||||
}
|
||||
|
||||
//INFO: <div class='definition'><pre><a href="psi_element://C"><code>C</code></a><br>public final var <b>v</b>: Int</pre></div>
|
||||
//INFO: <div class='definition'><pre><a href="psi_element://C"><code style='font-size:96%;'>C</code></a><br>public final var <b>v</b>: Int</pre></div>
|
||||
|
||||
+3
-3
@@ -2,6 +2,6 @@ fun testing() {
|
||||
SomeClassWithParen("param", 1<caret>)
|
||||
}
|
||||
|
||||
//INFO: <div class='definition'><pre><a href="psi_element://SomeClassWithParen"><code>SomeClassWithParen</code></a><br><i>@<a href="psi_element://org.jetbrains.annotations.Contract"><code>Contract</code></a>(pure = true)</i>
|
||||
//INFO: public <b>SomeClassWithParen</b>(<a href="psi_element://java.lang.String"><code>String</code></a> str,
|
||||
//INFO: int num)</pre></div><table class='sections'><p><tr><td valign='top' class='section'><p><i>Inferred</i> annotations:</td><td valign='top'><p><i>@<a href="psi_element://org.jetbrains.annotations.Contract">org.jetbrains.annotations.Contract</a>(pure = true)</i></td></table>
|
||||
//INFO: <div class='definition'><pre><i><span style="color:#808000;">@</span><a href="psi_element://org.jetbrains.annotations.Contract"><code style='font-size:96%;'><span style="color:#808000;">Contract</span></code></a><span style="">(</span><span style="">pure</span><span style=""> = </span><span style="color:#000080;font-weight:bold;">true</span><span style="">)</span></i>
|
||||
//INFO: <span style="color:#000080;font-weight:bold;">public</span> <span style="color:#000000;">SomeClassWithParen</span><span style="">(</span><a href="psi_element://java.lang.String"><code><span style="color:#000000;">String</span></code></a> <span style="">str</span><span style="">,
|
||||
//INFO: </span> <span style="color:#000080;font-weight:bold;">int</span> <span style="">num</span><span style="">)</span><br><span class='grayed'>defined in </span><a href="psi_element://SomeClassWithParen"><code><span style="color:#000000;">SomeClassWithParen</span></code></a></pre></div><table class='sections'><p><tr><td valign='top' class='section'><p><i>Inferred</i><br> annotations:</td><td valign='top'><p><i><span style="color:#808000;">@</span><a href="psi_element://org.jetbrains.annotations.Contract"><span style="color:#808000;">org.jetbrains.annotations.Contract</span></a><span style="">(</span><span style="">pure</span><span style=""> = </span><span style="color:#000080;font-weight:bold;">true</span><span style="">)</span></i></td></table>
|
||||
|
||||
@@ -2,7 +2,7 @@ fun testing() {
|
||||
<caret>SomeClass<List<String>>()
|
||||
}
|
||||
|
||||
//INFO: <div class='definition'><pre>public class <b>SomeClass</b><T extends <a href="psi_element://java.util.List"><code>List</code></a>>
|
||||
//INFO: extends <a href="psi_element://java.lang.Object"><code>Object</code></a></pre></div><div class='content'>
|
||||
//INFO: <div class='definition'><pre><span style="color:#000080;font-weight:bold;">public</span> <span style="color:#000080;font-weight:bold;">class</span> <span style="color:#000000;">SomeClass</span><span style=""><</span><span style="color:#20999d;">T</span><span style="color:#000080;font-weight:bold;"> extends </span><a href="psi_element://java.util.List"><code><span style="color:#000000;">List</span></code></a><span style="">></span>
|
||||
//INFO: <span style="color:#000080;font-weight:bold;">extends </span><a href="psi_element://java.lang.Object"><code><span style="color:#000000;">Object</span></code></a></pre></div><div class='content'>
|
||||
//INFO: Some Java Class
|
||||
//INFO: </div><table class='sections'><p><tr><td valign='top' class='section'><p>Type parameters:</td><td valign='top'><T> – </td></table>
|
||||
//INFO: </div><table class='sections'><p><tr><td valign='top' class='section'><p>Type parameters:</td><td valign='top'><<span style="color:#20999d;">T</span>> – </td></table>
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user