nitdoc: test pages structure
authorAlexandre Terrasa <alexandre@moz-code.org>
Thu, 11 Jun 2015 02:51:16 +0000 (22:51 -0400)
committerAlexandre Terrasa <alexandre@moz-code.org>
Thu, 11 Jun 2015 17:19:07 +0000 (13:19 -0400)
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>

share/man/nitdoc.md
src/nitdoc.nit
tests/nitdoc.args
tests/sav/nitdoc_args4.res [new file with mode: 0644]

index af3d95c..3f5885a 100644 (file)
@@ -108,6 +108,11 @@ See niunit(1) for details.
 `--piwik-site-id`
 :   Piwik site ID
 
+## TESTING
+
+`--test`
+:   Only print the pages structure. Nothing is generated.
+
 # SEE ALSO
 
 The Nit language documentation and the source code of its tools and libraries may be downloaded from <http://nitlanguage.org>
index e0c343a..d9e17f3 100644 (file)
@@ -19,10 +19,19 @@ module nitdoc
 
 import modelbuilder
 import doc
+import counter
 
 redef class ToolContext
        # Nitdoc generation phase.
        var docphase: Phase = new Nitdoc(self, null)
+
+       # File pattern used to link documentation to source code.
+       var opt_test = new OptionBool("do not render anything, only print test data", "--test")
+
+       redef init do
+               super
+               option_context.add_option(opt_test)
+       end
 end
 
 # Nitdoc phase explores the model and generate pages for each mentities found
@@ -42,13 +51,37 @@ private class Nitdoc
                        new InheritanceListsPhase(toolcontext, doc),
                        new IntroRedefListPhase(toolcontext, doc),
                        new LinListPhase(toolcontext, doc),
-                       new GraphPhase(toolcontext, doc),
-                       new RenderHTMLPhase(toolcontext, doc): DocPhase]
+                       new GraphPhase(toolcontext, doc): DocPhase]
+
+               if not toolcontext.opt_test.value then
+                       phases.add new RenderHTMLPhase(toolcontext, doc)
+               end
 
                for phase in phases do
                        toolcontext.info("# {phase.class_name}", 1)
                        phase.apply
                end
+
+               if toolcontext.opt_test.value then
+                       # Pages metrics
+                       var page_counter = new Counter[String]
+                       var pages = doc.pages.keys.to_a
+                       default_comparator.sort(pages)
+                       for title in pages do
+                               var page = doc.pages[title]
+                               page_counter.inc page.class_name
+                               print page.pretty_print.write_to_string
+                       end
+                       print "Generated {doc.pages.length} pages"
+                       page_counter.print_elements(100)
+                       # Model metrics
+                       var model_counter = new Counter[String]
+                       for mentity in doc.mentities do
+                               model_counter.inc mentity.class_name
+                       end
+                       print "Found {doc.mentities.length} mentities"
+                       model_counter.print_elements(100)
+               end
        end
 end
 
index 9a79ae8..de4c3e4 100644 (file)
@@ -1,3 +1,4 @@
 module_1.nit -d $WRITE
 base_attr_nullable.nit -d $WRITE
 --private base_attr_nullable.nit -d $WRITE
+--test test_prog -d $WRITE
diff --git a/tests/sav/nitdoc_args4.res b/tests/sav/nitdoc_args4.res
new file mode 100644 (file)
index 0000000..23b6a23
--- /dev/null
@@ -0,0 +1,959 @@
+OverviewPage Overview
+       # home.article
+               ## projects.section
+                       ### test_prog.definition
+
+SearchPage Index
+       # index.article
+
+MGroupPage test_prog
+       # test_prog.section
+               ## test_prog.intro
+               ## test_prog.concerns
+               ## test_prog.concern
+               ## test_prog.concern
+               ## test_prog-.concern
+                       ### test_prog-.definition
+                               #### test_prog-.intros_redefs
+                                       ##### list.group
+                                               ###### test_prog-.intros
+                                               ###### test_prog-.redefs
+
+MModulePage test_prog
+       # test_prog.section
+               ## test_prog-.intro
+               ## test_prog-.importation
+                       ### test_prog-.graph
+                       ### list.group
+                               #### test_prog-.imports
+                               #### test_prog-.clients
+               ## test_prog-.concerns
+               ## test_prog.concern
+               ## test_prog.concern
+               ## test_prog-.concern
+                       ### test_prog-__Starter.definition-list
+                               #### test_prog-__Starter.definition
+                                       ##### test_prog-__Starter.intros_redefs
+                                               ###### list.group
+                                                       ####### test_prog-__Starter.intros
+                                                       ####### test_prog-__Starter.redefs
+                       ### test_prog-__Sys.definition-list
+                               #### test_prog-__Sys.definition
+                                       ##### test_prog-__Sys.intros_redefs
+                                               ###### list.group
+                                                       ####### test_prog-__Sys.intros
+                                                       ####### test_prog-__Sys.redefs
+
+MClassPage Starter
+       # Starter.section
+               ## test_prog-__Starter.intro
+               ## test_prog-__Starter.inheritance
+                       ### test_prog-__Starter.graph
+                       ### list.group
+                               #### test_prog-__Starter.parents
+                               #### test_prog-__Starter.ancestors
+                               #### test_prog-__Starter.children
+                               #### test_prog-__Starter.descendants
+               ## test_prog-__Starter.constructors
+                       ### test_prog__platform-__Object__init.definition
+               ## test_prog-__Starter.concerns
+               ## test_prog.concern
+               ## test_prog.concern
+               ## test_prog-.concern
+                       ### test_prog-__Starter__start.definition
+
+MPropertyPage start
+       # start.section
+               ## test_prog-__Starter__start.intro
+
+MClassPage Sys
+       # Sys.section
+               ## test_prog-__Sys.intro
+               ## test_prog-__Sys.inheritance
+                       ### test_prog-__Sys.graph
+                       ### list.group
+                               #### test_prog-__Sys.parents
+                               #### test_prog-__Sys.ancestors
+                               #### test_prog-__Sys.children
+                               #### test_prog-__Sys.descendants
+               ## test_prog-__Sys.constructors
+               ## test_prog-__Sys.concerns
+               ## test_prog.concern
+               ## test_prog.concern
+               ## test_prog-.concern
+                       ### test_prog-__Sys__main.definition
+
+MPropertyPage main
+       # main.section
+               ## test_prog-__Sys__main.intro
+
+MGroupPage game
+       # game.section
+               ## test_prog__game.intro
+               ## test_prog__game.concerns
+               ## test_prog.concern
+               ## test_prog.concern
+               ## test_prog__game.concern
+               ## test_prog__game-.concern
+                       ### test_prog__game-.definition
+                               #### test_prog__game-.intros_redefs
+                                       ##### list.group
+                                               ###### test_prog__game-.intros
+                                               ###### test_prog__game-.redefs
+
+MModulePage game
+       # game.section
+               ## test_prog__game-.intro
+               ## test_prog__game-.importation
+                       ### test_prog__game-.graph
+                       ### list.group
+                               #### test_prog__game-.imports
+                               #### test_prog__game-.clients
+               ## test_prog__game-.concerns
+               ## test_prog.concern
+               ## test_prog.concern
+               ## test_prog__game.concern
+               ## test_prog__game-.concern
+                       ### test_prog__game-__Game.definition-list
+                               #### test_prog__game-__Game.definition
+                                       ##### test_prog__game-__Game.intros_redefs
+                                               ###### list.group
+                                                       ####### test_prog__game-__Game.intros
+                                                       ####### test_prog__game-__Game.redefs
+
+MClassPage Game
+       # Game.section
+               ## test_prog__game-__Game.intro
+               ## test_prog__game-__Game.inheritance
+                       ### test_prog__game-__Game.graph
+                       ### list.group
+                               #### test_prog__game-__Game.parents
+                               #### test_prog__game-__Game.ancestors
+                               #### test_prog__game-__Game.children
+                               #### test_prog__game-__Game.descendants
+               ## test_prog__game-__Game.constructors
+               ## test_prog__game-__Game.concerns
+               ## test_prog.concern
+               ## test_prog.concern
+               ## test_prog__game.concern
+               ## test_prog__game-.concern
+                       ### test_prog__game-__Game__computer_characters.definition
+                       ### test_prog__game-__Game__pause_game.definition
+                       ### test_prog__game-__Game__player_characters.definition
+                       ### test_prog__game-__Game__start_game.definition
+                       ### test_prog__game-__Game__stop_game.definition
+
+MPropertyPage computer_characters
+       # computer_characters.section
+               ## test_prog__game-__Game__computer_characters.intro
+
+MPropertyPage pause_game
+       # pause_game.section
+               ## test_prog__game-__Game__pause_game.intro
+
+MPropertyPage player_characters
+       # player_characters.section
+               ## test_prog__game-__Game__player_characters.intro
+
+MPropertyPage start_game
+       # start_game.section
+               ## test_prog__game-__Game__start_game.intro
+
+MPropertyPage stop_game
+       # stop_game.section
+               ## test_prog__game-__Game__stop_game.intro
+
+MGroupPage platform
+       # platform.section
+               ## test_prog__platform.intro
+               ## test_prog__platform.concerns
+               ## test_prog.concern
+               ## test_prog.concern
+               ## test_prog__platform.concern
+               ## test_prog__platform-.concern
+                       ### test_prog__platform-.definition
+                               #### test_prog__platform-.intros_redefs
+                                       ##### list.group
+                                               ###### test_prog__platform-.intros
+                                               ###### test_prog__platform-.redefs
+
+MModulePage platform
+       # platform.section
+               ## test_prog__platform-.intro
+               ## test_prog__platform-.importation
+                       ### test_prog__platform-.graph
+                       ### list.group
+                               #### test_prog__platform-.imports
+                               #### test_prog__platform-.clients
+               ## test_prog__platform-.concerns
+               ## test_prog.concern
+               ## test_prog.concern
+               ## test_prog__platform.concern
+               ## test_prog__platform-.concern
+                       ### test_prog__platform-__Bool.definition-list
+                               #### test_prog__platform-__Bool.definition
+                                       ##### test_prog__platform-__Bool.intros_redefs
+                                               ###### list.group
+                                                       ####### test_prog__platform-__Bool.intros
+                                                       ####### test_prog__platform-__Bool.redefs
+                       ### test_prog__platform-__Float.definition-list
+                               #### test_prog__platform-__Float.definition
+                                       ##### test_prog__platform-__Float.intros_redefs
+                                               ###### list.group
+                                                       ####### test_prog__platform-__Float.intros
+                                                       ####### test_prog__platform-__Float.redefs
+                       ### test_prog__platform-__Int.definition-list
+                               #### test_prog__platform-__Int.definition
+                                       ##### test_prog__platform-__Int.intros_redefs
+                                               ###### list.group
+                                                       ####### test_prog__platform-__Int.intros
+                                                       ####### test_prog__platform-__Int.redefs
+                       ### test_prog__platform-__List.definition-list
+                               #### test_prog__platform-__List.definition
+                                       ##### test_prog__platform-__List.intros_redefs
+                                               ###### list.group
+                                                       ####### test_prog__platform-__List.intros
+                                                       ####### test_prog__platform-__List.redefs
+                       ### test_prog__platform-__Object.definition-list
+                               #### test_prog__platform-__Object.definition
+                                       ##### test_prog__platform-__Object.intros_redefs
+                                               ###### list.group
+                                                       ####### test_prog__platform-__Object.intros
+                                                       ####### test_prog__platform-__Object.redefs
+                       ### test_prog__platform-__String.definition-list
+                               #### test_prog__platform-__String.definition
+                                       ##### test_prog__platform-__String.intros_redefs
+                                               ###### list.group
+                                                       ####### test_prog__platform-__String.intros
+                                                       ####### test_prog__platform-__String.redefs
+
+MClassPage Bool
+       # Bool.section
+               ## test_prog__platform-__Bool.intro
+               ## test_prog__platform-__Bool.inheritance
+                       ### test_prog__platform-__Bool.graph
+                       ### list.group
+                               #### test_prog__platform-__Bool.parents
+                               #### test_prog__platform-__Bool.ancestors
+                               #### test_prog__platform-__Bool.children
+                               #### test_prog__platform-__Bool.descendants
+
+MClassPage Float
+       # Float.section
+               ## test_prog__platform-__Float.intro
+               ## test_prog__platform-__Float.inheritance
+                       ### test_prog__platform-__Float.graph
+                       ### list.group
+                               #### test_prog__platform-__Float.parents
+                               #### test_prog__platform-__Float.ancestors
+                               #### test_prog__platform-__Float.children
+                               #### test_prog__platform-__Float.descendants
+               ## test_prog__platform-__Float.constructors
+                       ### test_prog__platform-__Object__init.definition
+               ## test_prog__platform-__Float.concerns
+               ## test_prog.concern
+               ## test_prog.concern
+               ## test_prog__platform.concern
+               ## test_prog__platform-.concern
+                       ### test_prog__platform-__Float___42d.definition
+                       ### test_prog__platform-__Float___43d.definition
+                       ### test_prog__platform-__Float___45d.definition
+                       ### test_prog__platform-__Float___47d.definition
+                       ### test_prog__platform-__Float___62d.definition
+
+MPropertyPage *
+       # *.section
+               ## test_prog__platform-__Float___42d.intro
+
+MPropertyPage +
+       # +.section
+               ## test_prog__platform-__Float___43d.intro
+
+MPropertyPage -
+       # -.section
+               ## test_prog__platform-__Float___45d.intro
+
+MPropertyPage &#47;
+       # &#47;.section
+               ## test_prog__platform-__Float___47d.intro
+
+MPropertyPage &gt;
+       # &gt;.section
+               ## test_prog__platform-__Float___62d.intro
+
+MClassPage Int
+       # Int.section
+               ## test_prog__platform-__Int.intro
+               ## test_prog__platform-__Int.inheritance
+                       ### test_prog__platform-__Int.graph
+                       ### list.group
+                               #### test_prog__platform-__Int.parents
+                               #### test_prog__platform-__Int.ancestors
+                               #### test_prog__platform-__Int.children
+                               #### test_prog__platform-__Int.descendants
+               ## test_prog__platform-__Int.constructors
+                       ### test_prog__platform-__Object__init.definition
+               ## test_prog__platform-__Int.concerns
+               ## test_prog.concern
+               ## test_prog.concern
+               ## test_prog__platform.concern
+               ## test_prog__platform-.concern
+                       ### test_prog__platform-__Int___42d.definition
+                       ### test_prog__platform-__Int___43d.definition
+                       ### test_prog__platform-__Int___45d.definition
+                       ### test_prog__platform-__Int___47d.definition
+                       ### test_prog__platform-__Int___62d.definition
+                       ### test_prog__platform-__Int__to_f.definition
+                       ### test_prog__platform-__Int__unary_32d_45d.definition
+
+MPropertyPage *
+       # *.section
+               ## test_prog__platform-__Int___42d.intro
+
+MPropertyPage +
+       # +.section
+               ## test_prog__platform-__Int___43d.intro
+
+MPropertyPage -
+       # -.section
+               ## test_prog__platform-__Int___45d.intro
+
+MPropertyPage &#47;
+       # &#47;.section
+               ## test_prog__platform-__Int___47d.intro
+
+MPropertyPage &gt;
+       # &gt;.section
+               ## test_prog__platform-__Int___62d.intro
+
+MPropertyPage to_f
+       # to_f.section
+               ## test_prog__platform-__Int__to_f.intro
+
+MPropertyPage unary -
+       # unary -.section
+               ## test_prog__platform-__Int__unary_32d_45d.intro
+
+MClassPage List
+       # List.section
+               ## test_prog__platform-__List.intro
+               ## test_prog__platform-__List.inheritance
+                       ### test_prog__platform-__List.graph
+                       ### list.group
+                               #### test_prog__platform-__List.parents
+                               #### test_prog__platform-__List.ancestors
+                               #### test_prog__platform-__List.children
+                               #### test_prog__platform-__List.descendants
+
+MClassPage Object
+       # Object.section
+               ## test_prog__platform-__Object.intro
+               ## test_prog__platform-__Object.inheritance
+                       ### test_prog__platform-__Object.graph
+                       ### list.group
+                               #### test_prog__platform-__Object.parents
+                               #### test_prog__platform-__Object.ancestors
+                               #### test_prog__platform-__Object.children
+                               #### test_prog__platform-__Object.descendants
+               ## test_prog__platform-__Object.constructors
+                       ### test_prog__platform-__Object__init.definition
+               ## test_prog__platform-__Object.concerns
+               ## test_prog.concern
+               ## test_prog.concern
+               ## test_prog__platform.concern
+               ## test_prog__platform-.concern
+                       ### test_prog__platform-__Object__OTHER.definition
+                       ### test_prog__platform-__Object___33d_61d.definition
+                       ### test_prog__platform-__Object___61d_61d.definition
+
+MPropertyPage OTHER
+       # OTHER.section
+               ## test_prog__platform-__Object__OTHER.intro
+
+MPropertyPage !=
+       # !=.section
+               ## test_prog__platform-__Object___33d_61d.intro
+
+MPropertyPage ==
+       # ==.section
+               ## test_prog__platform-__Object___61d_61d.intro
+
+MPropertyPage init
+       # init.section
+               ## test_prog__platform-__Object__init.intro
+               ## test_prog__platform-__Object__init.concerns
+               ## test_prog.concern
+               ## test_prog.concern
+               ## test_prog__rpg.concern
+               ## test_prog__rpg__careers.concern
+                       ### test_prog__rpg__careers__Career__init.definition
+                       ### test_prog__rpg__careers__Warrior__init.definition
+                       ### test_prog__rpg__careers__Magician__init.definition
+                       ### test_prog__rpg__careers__Alcoholic__init.definition
+               ## test_prog__rpg__races.concern
+                       ### test_prog__rpg__races__Race__init.definition
+                       ### test_prog__rpg__races__Human__init.definition
+                       ### test_prog__rpg__races__Dwarf__init.definition
+                       ### test_prog__rpg__races__Elf__init.definition
+               ## test_prog__rpg__character.concern
+                       ### test_prog__rpg__character__Character__init.definition
+
+MClassPage String
+       # String.section
+               ## test_prog__platform-__String.intro
+               ## test_prog__platform-__String.inheritance
+                       ### test_prog__platform-__String.graph
+                       ### list.group
+                               #### test_prog__platform-__String.parents
+                               #### test_prog__platform-__String.ancestors
+                               #### test_prog__platform-__String.children
+                               #### test_prog__platform-__String.descendants
+
+MGroupPage rpg
+       # rpg.section
+               ## test_prog__rpg.intro
+               ## test_prog__rpg.concerns
+               ## test_prog.concern
+               ## test_prog.concern
+               ## test_prog__rpg.concern
+               ## test_prog__rpg__careers.concern
+                       ### test_prog__rpg__careers.definition
+                               #### test_prog__rpg__careers.intros_redefs
+                                       ##### list.group
+                                               ###### test_prog__rpg__careers.intros
+                                               ###### test_prog__rpg__careers.redefs
+               ## test_prog__rpg__races.concern
+                       ### test_prog__rpg__races.definition
+                               #### test_prog__rpg__races.intros_redefs
+                                       ##### list.group
+                                               ###### test_prog__rpg__races.intros
+                                               ###### test_prog__rpg__races.redefs
+               ## test_prog__rpg__character.concern
+                       ### test_prog__rpg__character.definition
+                               #### test_prog__rpg__character.intros_redefs
+                                       ##### list.group
+                                               ###### test_prog__rpg__character.intros
+                                               ###### test_prog__rpg__character.redefs
+               ## test_prog__rpg__combat.concern
+                       ### test_prog__rpg__combat.definition
+                               #### test_prog__rpg__combat.intros_redefs
+                                       ##### list.group
+                                               ###### test_prog__rpg__combat.intros
+                                               ###### test_prog__rpg__combat.redefs
+               ## test_prog__rpg__rpg.concern
+                       ### test_prog__rpg__rpg.definition
+                               #### test_prog__rpg__rpg.intros_redefs
+                                       ##### list.group
+                                               ###### test_prog__rpg__rpg.intros
+                                               ###### test_prog__rpg__rpg.redefs
+
+MModulePage careers
+       # careers.section
+               ## test_prog__rpg__careers.intro
+               ## test_prog__rpg__careers.importation
+                       ### test_prog__rpg__careers.graph
+                       ### list.group
+                               #### test_prog__rpg__careers.imports
+                               #### test_prog__rpg__careers.clients
+               ## test_prog__rpg__careers.concerns
+               ## test_prog.concern
+               ## test_prog.concern
+               ## test_prog__rpg.concern
+               ## test_prog__rpg__careers.concern
+                       ### test_prog__rpg__careers__Alcoholic.definition-list
+                               #### test_prog__rpg__careers__Alcoholic.definition
+                                       ##### test_prog__rpg__careers__Alcoholic.intros_redefs
+                                               ###### list.group
+                                                       ####### test_prog__rpg__careers__Alcoholic.intros
+                                                       ####### test_prog__rpg__careers__Alcoholic.redefs
+                       ### test_prog__rpg__careers__Career.definition-list
+                               #### test_prog__rpg__careers__Career.definition
+                                       ##### test_prog__rpg__careers__Career.intros_redefs
+                                               ###### list.group
+                                                       ####### test_prog__rpg__careers__Career.intros
+                                                       ####### test_prog__rpg__careers__Career.redefs
+                       ### test_prog__rpg__careers__Magician.definition-list
+                               #### test_prog__rpg__careers__Magician.definition
+                                       ##### test_prog__rpg__careers__Magician.intros_redefs
+                                               ###### list.group
+                                                       ####### test_prog__rpg__careers__Magician.intros
+                                                       ####### test_prog__rpg__careers__Magician.redefs
+                       ### test_prog__rpg__careers__Warrior.definition-list
+                               #### test_prog__rpg__careers__Warrior.definition
+                                       ##### test_prog__rpg__careers__Warrior.intros_redefs
+                                               ###### list.group
+                                                       ####### test_prog__rpg__careers__Warrior.intros
+                                                       ####### test_prog__rpg__careers__Warrior.redefs
+
+MClassPage Alcoholic
+       # Alcoholic.section
+               ## test_prog__rpg__careers__Alcoholic.intro
+               ## test_prog__rpg__careers__Alcoholic.inheritance
+                       ### test_prog__rpg__careers__Alcoholic.graph
+                       ### list.group
+                               #### test_prog__rpg__careers__Alcoholic.parents
+                               #### test_prog__rpg__careers__Alcoholic.ancestors
+                               #### test_prog__rpg__careers__Alcoholic.children
+                               #### test_prog__rpg__careers__Alcoholic.descendants
+               ## test_prog__rpg__careers__Alcoholic.constructors
+                       ### test_prog__rpg__careers__Alcoholic__init.definition
+                               #### test_prog__rpg__careers__Alcoholic__init.lin
+               ## test_prog__rpg__careers__Alcoholic.concerns
+               ## test_prog.concern
+               ## test_prog.concern
+               ## test_prog__rpg.concern
+               ## test_prog__rpg__careers.concern
+
+MClassPage Career
+       # Career.section
+               ## test_prog__rpg__careers__Career.intro
+               ## test_prog__rpg__careers__Career.inheritance
+                       ### test_prog__rpg__careers__Career.graph
+                       ### list.group
+                               #### test_prog__rpg__careers__Career.parents
+                               #### test_prog__rpg__careers__Career.ancestors
+                               #### test_prog__rpg__careers__Career.children
+                               #### test_prog__rpg__careers__Career.descendants
+               ## test_prog__rpg__careers__Career.constructors
+                       ### test_prog__rpg__careers__Career__init.definition
+                               #### test_prog__rpg__careers__Career__init.lin
+               ## test_prog__rpg__careers__Career.concerns
+               ## test_prog.concern
+               ## test_prog.concern
+               ## test_prog__rpg.concern
+               ## test_prog__rpg__careers.concern
+                       ### test_prog__rpg__careers__Career__endurance_bonus.definition
+                       ### test_prog__rpg__careers__Career__intelligence_bonus.definition
+                       ### test_prog__rpg__careers__Career__strength_bonus.definition
+
+MPropertyPage endurance_bonus
+       # endurance_bonus.section
+               ## test_prog__rpg__careers__Career__endurance_bonus.intro
+
+MPropertyPage intelligence_bonus
+       # intelligence_bonus.section
+               ## test_prog__rpg__careers__Career__intelligence_bonus.intro
+
+MPropertyPage strength_bonus
+       # strength_bonus.section
+               ## test_prog__rpg__careers__Career__strength_bonus.intro
+
+MClassPage Magician
+       # Magician.section
+               ## test_prog__rpg__careers__Magician.intro
+               ## test_prog__rpg__careers__Magician.inheritance
+                       ### test_prog__rpg__careers__Magician.graph
+                       ### list.group
+                               #### test_prog__rpg__careers__Magician.parents
+                               #### test_prog__rpg__careers__Magician.ancestors
+                               #### test_prog__rpg__careers__Magician.children
+                               #### test_prog__rpg__careers__Magician.descendants
+               ## test_prog__rpg__careers__Magician.constructors
+                       ### test_prog__rpg__careers__Magician__init.definition
+                               #### test_prog__rpg__careers__Magician__init.lin
+               ## test_prog__rpg__careers__Magician.concerns
+               ## test_prog.concern
+               ## test_prog.concern
+               ## test_prog__rpg.concern
+               ## test_prog__rpg__careers.concern
+
+MClassPage Warrior
+       # Warrior.section
+               ## test_prog__rpg__careers__Warrior.intro
+               ## test_prog__rpg__careers__Warrior.inheritance
+                       ### test_prog__rpg__careers__Warrior.graph
+                       ### list.group
+                               #### test_prog__rpg__careers__Warrior.parents
+                               #### test_prog__rpg__careers__Warrior.ancestors
+                               #### test_prog__rpg__careers__Warrior.children
+                               #### test_prog__rpg__careers__Warrior.descendants
+               ## test_prog__rpg__careers__Warrior.constructors
+                       ### test_prog__rpg__careers__Warrior__init.definition
+                               #### test_prog__rpg__careers__Warrior__init.lin
+               ## test_prog__rpg__careers__Warrior.concerns
+               ## test_prog.concern
+               ## test_prog.concern
+               ## test_prog__rpg.concern
+               ## test_prog__rpg__careers.concern
+
+MModulePage character
+       # character.section
+               ## test_prog__rpg__character.intro
+               ## test_prog__rpg__character.importation
+                       ### test_prog__rpg__character.graph
+                       ### list.group
+                               #### test_prog__rpg__character.imports
+                               #### test_prog__rpg__character.clients
+               ## test_prog__rpg__character.concerns
+               ## test_prog.concern
+               ## test_prog.concern
+               ## test_prog__rpg.concern
+               ## test_prog__rpg__character.concern
+                       ### test_prog__rpg__character__Character.definition-list
+                               #### test_prog__rpg__character__Character.definition
+                                       ##### test_prog__rpg__character__Character.intros_redefs
+                                               ###### list.group
+                                                       ####### test_prog__rpg__character__Character.intros
+                                                       ####### test_prog__rpg__character__Character.redefs
+
+MClassPage Character
+       # Character.section
+               ## test_prog__rpg__character__Character.intro
+               ## test_prog__rpg__character__Character.inheritance
+                       ### test_prog__rpg__character__Character.graph
+                       ### list.group
+                               #### test_prog__rpg__character__Character.parents
+                               #### test_prog__rpg__character__Character.ancestors
+                               #### test_prog__rpg__character__Character.children
+                               #### test_prog__rpg__character__Character.descendants
+               ## test_prog__rpg__character__Character.constructors
+                       ### test_prog__rpg__character__Character__init.definition
+                               #### test_prog__rpg__character__Character__init.lin
+               ## test_prog__rpg__character__Character.concerns
+               ## test_prog.concern
+               ## test_prog.concern
+               ## test_prog__rpg.concern
+               ## test_prog__rpg__character.concern
+                       ### test_prog__rpg__character__Character__age.definition
+                       ### test_prog__rpg__character__Character__career.definition
+                       ### test_prog__rpg__character__Character__career_61d.definition
+                       ### test_prog__rpg__character__Character__health.definition
+                       ### test_prog__rpg__character__Character__max_health.definition
+                       ### test_prog__rpg__character__Character__name.definition
+                       ### test_prog__rpg__character__Character__quit.definition
+                       ### test_prog__rpg__character__Character__race.definition
+                       ### test_prog__rpg__character__Character__sex.definition
+                       ### test_prog__rpg__character__Character__total_endurance.definition
+                       ### test_prog__rpg__character__Character__total_intelligence.definition
+                       ### test_prog__rpg__character__Character__total_strengh.definition
+               ## test_prog__rpg__combat.concern
+                       ### test_prog__rpg__combat__Character__hit_points.definition
+                               #### test_prog__rpg__combat__Character__hit_points.lin
+
+MPropertyPage age
+       # age.section
+               ## test_prog__rpg__character__Character__age.intro
+
+MPropertyPage career
+       # career.section
+               ## test_prog__rpg__character__Character__career.intro
+
+MPropertyPage career=
+       # career=.section
+               ## test_prog__rpg__character__Character__career_61d.intro
+
+MPropertyPage health
+       # health.section
+               ## test_prog__rpg__character__Character__health.intro
+
+MPropertyPage max_health
+       # max_health.section
+               ## test_prog__rpg__character__Character__max_health.intro
+
+MPropertyPage name
+       # name.section
+               ## test_prog__rpg__character__Character__name.intro
+
+MPropertyPage quit
+       # quit.section
+               ## test_prog__rpg__character__Character__quit.intro
+
+MPropertyPage race
+       # race.section
+               ## test_prog__rpg__character__Character__race.intro
+
+MPropertyPage sex
+       # sex.section
+               ## test_prog__rpg__character__Character__sex.intro
+
+MPropertyPage total_endurance
+       # total_endurance.section
+               ## test_prog__rpg__character__Character__total_endurance.intro
+
+MPropertyPage total_intelligence
+       # total_intelligence.section
+               ## test_prog__rpg__character__Character__total_intelligence.intro
+
+MPropertyPage total_strengh
+       # total_strengh.section
+               ## test_prog__rpg__character__Character__total_strengh.intro
+
+MModulePage combat
+       # combat.section
+               ## test_prog__rpg__combat.intro
+               ## test_prog__rpg__combat.importation
+                       ### test_prog__rpg__combat.graph
+                       ### list.group
+                               #### test_prog__rpg__combat.imports
+                               #### test_prog__rpg__combat.clients
+               ## test_prog__rpg__combat.concerns
+               ## test_prog.concern
+               ## test_prog.concern
+               ## test_prog__rpg.concern
+               ## test_prog__rpg__combat.concern
+                       ### test_prog__rpg__combat__Combatable.definition-list
+                               #### test_prog__rpg__combat__Combatable.definition
+                                       ##### test_prog__rpg__combat__Combatable.intros_redefs
+                                               ###### list.group
+                                                       ####### test_prog__rpg__combat__Combatable.intros
+                                                       ####### test_prog__rpg__combat__Combatable.redefs
+                       ### test_prog__rpg__combat__Weapon.definition-list
+                               #### test_prog__rpg__combat__Weapon.definition
+                                       ##### test_prog__rpg__combat__Weapon.intros_redefs
+                                               ###### list.group
+                                                       ####### test_prog__rpg__combat__Weapon.intros
+                                                       ####### test_prog__rpg__combat__Weapon.redefs
+               ## test_prog__rpg__races.concern
+                       ### test_prog__rpg__races__Dwarf.definition-list
+                               #### test_prog__rpg__races__Dwarf.definition
+                               #### test_prog__rpg__combat__Dwarf.definition
+                                       ##### test_prog__rpg__combat__Dwarf.intros_redefs
+                                               ###### list.group
+                                                       ####### test_prog__rpg__combat__Dwarf.intros
+                                                       ####### test_prog__rpg__combat__Dwarf.redefs
+               ## test_prog__rpg__character.concern
+                       ### test_prog__rpg__character__Character.definition-list
+                               #### test_prog__rpg__character__Character.definition
+                               #### test_prog__rpg__combat__Character.definition
+                                       ##### test_prog__rpg__combat__Character.intros_redefs
+                                               ###### list.group
+                                                       ####### test_prog__rpg__combat__Character.intros
+                                                       ####### test_prog__rpg__combat__Character.redefs
+
+MClassPage Combatable
+       # Combatable.section
+               ## test_prog__rpg__combat__Combatable.intro
+               ## test_prog__rpg__combat__Combatable.inheritance
+                       ### test_prog__rpg__combat__Combatable.graph
+                       ### list.group
+                               #### test_prog__rpg__combat__Combatable.parents
+                               #### test_prog__rpg__combat__Combatable.ancestors
+                               #### test_prog__rpg__combat__Combatable.children
+                               #### test_prog__rpg__combat__Combatable.descendants
+               ## test_prog__rpg__combat__Combatable.constructors
+               ## test_prog__rpg__combat__Combatable.concerns
+               ## test_prog.concern
+               ## test_prog.concern
+               ## test_prog__rpg.concern
+               ## test_prog__rpg__combat.concern
+                       ### test_prog__rpg__combat__Combatable__attack.definition
+                       ### test_prog__rpg__combat__Combatable__defend.definition
+                       ### test_prog__rpg__combat__Combatable__direct_attack.definition
+                       ### test_prog__rpg__combat__Combatable__hit_points.definition
+                       ### test_prog__rpg__combat__Combatable__is_dead.definition
+
+MPropertyPage attack
+       # attack.section
+               ## test_prog__rpg__combat__Combatable__attack.intro
+
+MPropertyPage defend
+       # defend.section
+               ## test_prog__rpg__combat__Combatable__defend.intro
+
+MPropertyPage direct_attack
+       # direct_attack.section
+               ## test_prog__rpg__combat__Combatable__direct_attack.intro
+
+MPropertyPage hit_points
+       # hit_points.section
+               ## test_prog__rpg__combat__Combatable__hit_points.intro
+               ## test_prog__rpg__combat__Combatable__hit_points.concerns
+               ## test_prog.concern
+               ## test_prog.concern
+               ## test_prog__rpg.concern
+               ## test_prog__rpg__combat.concern
+                       ### test_prog__rpg__combat__Character__hit_points.definition
+
+MPropertyPage is_dead
+       # is_dead.section
+               ## test_prog__rpg__combat__Combatable__is_dead.intro
+
+MClassPage Weapon
+       # Weapon.section
+               ## test_prog__rpg__combat__Weapon.intro
+               ## test_prog__rpg__combat__Weapon.inheritance
+                       ### test_prog__rpg__combat__Weapon.graph
+                       ### list.group
+                               #### test_prog__rpg__combat__Weapon.parents
+                               #### test_prog__rpg__combat__Weapon.ancestors
+                               #### test_prog__rpg__combat__Weapon.children
+                               #### test_prog__rpg__combat__Weapon.descendants
+               ## test_prog__rpg__combat__Weapon.constructors
+               ## test_prog__rpg__combat__Weapon.concerns
+               ## test_prog.concern
+               ## test_prog.concern
+               ## test_prog__rpg.concern
+               ## test_prog__rpg__combat.concern
+                       ### test_prog__rpg__combat__Weapon__dps.definition
+
+MPropertyPage dps
+       # dps.section
+               ## test_prog__rpg__combat__Weapon__dps.intro
+               ## test_prog__rpg__combat__Weapon__dps.concerns
+               ## test_prog.concern
+               ## test_prog.concern
+               ## test_prog__rpg.concern
+               ## test_prog__rpg__combat.concern
+                       ### test_prog__rpg__combat__Dwarf__dps.definition
+
+MModulePage races
+       # races.section
+               ## test_prog__rpg__races.intro
+               ## test_prog__rpg__races.importation
+                       ### test_prog__rpg__races.graph
+                       ### list.group
+                               #### test_prog__rpg__races.imports
+                               #### test_prog__rpg__races.clients
+               ## test_prog__rpg__races.concerns
+               ## test_prog.concern
+               ## test_prog.concern
+               ## test_prog__rpg.concern
+               ## test_prog__rpg__races.concern
+                       ### test_prog__rpg__races__Dwarf.definition-list
+                               #### test_prog__rpg__races__Dwarf.definition
+                                       ##### test_prog__rpg__races__Dwarf.intros_redefs
+                                               ###### list.group
+                                                       ####### test_prog__rpg__races__Dwarf.intros
+                                                       ####### test_prog__rpg__races__Dwarf.redefs
+                       ### test_prog__rpg__races__Elf.definition-list
+                               #### test_prog__rpg__races__Elf.definition
+                                       ##### test_prog__rpg__races__Elf.intros_redefs
+                                               ###### list.group
+                                                       ####### test_prog__rpg__races__Elf.intros
+                                                       ####### test_prog__rpg__races__Elf.redefs
+                       ### test_prog__rpg__races__Human.definition-list
+                               #### test_prog__rpg__races__Human.definition
+                                       ##### test_prog__rpg__races__Human.intros_redefs
+                                               ###### list.group
+                                                       ####### test_prog__rpg__races__Human.intros
+                                                       ####### test_prog__rpg__races__Human.redefs
+                       ### test_prog__rpg__races__Race.definition-list
+                               #### test_prog__rpg__races__Race.definition
+                                       ##### test_prog__rpg__races__Race.intros_redefs
+                                               ###### list.group
+                                                       ####### test_prog__rpg__races__Race.intros
+                                                       ####### test_prog__rpg__races__Race.redefs
+
+MClassPage Dwarf
+       # Dwarf.section
+               ## test_prog__rpg__races__Dwarf.intro
+               ## test_prog__rpg__races__Dwarf.inheritance
+                       ### test_prog__rpg__races__Dwarf.graph
+                       ### list.group
+                               #### test_prog__rpg__races__Dwarf.parents
+                               #### test_prog__rpg__races__Dwarf.ancestors
+                               #### test_prog__rpg__races__Dwarf.children
+                               #### test_prog__rpg__races__Dwarf.descendants
+               ## test_prog__rpg__races__Dwarf.constructors
+                       ### test_prog__rpg__races__Dwarf__init.definition
+                               #### test_prog__rpg__races__Dwarf__init.lin
+               ## test_prog__rpg__races__Dwarf.concerns
+               ## test_prog.concern
+               ## test_prog.concern
+               ## test_prog__rpg.concern
+               ## test_prog__rpg__races.concern
+               ## test_prog__rpg__combat.concern
+                       ### test_prog__rpg__combat__Dwarf__dps.definition
+                               #### test_prog__rpg__combat__Dwarf__dps.lin
+
+MClassPage Elf
+       # Elf.section
+               ## test_prog__rpg__races__Elf.intro
+               ## test_prog__rpg__races__Elf.inheritance
+                       ### test_prog__rpg__races__Elf.graph
+                       ### list.group
+                               #### test_prog__rpg__races__Elf.parents
+                               #### test_prog__rpg__races__Elf.ancestors
+                               #### test_prog__rpg__races__Elf.children
+                               #### test_prog__rpg__races__Elf.descendants
+               ## test_prog__rpg__races__Elf.constructors
+                       ### test_prog__rpg__races__Elf__init.definition
+                               #### test_prog__rpg__races__Elf__init.lin
+               ## test_prog__rpg__races__Elf.concerns
+               ## test_prog.concern
+               ## test_prog.concern
+               ## test_prog__rpg.concern
+               ## test_prog__rpg__races.concern
+
+MClassPage Human
+       # Human.section
+               ## test_prog__rpg__races__Human.intro
+               ## test_prog__rpg__races__Human.inheritance
+                       ### test_prog__rpg__races__Human.graph
+                       ### list.group
+                               #### test_prog__rpg__races__Human.parents
+                               #### test_prog__rpg__races__Human.ancestors
+                               #### test_prog__rpg__races__Human.children
+                               #### test_prog__rpg__races__Human.descendants
+               ## test_prog__rpg__races__Human.constructors
+                       ### test_prog__rpg__races__Human__init.definition
+                               #### test_prog__rpg__races__Human__init.lin
+               ## test_prog__rpg__races__Human.concerns
+               ## test_prog.concern
+               ## test_prog.concern
+               ## test_prog__rpg.concern
+               ## test_prog__rpg__races.concern
+
+MClassPage Race
+       # Race.section
+               ## test_prog__rpg__races__Race.intro
+               ## test_prog__rpg__races__Race.inheritance
+                       ### test_prog__rpg__races__Race.graph
+                       ### list.group
+                               #### test_prog__rpg__races__Race.parents
+                               #### test_prog__rpg__races__Race.ancestors
+                               #### test_prog__rpg__races__Race.children
+                               #### test_prog__rpg__races__Race.descendants
+               ## test_prog__rpg__races__Race.constructors
+                       ### test_prog__rpg__races__Race__init.definition
+                               #### test_prog__rpg__races__Race__init.lin
+               ## test_prog__rpg__races__Race.concerns
+               ## test_prog.concern
+               ## test_prog.concern
+               ## test_prog__rpg.concern
+               ## test_prog__rpg__races.concern
+                       ### test_prog__rpg__races__Race__base_endurance.definition
+                       ### test_prog__rpg__races__Race__base_intelligence.definition
+                       ### test_prog__rpg__races__Race__base_strength.definition
+
+MPropertyPage base_endurance
+       # base_endurance.section
+               ## test_prog__rpg__races__Race__base_endurance.intro
+
+MPropertyPage base_intelligence
+       # base_intelligence.section
+               ## test_prog__rpg__races__Race__base_intelligence.intro
+
+MPropertyPage base_strength
+       # base_strength.section
+               ## test_prog__rpg__races__Race__base_strength.intro
+
+MModulePage rpg
+       # rpg.section
+               ## test_prog__rpg__rpg.intro
+               ## test_prog__rpg__rpg.importation
+                       ### test_prog__rpg__rpg.graph
+                       ### list.group
+                               #### test_prog__rpg__rpg.imports
+                               #### test_prog__rpg__rpg.clients
+
+Generated 81 pages
+ list:
+  MPropertyPage: 47 (58.02%)
+  MClassPage: 20 (24.69%)
+  MModulePage: 8 (9.87%)
+  MGroupPage: 4 (4.93%)
+  SearchPage: 1 (1.23%)
+  OverviewPage: 1 (1.23%)
+Found 160 mentities
+ list:
+  MMethodDef: 57 (35.62%)
+  MMethod: 46 (28.75%)
+  MClassDef: 22 (13.75%)
+  MClass: 20 (12.50%)
+  MModule: 8 (5.00%)
+  MGroup: 4 (2.50%)
+  MVirtualTypeDef: 1 (0.62%)
+  MVirtualTypeProp: 1 (0.62%)
+  MProject: 1 (0.62%)
+quicksearch-list.js