Moved NitIndex redefintion from Debugger to Nitx
[nit.git] / src / nitx.nit
index 1931b5c..4b5183f 100644 (file)
@@ -30,6 +30,19 @@ class NitIndex
        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
@@ -107,7 +120,7 @@ class NitIndex
                        prompt
                        return
                end
-               if entry == ":q" then exit(0)
+               if entry == ":q" then return
 
                # Parse query string
                var query = parse_query(entry)
@@ -252,7 +265,7 @@ end
 # Code Analysis
 
 redef class ToolContext
-       var nitx_phase: NitxPhase = new NitxPhase(self, [typing_phase])
+       private var nitx_phase: NitxPhase = new NitxPhase(self, [typing_phase])
 end
 
 # Compiler phase for nitx
@@ -373,7 +386,7 @@ redef class MModule
        redef fun preview(index, pager) do
                if index.mbuilder.mmodule2nmodule.has_key(self) then
                        var node = index.mbuilder.mmodule2nmodule[self]
-                       if not node.n_moduledecl.n_doc == null and not node.n_moduledecl.n_doc.short_comment.is_empty then
+                       if node.n_moduledecl != null and not node.n_moduledecl.n_doc == null and not node.n_moduledecl.n_doc.short_comment.is_empty then
                                pager.add(node.n_moduledecl.n_doc.short_comment.green)
                        end
                end
@@ -384,7 +397,7 @@ redef class MModule
        redef fun content(index, pager) do
                if index.mbuilder.mmodule2nmodule.has_key(self) then
                        var node = index.mbuilder.mmodule2nmodule[self]
-                       if not node.n_moduledecl.n_doc == null and not node.n_moduledecl.n_doc.comment.is_empty then
+                       if node.n_moduledecl != null and not node.n_moduledecl.n_doc == null and not node.n_moduledecl.n_doc.comment.is_empty then
                                for comment in node.n_moduledecl.n_doc.comment do pager.add(comment.green)
                        end
                end