@@ -68,7 +68,7 @@ class MemberRenderer(signatureRenderer: SignatureRenderer)(using DocContext) ext
68
68
69
69
def source (m : Member ): Seq [AppliedTag ] =
70
70
summon[DocContext ].sourceLinks.pathTo(m).fold(Nil ){ link =>
71
- tableRow(" Source" , a(href := link)(" (source)" ))
71
+ tableRow(" Source" , a(href := link)(m.sources.fold( " (source)" )(_.path.getFileName().toString()) ))
72
72
}
73
73
74
74
def deprecation (m : Member ): Seq [AppliedTag ] = m.deprecated.fold(Nil ){ a =>
@@ -202,22 +202,34 @@ class MemberRenderer(signatureRenderer: SignatureRenderer)(using DocContext) ext
202
202
case m : Member => m.inheritedFrom.nonEmpty
203
203
case g : MGroup => g.members.exists(isInherited)
204
204
205
+ private def isAbstract (m : Member | MGroup ): Boolean = m match
206
+ case m : Member => m.modifiers.contains(Modifier .Abstract )
207
+ case g : MGroup => g.members.exists(isAbstract)
208
+
205
209
private type SubGroup = (String , Seq [Member | MGroup ])
206
210
private def buildGroup (name : String , subgroups : Seq [SubGroup ]): Tab =
207
211
val all = subgroups.map { case (name, members) =>
208
212
val (allInherited, allDefined) = members.partition(isInherited)
209
213
val (depDefined, defined) = allDefined.partition(isDeprecated)
210
214
val (depInherited, inherited) = allInherited.partition(isDeprecated)
211
- (
212
- actualGroup(name, defined),
213
- actualGroup(s " Deprecated ${name.toLowerCase}" , depDefined),
214
- actualGroup(s " Inherited ${name.toLowerCase}" , inherited),
215
- actualGroup(s " Deprecated and Inherited ${name.toLowerCase}" , depInherited)
215
+ val normalizedName = name.toLowerCase
216
+ val definedWithGroup = if Set (" methods" , " fields" ).contains(normalizedName) then
217
+ val (abstr, concr) = defined.partition(isAbstract)
218
+ Seq (
219
+ actualGroup(s " Abstract ${normalizedName}" , abstr),
220
+ actualGroup(s " Concrete ${normalizedName}" , concr)
221
+ )
222
+ else
223
+ Seq (actualGroup(name, defined))
224
+
225
+ definedWithGroup ++ List (
226
+ actualGroup(s " Deprecated ${normalizedName}" , depDefined),
227
+ actualGroup(s " Inherited ${normalizedName}" , inherited),
228
+ actualGroup(s " Deprecated and Inherited ${normalizedName}" , depInherited)
216
229
)
217
230
}
218
231
219
- val children =
220
- all.flatMap(_._1) ++ all.flatMap(_._2) ++ all.flatMap(_._3) ++ all.flatMap(_._4)
232
+ val children = all.flatten.flatten
221
233
if children.isEmpty then emptyTab
222
234
else Tab (name, name, h2(tabAttr(name))(name) +: children, " selected" )
223
235
0 commit comments