Fix for KT-13818
Javadoc @code conversion
This commit is contained in:
@@ -22,6 +22,7 @@ import com.intellij.psi.PsiElement
|
|||||||
import com.intellij.psi.PsiFileFactory
|
import com.intellij.psi.PsiFileFactory
|
||||||
import com.intellij.psi.PsiWhiteSpace
|
import com.intellij.psi.PsiWhiteSpace
|
||||||
import com.intellij.psi.XmlRecursiveElementVisitor
|
import com.intellij.psi.XmlRecursiveElementVisitor
|
||||||
|
import com.intellij.psi.html.HtmlTag
|
||||||
import com.intellij.psi.javadoc.PsiDocComment
|
import com.intellij.psi.javadoc.PsiDocComment
|
||||||
import com.intellij.psi.javadoc.PsiDocTag
|
import com.intellij.psi.javadoc.PsiDocTag
|
||||||
import com.intellij.psi.javadoc.PsiDocToken
|
import com.intellij.psi.javadoc.PsiDocToken
|
||||||
@@ -132,10 +133,22 @@ object IdeaDocCommentConverter : DocCommentConverter {
|
|||||||
super.visitElement(element)
|
super.visitElement(element)
|
||||||
|
|
||||||
val tokenType = element.node.elementType
|
val tokenType = element.node.elementType
|
||||||
if (tokenType == XmlTokenType.XML_DATA_CHARACTERS || tokenType == XmlTokenType.XML_CHAR_ENTITY_REF) {
|
|
||||||
appendPendingText()
|
when (tokenType) {
|
||||||
markdownBuilder.append(element.text)
|
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) {
|
override fun visitXmlTag(tag: XmlTag) {
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
/**
|
/**
|
||||||
* `A<B`
|
* `A<B`
|
||||||
*/
|
*/
|
||||||
class C
|
class C
|
||||||
|
|||||||
@@ -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 {}
|
||||||
@@ -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);
|
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")
|
@TestMetadata("deprecatedDocTag.java")
|
||||||
public void testDeprecatedDocTag() throws Exception {
|
public void testDeprecatedDocTag() throws Exception {
|
||||||
String fileName = KotlinTestUtils.navigationMetadata("j2k/testData/fileOrElement/docComments/deprecatedDocTag.java");
|
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);
|
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")
|
@TestMetadata("deprecatedDocTag.java")
|
||||||
public void testDeprecatedDocTag() throws Exception {
|
public void testDeprecatedDocTag() throws Exception {
|
||||||
String fileName = KotlinTestUtils.navigationMetadata("j2k/testData/fileOrElement/docComments/deprecatedDocTag.java");
|
String fileName = KotlinTestUtils.navigationMetadata("j2k/testData/fileOrElement/docComments/deprecatedDocTag.java");
|
||||||
|
|||||||
Reference in New Issue
Block a user