for cat, list in cats do
if not list.is_empty then
pager.add("\n# {cat}".bold)
- for mclass in list do
+ #sort list
+ var sorted = new Array[MClass]
+ sorted.add_all(list)
+ var sorter = new ComparableSorter[MClass]
+ sorter.sort(sorted)
+ for mclass in sorted do
var nclass = mbuilder.mclassdef2nclassdef[mclass.intro].as(AStdClassdef)
pager.add("")
if not nclass.short_comment.is_empty then
for cat, list in cats do
if not list.is_empty then
+ #sort list
+ var sorted = new Array[MMethod]
+ sorted.add_all(list)
+ var sorter = new ComparableSorter[MMethod]
+ sorter.sort(sorted)
pager.add("\n# {cat}".bold)
- for mprop in list do
+ for mprop in sorted do
pager.add("")
method_fulldoc(pager, mprop)
end
private fun props_fulldoc(raw_mprops: List[MProperty]) do
var pager = new Pager
# group by module
- var cats = new HashMap[MModule, List[MProperty]]
+ var cats = new HashMap[MModule, Array[MProperty]]
for mprop in raw_mprops do
var mmodule = mprop.intro_mclassdef.mmodule
- if not cats.has_key(mmodule) then cats[mmodule] = new List[MProperty]
+ if not cats.has_key(mmodule) then cats[mmodule] = new Array[MProperty]
cats[mmodule].add(mprop)
end
+ #sort groups
+ var sorter = new ComparableSorter[MModule]
+ var sorted = new Array[MModule]
+ sorted.add_all(cats.keys)
+ sorter.sort(sorted)
# display
- for mmodule, mprops in cats do
+ for mmodule in sorted do
+ var mprops = cats[mmodule]
pager.add("# {mmodule.namespace}".bold)
+ var sorterp = new ComparableSorter[MProperty]
+ sorterp.sort(mprops)
for mprop in mprops do
if mprop isa MMethod and mbuilder.mpropdef2npropdef.has_key(mprop.intro) then
pager.add("")
# Printing facilities
redef class MModule
+ super Comparable
+ redef type OTHER: MModule
+ redef fun <(other: OTHER): Bool do return self.name < other.name
+
private fun namespace: String do
return full_name
end
end
redef class MClass
+ super Comparable
+ redef type OTHER: MClass
+ redef fun <(other: OTHER): Bool do return self.name < other.name
redef fun to_s: String do
if arity > 0 then
end
end
+redef class MProperty
+ super Comparable
+ redef type OTHER: MProperty
+ redef fun <(other: OTHER): Bool do return self.name < other.name
+end
+
redef class MVirtualTypeProp
private fun short_doc: String do
var ret = ""
# TODO seek methods by param type: (<type>)
# TODO seek subclasses and super classes <.<class> >.<class>
# TODO seek subclasses and super types <:<type> >:<type>
-# TODO sort by alphabetic order
# TODO seek with regexp
# TODO standardize namespaces with private option