diff --git a/common/build.gradle.kts b/common/build.gradle.kts index 2644e67d4..57e8e3921 100644 --- a/common/build.gradle.kts +++ b/common/build.gradle.kts @@ -6,6 +6,7 @@ import com.github.javaparser.ast.expr.StringLiteralExpr import com.github.javaparser.ast.type.PrimitiveType import com.github.javaparser.ast.type.PrimitiveType.Primitive import com.github.javaparser.ast.type.Type +import com.github.javaparser.ast.Node plugins { `java-library` @@ -96,7 +97,7 @@ tasks.create("tectonicDocs") { } } - val children = HashMap>() + val children = HashMap>() sources.forEach { (name, unit) -> unit.getClassByName(name).ifPresent { declaration -> declaration.extendedTypes.forEach { classOrInterfaceType -> @@ -116,11 +117,11 @@ tasks.create("tectonicDocs") { } declaration.extendedTypes.forEach { if (!it.name.asString().equals("AbstractableTemplate")) { - doc.append("Inherits from ${parseTypeLink(it, refactor)} \n") + doc.append("Inherits from ${parseTypeLink(it, refactor, false)} \n \n") } } if (children.containsKey(name)) { - doc.append("Children: \n") + doc.append("Children:\n") children[name]!!.forEach { doc.append("* ${parseTypeLink(it, refactor)}\n") } @@ -167,17 +168,17 @@ tasks.create("tectonicDocs") { } } -fun parseTypeLink(type: com.github.javaparser.ast.Node, refactor: Map): String { +fun parseTypeLink(type: Node, refactor: Map, generic: Boolean = true): String { val st = parseType(type, refactor) - if (st.contains('<')) { + if (type is Type && type.childNodes.size > 1 && generic) { val outer = generify(type.childNodes[0].toString(), refactor) val builder = StringBuilder() builder.append("[$outer](./$outer)\\<") for (i in 1 until type.childNodes.size) { - builder.append(parseTypeLink(type.childNodes[i] as Type, refactor)) + builder.append(parseTypeLink(type.childNodes[i], refactor)) if (i != type.childNodes.size - 1) builder.append(", ") } @@ -188,7 +189,7 @@ fun parseTypeLink(type: com.github.javaparser.ast.Node, refactor: Map): String { +fun parseType(type: Node, refactor: Map): String { if (type is PrimitiveType) { return when (type.type) { Primitive.BOOLEAN -> "Boolean" @@ -202,6 +203,7 @@ fun parseType(type: com.github.javaparser.ast.Node, refactor: Map type.asString() } } + if(type is Type && type.childNodes.size > 1) return generify(type.childNodes[0].toString(), refactor) return generify(type.toString(), refactor) }