nitx: remove ModelView dependency
authorAlexandre Terrasa <alexandre@moz-code.org>
Tue, 15 May 2018 01:49:31 +0000 (21:49 -0400)
committerAlexandre Terrasa <alexandre@moz-code.org>
Wed, 30 May 2018 14:53:16 +0000 (10:53 -0400)
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>

src/doc/term/term.nit
src/doc/term/tests/test_term.nit
src/nitx.nit

index 58ad127..fc864bb 100644 (file)
@@ -25,7 +25,7 @@ redef class CommandParser
 
                # Translate links to doc commands
                if cmd isa CmdEntityLink then
-                       cmd = new CmdComment(view, mentity_name = query)
+                       cmd = new CmdComment(model, filter, mentity_name = query)
                        var opts = new HashMap[String, String]
                        var status = cmd.parser_init(query, opts)
                        if not status isa CmdSuccess then error = status
index 997037c..4d7481e 100644 (file)
@@ -26,237 +26,237 @@ class TestTerm
        # CmdEntity
 
        fun test_mentity_full_name is test do
-               var parser = new CommandParser(test_view, test_builder)
+               var parser = new CommandParser(test_model, test_main, test_builder)
                parser.execute("test_prog::Character", true)
        end
 
        fun test_mentity_name is test do
-               var parser = new CommandParser(test_view, test_builder)
+               var parser = new CommandParser(test_model, test_main, test_builder)
                parser.execute("Character", true)
        end
 
        fun test_mentity_empty is test do
-               var parser = new CommandParser(test_view, test_builder)
+               var parser = new CommandParser(test_model, test_main, test_builder)
                parser.execute("", true)
        end
 
        fun test_mentity_not_found is test do
-               var parser = new CommandParser(test_view, test_builder)
+               var parser = new CommandParser(test_model, test_main, test_builder)
                parser.execute("Caracter", true)
        end
 
        fun test_mentity_conflict is test do
-               var parser = new CommandParser(test_view, test_builder)
+               var parser = new CommandParser(test_model, test_main, test_builder)
                parser.execute("+", true)
        end
 
        # CmdDoc
 
        fun test_comment is test do
-               var parser = new CommandParser(test_view, test_builder)
+               var parser = new CommandParser(test_model, test_main, test_builder)
                parser.execute("doc: Character", true)
        end
 
        fun test_comment_short is test do
-               var parser = new CommandParser(test_view, test_builder)
+               var parser = new CommandParser(test_model, test_main, test_builder)
                parser.execute("doc: Character | only-synopsis", true)
        end
 
        fun test_comment_no_fallback is test do
-               var parser = new CommandParser(test_view, test_builder)
+               var parser = new CommandParser(test_model, test_main, test_builder)
                parser.execute("doc: Character | no-fallback", true)
        end
 
        # CmdInheritance
 
        fun test_ancestors is test do
-               var parser = new CommandParser(test_view, test_builder)
+               var parser = new CommandParser(test_model, test_main, test_builder)
                parser.execute("ancestors: Warrior | parents: true", true)
        end
 
        fun test_ancestors_without_parents is test do
-               var parser = new CommandParser(test_view, test_builder)
+               var parser = new CommandParser(test_model, test_main, test_builder)
                parser.execute("ancestors: Warrior | parents: false", true)
        end
 
        fun test_parents is test do
-               var parser = new CommandParser(test_view, test_builder)
+               var parser = new CommandParser(test_model, test_main, test_builder)
                parser.execute("parents: Warrior", true)
        end
 
        fun test_children is test do
-               var parser = new CommandParser(test_view, test_builder)
+               var parser = new CommandParser(test_model, test_main, test_builder)
                parser.execute("children: Career", true)
        end
 
        fun test_descendants is test do
-               var parser = new CommandParser(test_view, test_builder)
+               var parser = new CommandParser(test_model, test_main, test_builder)
                parser.execute("descendants: Career", true)
        end
 
        fun test_descendants_without_children is test do
-               var parser = new CommandParser(test_view, test_builder)
+               var parser = new CommandParser(test_model, test_main, test_builder)
                parser.execute("descendants: Career | children: false", true)
        end
 
        # CmdLin
 
        fun test_lin is test do
-               var parser = new CommandParser(test_view, test_builder)
+               var parser = new CommandParser(test_model, test_main, test_builder)
                parser.execute("lin: init | limit: 2", true)
        end
 
        fun test_lin_no_lin is test do
-               var parser = new CommandParser(test_view, test_builder)
+               var parser = new CommandParser(test_model, test_main, test_builder)
                parser.execute("lin: test_prog", true)
        end
 
        # CmdSearch
 
        fun test_search is test do
-               var parser = new CommandParser(test_view, test_builder)
+               var parser = new CommandParser(test_model, test_main, test_builder)
                parser.execute("search: Caracter | limit: 2", true)
        end
 
        fun test_search_no_query is test do
-               var parser = new CommandParser(test_view, test_builder)
+               var parser = new CommandParser(test_model, test_main, test_builder)
                parser.execute("search: | limit: 1", true)
        end
 
        # CmdDefs
 
        fun test_features is test do
-               var parser = new CommandParser(test_view, test_builder)
+               var parser = new CommandParser(test_model, test_main, test_builder)
                parser.execute("defs: Character | limit: 3", true)
        end
 
        # CmdCode
 
        fun test_code is test do
-               var parser = new CommandParser(test_view, test_builder)
+               var parser = new CommandParser(test_model, test_main, test_builder)
                parser.execute("code: Character", true)
        end
 
        # CmdUsage
 
        fun test_init is test do
-               var parser = new CommandParser(test_view, test_builder)
+               var parser = new CommandParser(test_model, test_main, test_builder)
                parser.execute("new: Elf | limit: 2", true)
        end
 
        fun test_call is test do
-               var parser = new CommandParser(test_view, test_builder)
+               var parser = new CommandParser(test_model, test_main, test_builder)
                parser.execute("call: endurance_bonus", true)
        end
 
        fun test_return is test do
-               var parser = new CommandParser(test_view, test_builder)
+               var parser = new CommandParser(test_model, test_main, test_builder)
                parser.execute("return: Int | limit: 3", true)
        end
 
        fun test_param is test do
-               var parser = new CommandParser(test_view, test_builder)
+               var parser = new CommandParser(test_model, test_main, test_builder)
                parser.execute("param: Career | limit: 3", true)
        end
 
        # CmdCatalog
 
        fun test_term_catalog is test do
-               var parser = new CommandParser(test_view, test_builder, test_catalog)
+               var parser = new CommandParser(test_model, test_main, test_builder, test_catalog)
                parser.execute("catalog:", true)
        end
 
        fun test_term_catalog_search is test do
-               var parser = new CommandParser(test_view, test_builder, test_catalog)
+               var parser = new CommandParser(test_model, test_main, test_builder, test_catalog)
                parser.execute("search: Caracter | limit: 3", true)
        end
 
        fun test_term_catalog_stats is test do
-               var parser = new CommandParser(test_view, test_builder, test_catalog)
+               var parser = new CommandParser(test_model, test_main, test_builder, test_catalog)
                parser.execute("stats:", true)
        end
 
        fun test_term_catalog_tags is test do
-               var parser = new CommandParser(test_view, test_builder, test_catalog)
+               var parser = new CommandParser(test_model, test_main, test_builder, test_catalog)
                parser.execute("tags:", true)
        end
 
        fun test_term_catalog_tag is test do
-               var parser = new CommandParser(test_view, test_builder, test_catalog)
+               var parser = new CommandParser(test_model, test_main, test_builder, test_catalog)
                parser.execute("tag: game", true)
        end
 
        fun test_term_catalog_maintain is test do
-               var parser = new CommandParser(test_view, test_builder, test_catalog)
+               var parser = new CommandParser(test_model, test_main, test_builder, test_catalog)
                parser.execute("maintain: Alexandre Terrasa", true)
        end
 
        fun test_term_catalog_contrib is test do
-               var parser = new CommandParser(test_view, test_builder, test_catalog)
+               var parser = new CommandParser(test_model, test_main, test_builder, test_catalog)
                parser.execute("contrib: Alexandre Terrasa", true)
        end
 
        # CmdIni
 
        fun test_term_ini_desc is test do
-               var parser = new CommandParser(test_view, test_builder, test_catalog)
+               var parser = new CommandParser(test_model, test_main, test_builder, test_catalog)
                parser.execute("ini-desc: test_prog", true)
        end
 
        fun test_term_ini_git is test do
-               var parser = new CommandParser(test_view, test_builder, test_catalog)
+               var parser = new CommandParser(test_model, test_main, test_builder, test_catalog)
                parser.execute("ini-git: test_prog", true)
        end
 
        fun test_term_ini_clone is test do
-               var parser = new CommandParser(test_view, test_builder, test_catalog)
+               var parser = new CommandParser(test_model, test_main, test_builder, test_catalog)
                parser.execute("git-clone: test_prog", true)
        end
 
        fun test_term_ini_issues is test do
-               var parser = new CommandParser(test_view, test_builder, test_catalog)
+               var parser = new CommandParser(test_model, test_main, test_builder, test_catalog)
                parser.execute("ini-issues: test_prog", true)
        end
 
        fun test_term_ini_maintainer is test do
-               var parser = new CommandParser(test_view, test_builder, test_catalog)
+               var parser = new CommandParser(test_model, test_main, test_builder, test_catalog)
                parser.execute("ini-maintainer: test_prog", true)
        end
 
        fun test_term_ini_contributors is test do
-               var parser = new CommandParser(test_view, test_builder, test_catalog)
+               var parser = new CommandParser(test_model, test_main, test_builder, test_catalog)
                parser.execute("ini-contributors: test_prog", true)
        end
 
        fun test_term_ini_license is test do
-               var parser = new CommandParser(test_view, test_builder, test_catalog)
+               var parser = new CommandParser(test_model, test_main, test_builder, test_catalog)
                parser.execute("ini-license: test_prog", true)
        end
 
        # CmdMain
 
        fun test_term_mains is test do
-               var parser = new CommandParser(test_view, test_builder, test_catalog)
+               var parser = new CommandParser(test_model, test_main, test_builder, test_catalog)
                parser.execute("mains: test_prog", true)
        end
 
        fun test_term_main_compile is test do
-               var parser = new CommandParser(test_view, test_builder, test_catalog)
+               var parser = new CommandParser(test_model, test_main, test_builder, test_catalog)
                parser.execute("main-compile: test_prog::test_prog", true)
        end
 
        fun test_term_man_synopsis is test do
-               var parser = new CommandParser(test_view, test_builder, test_catalog)
+               var parser = new CommandParser(test_model, test_main, test_builder, test_catalog)
                parser.execute("main-run: test_prog::test_prog", true)
        end
 
        fun test_term_man_options is test do
-               var parser = new CommandParser(test_view, test_builder, test_catalog)
+               var parser = new CommandParser(test_model, test_main, test_builder, test_catalog)
                parser.execute("main-opts: test_prog::test_prog", true)
        end
 
        fun test_term_testing is test do
-               var parser = new CommandParser(test_view, test_builder, test_catalog)
+               var parser = new CommandParser(test_model, test_main, test_builder, test_catalog)
                parser.execute("testing: test_prog", true)
        end
 end
index 8442ff7..311580a 100644 (file)
@@ -43,8 +43,11 @@ end
 # Using `prompt`, the command line can be turned on an interactive tool.
 class Nitx
 
-       # ModelView that contains the informations to display
-       var view: ModelView
+       # Model that contains the informations to display
+       var model: Model
+
+       # Mainmodule for class linearization
+       var mainmodule: MModule
 
        # ModelBuilder to access AST nodes
        var modelbuilder: ModelBuilder
@@ -66,7 +69,7 @@ class Nitx
                print "Welcome in the Nit Index!"
                print ""
                print "Loaded packages:\n"
-               var cmd = new CmdModelEntities(view, kind = "packages")
+               var cmd = new CmdModelEntities(model, kind = "packages")
                cmd.init_command
                for mpackage in cmd.results.as(not null) do
                        print " * {mpackage.full_name}"
@@ -101,7 +104,7 @@ class Nitx
        end
 
        # Parser used to process doc commands
-       var parser = new CommandParser(view, modelbuilder, catalog) is lazy
+       var parser = new CommandParser(model, mainmodule, modelbuilder, catalog) is lazy
 
        # Processes the query string and performs it.
        fun do_command(str: String) do
@@ -117,9 +120,9 @@ end
 
 redef class Catalog
        # Build the catalog for Nitx
-       private fun build_catalog(view: ModelView) do
+       private fun build_catalog(model: Model, filter: nullable ModelFilter) do
                # Compute the poset
-               for p in view.mpackages do
+               for p in model.collect_mpackages(filter) do
                        var g = p.root
                        assert g != null
                        modelbuilder.scan_group(g)
@@ -134,7 +137,7 @@ redef class Catalog
                        end
                end
                # Build the catalog
-               for mpackage in view.mpackages do
+               for mpackage in model.collect_mpackages(filter) do
                        package_page(mpackage)
                        git_info(mpackage)
                        mpackage_stats(mpackage)
@@ -165,15 +168,14 @@ toolcontext.run_global_phases(mmodules)
 var mainmodule = toolcontext.make_main_module(mmodules)
 
 # build views
-var view = new ModelView(model, mainmodule)
 var catalog = null
 if toolcontext.opt_catalog.value then
        catalog = new Catalog(mbuilder)
-       catalog.build_catalog(view)
+       catalog.build_catalog(model)
 end
 
 # start nitx
-var nitx = new Nitx(view, mbuilder, catalog, toolcontext.opt_no_color.value)
+var nitx = new Nitx(model, mainmodule, mbuilder, catalog, toolcontext.opt_no_color.value)
 var q = toolcontext.opt_command.value
 if q != null then # shortcut prompt
        print ""