X-Git-Url: http://nitlanguage.org diff --git a/src/nitx.nit b/src/nitx.nit index 134d02a..0353560 100644 --- a/src/nitx.nit +++ b/src/nitx.nit @@ -16,7 +16,7 @@ module nitx import model_utils -import modelize_property +import modelize # Main class of the nit index tool # NitIndex build the model using the toolcontext argument @@ -79,7 +79,7 @@ class NitIndex print "Loaded modules:" var mmodules = new Array[MModule] mmodules.add_all(model.mmodules) - var sorter = new MModuleNameSorter + var sorter = new MEntityNameSorter sorter.sort(mmodules) for m in mmodules do print "\t{m.name}" @@ -330,7 +330,7 @@ private class PagerMatchesRenderer cats[key].add(mprop) end #sort groups - var sorter = new MModuleNameSorter + var sorter = new MEntityNameSorter var sorted = new Array[MModule] sorted.add_all(cats.keys) sorter.sort(sorted) @@ -338,8 +338,7 @@ private class PagerMatchesRenderer for mmodule in sorted do var mprops = cats[mmodule] pager.add("# matches in module {mmodule.namespace.bold}") - var sorterp = new MPropertyNameSorter - sorterp.sort(mprops) + sorter.sort(mprops) for mprop in mprops do end @@ -394,7 +393,7 @@ redef class MModule pager.add(prototype) pager.add("{namespace}".bold.gray + " (lines {location.lines})".gray) pager.indent = pager.indent + 1 - var sorter = new MModuleNameSorter + var sorter = new MEntityNameSorter # imported modules var imports = new Array[MModule] for mmodule in in_importation.direct_greaters.to_a do @@ -412,7 +411,6 @@ redef class MModule pager.indent = pager.indent - 1 end # mclassdefs - var csorter = new MClassDefNameSorter var intros = new Array[MClassDef] var redefs = new Array[MClassDef] for mclassdef in mclassdefs do @@ -424,7 +422,7 @@ redef class MModule end # introductions if not intros.is_empty then - csorter.sort(intros) + sorter.sort(intros) pager.add("") pager.add("== introduced classes".bold) pager.indent = pager.indent + 1 @@ -436,7 +434,7 @@ redef class MModule end # refinements if not redefs.is_empty then - csorter.sort(redefs) + sorter.sort(redefs) pager.add("") pager.add("== refined classes".bold) pager.indent = pager.indent + 1 @@ -458,9 +456,9 @@ redef class MClass var res = new FlatBuffer if arity > 0 then res.append("[") - for i in [0..intro.parameter_names.length[ do - res.append(intro.parameter_names[i]) - if i < intro.parameter_names.length - 1 then res.append(", ") + for i in [0..mparameters.length[ do + res.append(mparameters[i].name) + if i < mparameters.length - 1 then res.append(", ") end res.append("]") end @@ -489,6 +487,7 @@ redef class MClass redef fun content(index, pager) do # intro comment + var sorter = new MEntityNameSorter var mdoc = intro.mdoc if mdoc != null then for comment in mdoc.content do pager.add(comment.green) @@ -499,8 +498,7 @@ redef class MClass # parents var supers = self.in_hierarchy(index.mainmodule).direct_greaters.to_a if not supers.is_empty then - var csorter = new MClassNameSorter - csorter.sort(supers) + sorter.sort(supers) pager.add("") pager.add("== supers".bold) pager.indent = pager.indent + 1 @@ -522,13 +520,12 @@ redef class MClass pager.indent = pager.indent - 1 end # intro mproperties - var psorter = new MPropDefNameSorter var mpropdefs = intro.mpropdefs index.mainmodule.linearize_mpropdefs(mpropdefs) for cat in intro.cats2mpropdefs.keys do var defs = intro.cats2mpropdefs[cat].to_a if defs.is_empty then continue - psorter.sort(defs) + sorter.sort(defs) pager.add("") pager.add("== {cat}".bold) pager.indent = pager.indent + 1 @@ -589,11 +586,11 @@ redef class MClassDef pager.add("{namespace}".bold.gray + " (lines {location.lines})".gray) pager.indent = pager.indent + 1 var mpropdefs = self.mpropdefs - var psorter = new MPropDefNameSorter + var sorter = new MEntityNameSorter index.mainmodule.linearize_mpropdefs(mpropdefs) for cat in cats2mpropdefs.keys do var defs = cats2mpropdefs[cat].to_a - psorter.sort(defs) + sorter.sort(defs) if defs.is_empty then continue pager.add("") pager.add("== {cat}".bold) @@ -694,10 +691,9 @@ redef class MMethodDef if not mproperty.is_init then res.append("fun ") res.append(mproperty.to_console.bold) if msignature != null then res.append(msignature.to_console) - # FIXME: modifiers should be accessible via the model - #if self isa ADeferredMethPropdef then ret = "{ret} is abstract" - #if self isa AInternMethPropdef then ret = "{ret} is intern" - #if self isa AExternMethPropdef then ret = "{ret} is extern" + if is_abstract then res.append " is abstract" + if is_intern then res.append " is intern" + if is_extern then res.append " is extern" return res.to_s end end @@ -771,7 +767,7 @@ redef class MGenericType end redef class MParameterType - redef fun to_console do return mclass.intro.parameter_names[rank] + redef fun to_console do return name end redef class MVirtualType @@ -784,35 +780,6 @@ redef class MDoc end end -redef class AAttrPropdef - private fun read_accessor: String do - var ret = "fun " - #FIXME bug with standard::stream::FDStream::fd - var name = mreadpropdef.mproperty.name - if mpropdef.mproperty.visibility.to_s == "public" then ret = "{ret}{name.green}" - if mpropdef.mproperty.visibility.to_s == "private" then ret = "{ret}{name.red}" - if mpropdef.mproperty.visibility.to_s == "protected" then ret = "{ret}{name.yellow}" - ret = "{ret}: {n_type.to_s}" - if n_kwredef != null then ret = "redef {ret}" - return ret - end - - private fun write_accessor: String do - var ret = "fun " - var name = "{mreadpropdef.mproperty.name}=" - if n_readable != null and n_readable.n_visibility != null then - if n_readable.n_visibility isa APublicVisibility then ret = "{ret}{name.green}" - if n_readable.n_visibility isa APrivateVisibility then ret = "{ret}{name.red}" - if n_readable.n_visibility isa AProtectedVisibility then ret = "{ret}{name.yellow}" - else - ret = "{ret}{name.red}" - end - ret = "{ret}({mreadpropdef.mproperty.name}: {n_type.to_s})" - if n_kwredef != null then ret = "redef {ret}" - return ret - end -end - # Redef String class to add a function to color the string redef class String