diff --git a/idea/src/org/jetbrains/kotlin/idea/kdoc/KDocRenderer.kt b/idea/src/org/jetbrains/kotlin/idea/kdoc/KDocRenderer.kt index 43f72f1c3ef..250e84914a1 100644 --- a/idea/src/org/jetbrains/kotlin/idea/kdoc/KDocRenderer.kt +++ b/idea/src/org/jetbrains/kotlin/idea/kdoc/KDocRenderer.kt @@ -203,10 +203,12 @@ object KDocRenderer { MarkdownTokenTypes.RPAREN, MarkdownTokenTypes.LBRACKET, MarkdownTokenTypes.RBRACKET, - MarkdownTokenTypes.EXCLAMATION_MARK, - MarkdownTokenTypes.CODE_FENCE_CONTENT-> { + MarkdownTokenTypes.EXCLAMATION_MARK -> { sb.append(nodeText) } + MarkdownTokenTypes.CODE_FENCE_CONTENT -> { + sb.append(nodeText.htmlEscape()) + } MarkdownTokenTypes.EOL -> { val parentType = node.parent?.type if (parentType == MarkdownElementTypes.CODE_BLOCK || parentType == MarkdownElementTypes.CODE_FENCE) { diff --git a/idea/testData/editor/quickDoc/EscapeHtmlInsideCodeBlocks.kt b/idea/testData/editor/quickDoc/EscapeHtmlInsideCodeBlocks.kt new file mode 100644 index 00000000000..6425206677d --- /dev/null +++ b/idea/testData/editor/quickDoc/EscapeHtmlInsideCodeBlocks.kt @@ -0,0 +1,14 @@ +/** + * Code block: + * ``` kotlin + * A + * ``` + * Code span: + * `` is type parameter + */ +class A + +//INFO: public final class A<T> defined in root package

Code block:

+//INFO:

+//INFO: A<T>
+//INFO: 

Code span: <T> is type parameter

diff --git a/idea/tests/org/jetbrains/kotlin/idea/editor/quickDoc/QuickDocProviderTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/editor/quickDoc/QuickDocProviderTestGenerated.java index 9e332b86ef0..1265adf88bd 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/editor/quickDoc/QuickDocProviderTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/editor/quickDoc/QuickDocProviderTestGenerated.java @@ -72,6 +72,12 @@ public class QuickDocProviderTestGenerated extends AbstractQuickDocProviderTest doTest(fileName); } + @TestMetadata("EscapeHtmlInsideCodeBlocks.kt") + public void testEscapeHtmlInsideCodeBlocks() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/editor/quickDoc/EscapeHtmlInsideCodeBlocks.kt"); + doTest(fileName); + } + @TestMetadata("JavaClassUsedInKotlin.kt") public void testJavaClassUsedInKotlin() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("idea/testData/editor/quickDoc/JavaClassUsedInKotlin.kt");