diff --git a/java/java-impl/src/com/intellij/psi/impl/source/tree/injected/JavadocInjector.java b/java/java-impl/src/com/intellij/psi/impl/source/tree/injected/JavadocInjector.java
index a3f0ee8dfa5b..b09b0e4cb0fa 100644
--- a/java/java-impl/src/com/intellij/psi/impl/source/tree/injected/JavadocInjector.java
+++ b/java/java-impl/src/com/intellij/psi/impl/source/tree/injected/JavadocInjector.java
@@ -30,8 +30,13 @@ public class JavadocInjector implements MultiHostInjector {
final PsiSnippetDocTagImpl snippet = (PsiSnippetDocTagImpl)context;
- registrar.startInjecting(getLanguage(snippet))
- .addPlace(null, null, snippet, innerRangeStrippingQuotes(snippet))
+ final Language language = getLanguage(snippet);
+
+ final String prefix = language == JavaLanguage.INSTANCE ? "class ___JavadocSnippetPlaceholder { " : null;
+ final String suffix = language == JavaLanguage.INSTANCE ? " }" : null;
+
+ registrar.startInjecting(language)
+ .addPlace(prefix, suffix, snippet, innerRangeStrippingQuotes(snippet))
.doneInjecting();
}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/javaDoc/Snippet.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/javaDoc/Snippet.java
index e767515432b2..7e4e070cbaf5 100644
--- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/javaDoc/Snippet.java
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/javaDoc/Snippet.java
@@ -1,5 +1,5 @@
/** {@snippet :
- * Body
+ * Body
* }
*/
class A {
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/javaDoc/SnippetInstructions.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/javaDoc/SnippetInstructions.java
new file mode 100644
index 000000000000..026a5809f936
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/javaDoc/SnippetInstructions.java
@@ -0,0 +1,11 @@
+/** {@snippet :
+ * {
+ * Optional v = null;
+ * if (v.isPresent()) {
+ * System.out.println("v: " + v.get());
+ * }
+ * }
+ * }
+ */
+class A {
+}
\ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/javaDoc/SnippetMethod.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/javaDoc/SnippetMethod.java
new file mode 100644
index 000000000000..9b4c0a77a9c9
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/javaDoc/SnippetMethod.java
@@ -0,0 +1,6 @@
+/** {@snippet :
+ * void f() {}
+ * }
+ */
+class A {
+}
\ No newline at end of file
diff --git a/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/JavadocHighlightingTest.java b/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/JavadocHighlightingTest.java
index 4deec4935a0a..834f39a574e8 100644
--- a/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/JavadocHighlightingTest.java
+++ b/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/JavadocHighlightingTest.java
@@ -127,6 +127,8 @@ public class JavadocHighlightingTest extends LightDaemonAnalyzerTestCase {
public void testThrowsInheritDoc() { doTest(); }
public void testSnippetInlineTag() { doTest(); }
public void testSnippet() { doTest(); }
+ public void testSnippetMethod() { doTest(); }
+ public void testSnippetInstructions() { doTest(); }
public void testIssueLinksInJavaDoc() {
IssueNavigationConfiguration navigationConfiguration = IssueNavigationConfiguration.getInstance(getProject());
@@ -143,7 +145,7 @@ public class JavadocHighlightingTest extends LightDaemonAnalyzerTestCase {
}
else {
List refs = PlatformTestUtil.collectWebReferences(getFile());
- assertTrue(refs.stream().allMatch(PsiReferenceBase::isSoft));
+ assertTrue(ContainerUtil.and(refs, PsiReferenceBase::isSoft));
assertEquals(expected, ContainerUtil.map(refs, WebReference::getUrl));
}
}
@@ -165,7 +167,7 @@ public class JavadocHighlightingTest extends LightDaemonAnalyzerTestCase {
}
else {
List refs = PlatformTestUtil.collectWebReferences(getFile());
- assertTrue(refs.stream().allMatch(PsiReferenceBase::isSoft));
+ assertTrue(ContainerUtil.and(refs, PsiReferenceBase::isSoft));
assertEquals(expected, refs.stream().map(PsiReferenceBase::getCanonicalText).collect(Collectors.toSet()));
}
}