Fix for KT-13818

Javadoc @code conversion
This commit is contained in:
Simon Ogorodnik
2016-10-10 20:32:37 +03:00
parent 452b77692d
commit 1a7c507cc5
6 changed files with 51 additions and 4 deletions
@@ -22,6 +22,7 @@ import com.intellij.psi.PsiElement
import com.intellij.psi.PsiFileFactory
import com.intellij.psi.PsiWhiteSpace
import com.intellij.psi.XmlRecursiveElementVisitor
import com.intellij.psi.html.HtmlTag
import com.intellij.psi.javadoc.PsiDocComment
import com.intellij.psi.javadoc.PsiDocTag
import com.intellij.psi.javadoc.PsiDocToken
@@ -132,10 +133,22 @@ object IdeaDocCommentConverter : DocCommentConverter {
super.visitElement(element)
val tokenType = element.node.elementType
if (tokenType == XmlTokenType.XML_DATA_CHARACTERS || tokenType == XmlTokenType.XML_CHAR_ENTITY_REF) {
appendPendingText()
markdownBuilder.append(element.text)
when (tokenType) {
XmlTokenType.XML_DATA_CHARACTERS -> {
appendPendingText()
markdownBuilder.append(element.text)
}
XmlTokenType.XML_CHAR_ENTITY_REF -> {
appendPendingText()
val grandParent = element.parent.parent
if(grandParent is HtmlTag && (grandParent.name == "code" || grandParent.name == "literal"))
markdownBuilder.append(StringUtil.unescapeXml(element.text))
else
markdownBuilder.append(element.text)
}
}
}
override fun visitXmlTag(tag: XmlTag) {
@@ -1,4 +1,4 @@
/**
* `A<B`
* `A<B`
*/
class C
+11
View File
@@ -0,0 +1,11 @@
/**
* Start.
* Plain quote: 'quoted'
* KT-13818: {@code 'quoted'}
* Code: {@code someCode()}
* Operators: {@code a > b}
* String: {@code str = "String"}
* Generic: {@code List<T>}
* End.
*/
public class Quote {}
+11
View File
@@ -0,0 +1,11 @@
/**
* Start.
* Plain quote: 'quoted'
* KT-13818: `'quoted'`
* Code: `someCode()`
* Operators: `a > b`
* String: `str = "String"`
* Generic: `List<T>`
* End.
*/
class Quote
@@ -1711,6 +1711,12 @@ public class JavaToKotlinConverterForWebDemoTestGenerated extends AbstractJavaTo
KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("j2k/testData/fileOrElement/docComments"), Pattern.compile("^(.+)\\.java$"), true);
}
@TestMetadata("quoted.java")
public void testCodeQuote() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("j2k/testData/fileOrElement/docComments/quoted.java");
doTest(fileName);
}
@TestMetadata("deprecatedDocTag.java")
public void testDeprecatedDocTag() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("j2k/testData/fileOrElement/docComments/deprecatedDocTag.java");
@@ -1711,6 +1711,12 @@ public class JavaToKotlinConverterSingleFileTestGenerated extends AbstractJavaTo
KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("j2k/testData/fileOrElement/docComments"), Pattern.compile("^(.+)\\.java$"), true);
}
@TestMetadata("quoted.java")
public void testCodeQuote() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("j2k/testData/fileOrElement/docComments/quoted.java");
doTest(fileName);
}
@TestMetadata("deprecatedDocTag.java")
public void testDeprecatedDocTag() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("j2k/testData/fileOrElement/docComments/deprecatedDocTag.java");