mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
records: quick javadoc (IDEA-229844)
GitOrigin-RevId: e2b6635e4183f63969fa210d42a44721f9fecdf8
This commit is contained in:
committed by
intellij-monorepo-bot
parent
580a5c69f5
commit
fb015d184a
@@ -489,6 +489,7 @@ public class JavaDocInfoGenerator {
|
||||
if (rendered) {
|
||||
generateAuthorAndVersionSections(buffer, comment);
|
||||
}
|
||||
generateRecordParametersSection(buffer, aClass, comment);
|
||||
generateTypeParametersSection(buffer, aClass, rendered);
|
||||
}
|
||||
else {
|
||||
@@ -501,12 +502,27 @@ public class JavaDocInfoGenerator {
|
||||
buffer.append(DocumentationMarkup.SECTIONS_END);
|
||||
}
|
||||
|
||||
private void generateRecordParametersSection(StringBuilder buffer, PsiClass recordClass, PsiDocComment comment) {
|
||||
if (!recordClass.isRecord() || comment == null) return;
|
||||
PsiDocTag[] localTags = comment.findTagsByName("param");
|
||||
List<ParamInfo> collectedTags = new ArrayList<>();
|
||||
for (PsiRecordComponent component : recordClass.getRecordComponents()) {
|
||||
PsiDocTag localTag = getTagByName(localTags, component.getName());
|
||||
if (localTag != null) {
|
||||
collectedTags.add(new ParamInfo(component.getName(), localTag, ourEmptyProvider));
|
||||
}
|
||||
}
|
||||
generateParametersSection(buffer, CodeInsightBundle.message("javadoc.parameters"), collectedTags);
|
||||
}
|
||||
|
||||
|
||||
private static boolean generateClassSignature(StringBuilder buffer, PsiClass aClass, SignaturePlace place) {
|
||||
boolean generateLink = place == SignaturePlace.Javadoc;
|
||||
generateAnnotations(buffer, aClass, place, true);
|
||||
generateModifiers(buffer, aClass, false);
|
||||
buffer.append(JavaBundle.message(aClass.isInterface() ? "java.terms.interface"
|
||||
: aClass.isEnum() ? "java.terms.enum" : "java.terms.class"));
|
||||
: aClass.isEnum() ? "java.terms.enum"
|
||||
: aClass.isRecord() ? "java.terms.record" : "java.terms.class"));
|
||||
buffer.append(' ');
|
||||
String refText = JavaDocUtil.getReferenceText(aClass.getProject(), aClass);
|
||||
if (refText == null) {
|
||||
|
||||
@@ -0,0 +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'>
|
||||
main comment
|
||||
</div><table class='sections'><p><tr><td valign='top' class='section'><p>Params:</td><td valign='top'>test – simple description</td></table>
|
||||
@@ -0,0 +1,5 @@
|
||||
/**
|
||||
* main comment
|
||||
* @param test simple description
|
||||
*/
|
||||
record Test(int test) {}
|
||||
+7
@@ -19,6 +19,7 @@ import com.intellij.openapi.roots.libraries.LibraryTablesRegistrar;
|
||||
import com.intellij.openapi.util.io.FileUtil;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.pom.java.LanguageLevel;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import com.intellij.rt.execution.junit.FileComparisonFailure;
|
||||
@@ -54,6 +55,11 @@ public class JavaDocInfoGeneratorTest extends JavaCodeInsightTestCase {
|
||||
return IdeaTestUtil.getMockJdk(JavaVersion.compose(myJdkVersion));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected @NotNull LanguageLevel getProjectLanguageLevel() {
|
||||
return LanguageLevel.JDK_14_PREVIEW;
|
||||
}
|
||||
|
||||
public void testSimpleField() { doTestField(); }
|
||||
public void testFieldValue() { doTestField(); }
|
||||
public void testValueInMethod() { doTestMethod(); }
|
||||
@@ -86,6 +92,7 @@ public class JavaDocInfoGeneratorTest extends JavaCodeInsightTestCase {
|
||||
public void testFieldInitializedWithSizedArray() { doTestField(); }
|
||||
public void testDoubleLt() { doTestClass(); }
|
||||
public void testNoSpaceAfterTagName() { doTestClass(); }
|
||||
public void testRecordParameters() { doTestClass(); } //j.l.Record is unresolved as there is no mock jdk 14 yet
|
||||
public void testLambdaParameter() { doTestLambdaParameter(); }
|
||||
public void testLocalClassInsideAnonymous() { doTestAtCaret(); }
|
||||
public void testPackageInfoFromComment() { doTestPackageInfo("some"); }
|
||||
|
||||
@@ -834,6 +834,7 @@ java.preview.features.notification.title=Java Preview Features
|
||||
java.preview.features.warning=When Java {0} would be released, support for {1} (Preview) language level may be dropped
|
||||
java.terms.annotation.interface=@interface
|
||||
java.terms.class=class
|
||||
java.terms.record=record
|
||||
java.terms.constructor=constructor
|
||||
java.terms.enum=enum
|
||||
java.terms.exception=exception
|
||||
|
||||
Reference in New Issue
Block a user