import model_utils
import modelize_property
-import frontend
# Main class of the nit index tool
# NitIndex build the model using the toolcontext argument
else
var category = parts[0]
var keyword = parts[1]
- if keyword.first == ' ' then keyword = keyword.substring_from(1)
+ if keyword.chars.first == ' ' then keyword = keyword.substring_from(1)
return new IndexQueryPair(str, keyword, category)
end
end
# Code Analysis
redef class ToolContext
- private var nitx_phase: NitxPhase = new NitxPhase(self, [typing_phase])
+ private var nitx_phase: NitxPhase = new NitxPhase(self, [modelize_property_phase])
end
# Compiler phase for nitx
end
private class Pager
- var content = new Buffer
+ var content = new FlatBuffer
var indent = 0
fun add(text: String) do
add_indent
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]
# return the generic signature of the class
# [E, F]
private fun signature: String do
- var res = new Buffer
+ var res = new FlatBuffer
if arity > 0 then
res.append("[")
for i in [0..intro.parameter_names.length[ do
# class name is displayed with colors depending on visibility
# abstract interface Foo[E]
private fun prototype: String do
- var res = new Buffer
+ var res = new FlatBuffer
res.append("{kind} ")
if visibility.to_s == "public" then res.append("{name}{signature}".bold.green)
if visibility.to_s == "private" then res.append("{name}{signature}".bold.red)
end
fun to_console: String do
- var res = new Buffer
+ var res = new FlatBuffer
if not is_intro then res.append("redef ")
res.append(mclass.prototype)
return res.to_s
redef class MMethodDef
redef fun to_console do
- var res = new Buffer
+ var res = new FlatBuffer
if not is_intro then res.append("redef ")
if not mproperty.is_init then res.append("fun ")
res.append(mproperty.to_console.bold)
redef class MVirtualTypeDef
redef fun to_console do
- var res = new Buffer
+ var res = new FlatBuffer
res.append("type ")
res.append(mproperty.to_console.bold)
res.append(": {bound.to_console}")
redef class MAttributeDef
redef fun to_console do
- var res = new Buffer
+ var res = new FlatBuffer
res.append("var ")
res.append(mproperty.to_console.bold)
res.append(": {static_mtype.to_console}")
redef class MSignature
redef fun to_console do
- var res = new Buffer
+ var res = new FlatBuffer
if not mparameters.is_empty then
res.append("(")
for i in [0..mparameters.length[ do
redef class MParameter
fun to_console: String do
- var res = new Buffer
+ var res = new FlatBuffer
res.append("{name}: {mtype.to_console}")
if is_vararg then res.append("...")
return res.to_s
redef class MGenericType
redef fun to_console do
- var res = new Buffer
+ var res = new FlatBuffer
res.append("{mclass.name}[")
for i in [0..arguments.length[ do
res.append(arguments[i].to_console)
private fun escape: String
do
- var b = new Buffer
- for c in self do
+ var b = new FlatBuffer
+ for c in self.chars do
if c == '\n' then
b.append("\\n")
else if c == '\0' then