@@ -12,10 +12,7 @@ import dotty.dokka.tasty.comments.Comment
12
12
trait ScaladocSupport { self : TastyParser =>
13
13
import qctx .reflect ._
14
14
15
- def preparseComment (
16
- docstring : String ,
17
- tree : Tree
18
- ): Comment =
15
+ def parseComment (docstring : String , tree : Tree ): Comment =
19
16
val commentString : String =
20
17
if tree.symbol.isClassDef || tree.symbol.owner.isClassDef then
21
18
import dotty .tools .dotc
@@ -50,92 +47,4 @@ trait ScaladocSupport { self: TastyParser =>
50
47
comments.MarkdownCommentParser (comments.Repr (qctx)(tree.symbol))
51
48
}
52
49
parser.parse(preparsed)
53
-
54
- def parseComment (
55
- docstring : String ,
56
- tree : Tree
57
- ): dkkd.DocumentationNode = {
58
- val commentString : String =
59
- if tree.symbol.isClassDef || tree.symbol.owner.isClassDef then
60
- import dotty .tools .dotc
61
- given ctx : dotc.core.Contexts .Context = qctx.asInstanceOf [scala.quoted.runtime.impl.QuotesImpl ].ctx
62
-
63
- val sym = tree.symbol.asInstanceOf [dotc.core.Symbols .Symbol ]
64
-
65
- comments.CommentExpander .cookComment(sym)(using ctx)
66
- .get.expanded.get
67
- else
68
- docstring
69
-
70
- val preparsed =
71
- comments.Preparser .preparse(comments.Cleaner .clean(commentString))
72
-
73
- val commentSyntax =
74
- preparsed.syntax.headOption match {
75
- case Some (commentSetting) =>
76
- CommentSyntax .parse(commentSetting).getOrElse {
77
- val msg = s " not a valid comment syntax: $commentSetting, defaulting to Markdown syntax. "
78
- // we should update pos with span from documentation
79
- report.warning(msg, tree.pos)
80
- CommentSyntax .default
81
- }
82
- case None => ctx.args.defaultSyntax
83
- }
84
-
85
- val parser = commentSyntax match {
86
- case CommentSyntax .Wiki =>
87
- comments.WikiCommentParser (comments.Repr (qctx)(tree.symbol))
88
- case CommentSyntax .Markdown =>
89
- comments.MarkdownCommentParser (comments.Repr (qctx)(tree.symbol))
90
- }
91
- val parsed = parser.parse(preparsed)
92
-
93
- import kotlin .collections .builders .{ListBuilder => KtListBuilder }
94
- val bld = new KtListBuilder [dkkd.TagWrapper ]
95
- parsed.short match {
96
- case Some (tag) => bld.add(dkkd.Description (tag))
97
- case None => bld.add(dkkd.Description (dkk.text(" " )))
98
- }
99
- bld.add(dkkd.Description (parsed.body))
100
-
101
- inline def addOpt (opt : Option [dkkd.DocTag ])(wrap : dkkd.DocTag => dkkd.TagWrapper ) =
102
- opt.foreach { t => bld.add(wrap(t)) }
103
-
104
- inline def addSeq [T ](seq : Iterable [T ])(wrap : T => dkkd.TagWrapper ) =
105
- seq.foreach { t => bld.add(wrap(t)) }
106
-
107
- // this is a total kludge, this should be done in a deeper layer but we'd
108
- // need to refactor code there first
109
- def correctParagraphTags (tag : dkkd.DocTag ): dkkd.DocTag =
110
- tag match {
111
- case tag : dkkd.P =>
112
- // NOTE we recurse once, since both the top-level element and its children can be P
113
- // (there is no special root DocTag)
114
- dkkd.Span (tag.getChildren.iterator.asScala.map(correctParagraphTags).toSeq.asJava, tag.getParams)
115
- case tag => tag
116
- }
117
-
118
- addSeq(parsed.authors)(dkkd.Author (_))
119
- addOpt(parsed.version)(dkkd.Version (_))
120
- addOpt(parsed.since)(dkkd.Since (_))
121
- addOpt(parsed.deprecated)(dkkd.Deprecated (_))
122
- addSeq(parsed.todo)(ScalaTagWrapper .Todo .apply)
123
- addSeq(parsed.see)(ScalaTagWrapper .See .apply)
124
- addSeq(parsed.note)(ScalaTagWrapper .Note .apply)
125
- addSeq(parsed.example)(ScalaTagWrapper .Example .apply)
126
-
127
- addOpt(parsed.constructor)(dkkd.Constructor (_))
128
- addSeq(parsed.valueParams){ case (name, tag) =>
129
- ScalaTagWrapper .NestedNamedTag (" Param" , name, dkk.text(name), correctParagraphTags(tag))
130
- }
131
- addSeq(parsed.typeParams){ case (name, tag) =>
132
- ScalaTagWrapper .NestedNamedTag (" Type param" , name, dkk.text(name), correctParagraphTags(tag))
133
- }
134
- addSeq(parsed.throws){ case (key, (exc, desc)) =>
135
- ScalaTagWrapper .NestedNamedTag (" Throws" , key, exc, correctParagraphTags(desc))
136
- }
137
- addOpt(parsed.result)(dkkd.Return (_))
138
-
139
- new dkkd.DocumentationNode (bld.build())
140
- }
141
50
}
0 commit comments