diff --git a/java/java-tests/testData/codeInsight/externalJavadoc/packageSummaryJava8/expected.html b/java/java-tests/testData/codeInsight/externalJavadoc/packageSummaryJava8/expected.html new file mode 100644 index 000000000000..a917fb3d15f0 --- /dev/null +++ b/java/java-tests/testData/codeInsight/externalJavadoc/packageSummaryJava8/expected.html @@ -0,0 +1,20 @@ +

Package my.pack Description

+
Description
+
Since:
+
42
+
+ + \ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/externalJavadoc/packageSummaryJava8/package-info.java b/java/java-tests/testData/codeInsight/externalJavadoc/packageSummaryJava8/package-info.java new file mode 100644 index 000000000000..c3230cddbf45 --- /dev/null +++ b/java/java-tests/testData/codeInsight/externalJavadoc/packageSummaryJava8/package-info.java @@ -0,0 +1,6 @@ +/** + * Description + * + * @since 42 + */ +package my.pack; \ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/externalJavadoc/packageSummaryJava8/package-summary.html b/java/java-tests/testData/codeInsight/externalJavadoc/packageSummaryJava8/package-summary.html new file mode 100644 index 000000000000..c4c769a55ad2 --- /dev/null +++ b/java/java-tests/testData/codeInsight/externalJavadoc/packageSummaryJava8/package-summary.html @@ -0,0 +1,135 @@ + + + + + +my.pack + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Package my.pack

+
+
Description
+
+

See: Description

+
+
+ + +

Package my.pack Description

+
Description
+
+
Since:
+
42
+
+
+ +
+ + +
Skip navigation links
+ + + + +
+ + + + diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/javadoc/ExternalJavadocPresentationTest.java b/java/java-tests/testSrc/com/intellij/codeInsight/javadoc/ExternalJavadocPresentationTest.java index 2c0ac742239b..344938b2eb6f 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/javadoc/ExternalJavadocPresentationTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/javadoc/ExternalJavadocPresentationTest.java @@ -63,6 +63,10 @@ public class ExternalJavadocPresentationTest extends LightCodeInsightTestCase { doTest("SimpleInterface.html", "noMethodsOrFieldsInClass/SimpleInterface.html", "noMethodsOrFieldsInClass/expected.html"); } + public void testPackageSummaryJava8() throws Exception { + doTest("package-summary.html", "packageSummaryJava8/package-summary.html", "packageSummaryJava8/expected.html"); + } + private void doTest(@NonNls String url, @NonNls String pageText, @NonNls String expected) throws Exception { doTest(url, pageText, expected, true); } diff --git a/platform/lang-impl/src/com/intellij/codeInsight/documentation/AbstractExternalFilter.java b/platform/lang-impl/src/com/intellij/codeInsight/documentation/AbstractExternalFilter.java index 86e9bd556896..c839358be3ae 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/documentation/AbstractExternalFilter.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/documentation/AbstractExternalFilter.java @@ -269,12 +269,12 @@ public abstract class AbstractExternalFilter { StringBuilder classDetails = new StringBuilder(); while (((read = buf.readLine()) != null) && !StringUtil.toUpperCase(read).equals(HR) && !StringUtil.toUpperCase(read).equals(P)) { - if (reachTheEnd(data, read, classDetails)) return; + if (reachTheEnd(data, read, classDetails, endSection)) return; appendLine(classDetails, read); } while (((read = buf.readLine()) != null) && !StringUtil.toUpperCase(read).equals(P) && !StringUtil.toUpperCase(read).equals(HR)) { - if (reachTheEnd(data, read, classDetails)) return; + if (reachTheEnd(data, read, classDetails, endSection)) return; appendLine(data, read.replaceAll(DT, DT + BR)); } @@ -313,10 +313,11 @@ public abstract class AbstractExternalFilter { return new ParseSettings(startSection, endSection, !anchorPresent, anchorPresent); } - private static boolean reachTheEnd(StringBuilder data, String read, StringBuilder classDetails) { + private static boolean reachTheEnd(StringBuilder data, String read, StringBuilder classDetails, Pattern endSection) { if (StringUtil.indexOfIgnoreCase(read, FIELD_SUMMARY, 0) != -1 || StringUtil.indexOfIgnoreCase(read, CLASS_SUMMARY, 0) != -1 || - StringUtil.indexOfIgnoreCase(read, GREATEST_END_SECTION, 0) != -1) { + StringUtil.indexOfIgnoreCase(read, GREATEST_END_SECTION, 0) != -1 || + endSection.matcher(read).find()) { data.append(classDetails); data.append(HTML_CLOSE); return true;