Fix for KT-13038 Quick doc should escape HTML entities in code blocks

This commit is contained in:
Simon Ogorodnik
2016-11-08 22:05:10 +03:00
parent 2cd6c85cc7
commit b007d9b60f
3 changed files with 24 additions and 2 deletions
@@ -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) {
@@ -0,0 +1,14 @@
/**
* Code block:
* ``` kotlin
* A<T>
* ```
* Code span:
* `<T>` is type parameter
*/
class <caret>A<T>
//INFO: <b>public</b> <b>final</b> <b>class</b> A&lt;T&gt; <i>defined in</i> root package<p>Code block:</p>
//INFO: <pre><code>
//INFO: A&lt;T&gt;
//INFO: </code></pre><p>Code span: <code>&lt;T&gt;</code> is type parameter</p>
@@ -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");