nitc :: InheritanceGraph :: draw_parents
# Recursively draw parents of mentity
fun draw_parents(mentity: MEntity, max_depth: nullable Int, current_depth: nullable Int) do
if done_parents.has(mentity) then return
done_parents.add mentity
current_depth = current_depth or else 0
if max_depth != null and current_depth >= max_depth then
from_dotdotdot(mentity)
return
end
var parents = mentity.collect_parents(mainmodule, filter)
if parents.length > 10 then
from_dotdotdot(mentity)
return
end
for parent in parents do
if parent isa MModule then
var mgroup = parent.mgroup
if mgroup != null and mgroup.default_mmodule == parent then parent = mgroup
end
if parent isa MGroup then
if parent.mpackage.mgroups.first == parent then parent = parent.mpackage
end
draw_edge(mentity, parent)
end
for parent in parents do
if parent isa MModule then
var mgroup = parent.mgroup
if mgroup != null and mgroup.default_mmodule == parent then parent = mgroup
end
if parent isa MGroup then
if parent.mpackage.mgroups.first == parent then parent = parent.mpackage
end
draw_parents(parent, max_depth, current_depth + 1)
end
end
src/doc/commands/commands_graph.nit:225,2--259,4