private var arguments: Array[String]
private var renderer: PagerMatchesRenderer
+ # New constructor to use the pre-calculated model when interpreting a module
+ init with_infos(mbuilder: ModelBuilder, mmodule: MModule) do
+
+ self.model = mbuilder.model
+ self.mbuilder = mbuilder
+
+ self.mainmodule = mmodule
+ self.toolcontext = mbuilder.toolcontext
+ self.arguments = toolcontext.option_context.rest
+
+ renderer = new PagerMatchesRenderer(self)
+ end
+
init(toolcontext: ToolContext) do
# We need a model to collect stufs
self.toolcontext = toolcontext
prompt
return
end
- if entry == ":q" then exit(0)
+ if entry == ":q" then return
# Parse query string
var query = parse_query(entry)
redef class MModule
super IndexMatch
# prototype of the module
- # module ownername::name
+ # module name
private fun prototype: String do return "module {name.bold}"
# namespace of the module
- # ownername::name
+ # project::name
private fun namespace: String do
- if public_owner == null then
+ if mgroup == null or mgroup.mproject.name == self.name then
return self.name
else
- return "{public_owner.namespace}::{self.name}"
+ return "{mgroup.mproject}::{self.name}"
end
end
# imported modules
var imports = new Array[MModule]
for mmodule in in_importation.direct_greaters.to_a do
- if not in_nesting.direct_greaters.has(mmodule) then imports.add(mmodule)
+ imports.add(mmodule)
end
if not imports.is_empty then
sorter.sort(imports)
end
pager.indent = pager.indent - 1
end
- # nested modules
- var nested = in_nesting.direct_greaters.to_a
- if not nested.is_empty then
- sorter.sort(nested)
- pager.add("")
- pager.add("== nested modules".bold)
- pager.indent = pager.indent + 1
- for mmodule in nested do
- pager.add("")
- mmodule.preview(index, pager)
- end
- pager.indent = pager.indent - 1
- end
# mclassdefs
var csorter = new MClassDefNameSorter
var intros = new Array[MClassDef]