X-Git-Url: http://nitlanguage.org diff --git a/src/doc/html_templates/html_model.nit b/src/doc/html_templates/html_model.nit index ebc6eff..a37dd2b 100644 --- a/src/doc/html_templates/html_model.nit +++ b/src/doc/html_templates/html_model.nit @@ -103,6 +103,17 @@ redef class MEntity return tpl end + # Returns `self` namespace decorated with HTML links. + # + # * MProject: `mproject` + # * MGroup: `mproject(::group)` + # * MModule: `mgroup::mmodule` + # * MClass: `mproject::mclass` + # * MClassDef: `mmodule::mclassdef` + # * MProperty: `mclass::mprop` + # * MPropdef: `mclassdef:mpropdef` + fun html_namespace: Template is abstract + # A template article that briefly describe the entity fun tpl_short_article: TplArticle do var tpl = tpl_article @@ -117,14 +128,11 @@ redef class MEntity fun tpl_article: TplArticle do var tpl = new TplArticle.with_title(nitdoc_id, tpl_title) tpl.title_classes.add "signature" - tpl.subtitle = tpl_namespace + tpl.subtitle = html_namespace tpl.summary_title = html_name return tpl end - # A template namespace - fun tpl_namespace: Template is abstract - # A template definition of the mentity # include name, sysnopsys, comment and namespace fun tpl_definition: TplDefinition is abstract @@ -148,7 +156,7 @@ redef class MEntity fun tpl_title: Template do var title = new Template title.add tpl_icon - title.add tpl_namespace + title.add html_namespace return title end @@ -178,8 +186,7 @@ redef class MProject redef var nitdoc_id = name.to_cmangle is lazy redef fun nitdoc_url do return root.nitdoc_url redef var html_modifiers = ["project"] - - redef fun tpl_namespace do return html_link + redef fun html_namespace do return html_link redef fun tpl_definition do var tpl = new TplDefinition @@ -204,9 +211,13 @@ redef class MGroup redef fun nitdoc_url do return "group_{nitdoc_id}.html" redef var html_modifiers = ["group"] - redef fun tpl_namespace do + # Depends if `self` is root or not. + # + # * If root `mproject`. + # * Else `mproject::self`. + redef fun html_namespace do var tpl = new Template - tpl.add mproject.tpl_namespace + tpl.add mproject.html_namespace if mproject.root != self then tpl.add "::" tpl.add html_link @@ -239,10 +250,14 @@ redef class MModule redef fun nitdoc_url do return "module_{nitdoc_id}.html" redef var html_modifiers = ["module"] - redef fun tpl_namespace do + # Depends if `self` belongs to a MGroup. + # + # * If mgroup `mgroup::self`. + # * Else `self`. + redef fun html_namespace do var tpl = new Template if mgroup != null then - tpl.add mgroup.tpl_namespace + tpl.add mgroup.html_namespace tpl.add "::" end tpl.add html_link @@ -285,17 +300,24 @@ redef class MClass redef fun html_modifiers do return intro.html_modifiers redef fun html_declaration do return intro.html_declaration - redef fun tpl_definition do return intro.tpl_definition - - redef fun tpl_namespace do + # Returns `mproject::self`. + redef fun html_namespace do var tpl = new Template - tpl.add intro_mmodule.mgroup.mproject.tpl_namespace + tpl.add intro_mmodule.mgroup.mproject.html_namespace tpl.add "::" tpl.add html_link tpl.add "" return tpl end + # Returns `intro.html_short_signature`. + fun html_short_signature: Template do return intro.html_short_signature + + # Returns `intro.html_signature`. + fun html_signature: Template do return intro.html_signature + + redef fun tpl_definition do return intro.tpl_definition + redef fun tpl_title do var title = new Template title.add tpl_icon @@ -304,21 +326,6 @@ redef class MClass end redef fun tpl_icon do return intro.tpl_icon - - fun tpl_signature: Template do - var tpl = new Template - if arity > 0 then - tpl.add "[" - var parameter_names = new Array[String] - for p in mparameters do - parameter_names.add(p.html_name) - end - tpl.add parameter_names.join(", ") - tpl.add "]" - end - return tpl - end - redef fun tpl_css_classes do return intro.tpl_css_classes end @@ -355,20 +362,52 @@ redef class MClassDef tpl.add html_modifiers.join(" ") tpl.add " " tpl.add html_link - tpl.add tpl_signature + tpl.add html_signature tpl.add "" return tpl end - redef fun tpl_namespace do + # Returns `mmodule::self` + redef fun html_namespace do var tpl = new Template - tpl.add mmodule.tpl_namespace + tpl.add mmodule.html_namespace tpl.add "::" tpl.add mclass.html_link tpl.add "" return tpl end + # Returns the MClassDef generic signature without static bounds. + fun html_short_signature: Template do + var tpl = new Template + var mparameters = mclass.mparameters + if not mparameters.is_empty then + tpl.add "[" + for i in [0..mparameters.length[ do + tpl.add mparameters[i].html_name + if i < mparameters.length - 1 then tpl.add ", " + end + tpl.add "]" + end + return tpl + end + + # Returns the MClassDef generic signature with static bounds. + fun html_signature: Template do + var tpl = new Template + var mparameters = mclass.mparameters + if not mparameters.is_empty then + tpl.add "[" + for i in [0..mparameters.length[ do + tpl.add "{mparameters[i].html_name}: " + tpl.add bound_mtype.arguments[i].html_signature + if i < mparameters.length - 1 then tpl.add ", " + end + tpl.add "]" + end + return tpl + end + redef fun tpl_article do var tpl = new TplArticle(nitdoc_id) tpl.summary_title = "in {mmodule.html_name}" @@ -376,7 +415,7 @@ redef class MClassDef tpl.title_classes.add "signature" var title = new Template title.add "in " - title.add mmodule.tpl_namespace + title.add mmodule.html_namespace tpl.subtitle = title var mdoc = mdoc_or_fallback if mdoc != null then @@ -392,21 +431,6 @@ redef class MClassDef return title end - fun tpl_signature: Template do - var tpl = new Template - var mparameters = mclass.mparameters - if not mparameters.is_empty then - tpl.add "[" - for i in [0..mparameters.length[ do - tpl.add "{mparameters[i].html_name}: " - tpl.add bound_mtype.arguments[i].tpl_signature - if i < mparameters.length - 1 then tpl.add ", " - end - tpl.add "]" - end - return tpl - end - redef fun tpl_definition do var tpl = new TplClassDefinition var mdoc = mdoc_or_fallback @@ -441,16 +465,21 @@ redef class MProperty redef fun html_modifiers do return intro.html_modifiers redef fun html_declaration do return intro.html_declaration - redef fun tpl_namespace do + # Returns `mclass::self`. + redef fun html_namespace do var tpl = new Template - tpl.add intro_mclassdef.mclass.tpl_namespace + tpl.add intro_mclassdef.mclass.html_namespace tpl.add "::" tpl.add intro.html_link tpl.add "" return tpl end - fun tpl_signature: Template do return new Template + # Returns `intro.html_short_signature`. + fun html_short_signature: Template do return intro.html_short_signature + + # Returns `intro.html_signature`. + fun html_signature: Template do return intro.html_signature redef fun tpl_title do return intro.tpl_title @@ -491,19 +520,26 @@ redef class MPropDef tpl.add html_modifiers.join(" ") tpl.add " " tpl.add html_link - tpl.add tpl_signature + tpl.add html_signature tpl.add "" return tpl end - redef fun tpl_namespace do + # Returns `mclassdef::self` + redef fun html_namespace do var tpl = new Template - tpl.add mclassdef.tpl_namespace + tpl.add mclassdef.html_namespace tpl.add "::" tpl.add html_link return tpl end + # Returns the MPropdDef signature without static types. + fun html_short_signature: Template is abstract + + # Returns the MPropDef signature with static types. + fun html_signature: Template is abstract + redef fun tpl_article do var tpl = new TplArticle(nitdoc_id) tpl.summary_title = "in {mclassdef.html_name}" @@ -545,8 +581,6 @@ redef class MPropDef return tpl end - fun tpl_signature: Template do return new Template - redef fun tpl_list_item do var lnk = new Template lnk.add new TplLabel.with_classes(tpl_css_classes.to_a) @@ -566,7 +600,7 @@ redef class MPropDef fun tpl_inheritance_item: TplListItem do var lnk = new Template lnk.add new TplLabel.with_classes(tpl_css_classes.to_a) - lnk.add mclassdef.mmodule.tpl_namespace + lnk.add mclassdef.mmodule.html_namespace lnk.add "::" var atext = mclassdef.html_link.text var ahref = "{mclassdef.mclass.nitdoc_url}#{mproperty.nitdoc_id}" @@ -592,27 +626,13 @@ redef class MAttributeDef return res end - redef fun tpl_signature do + redef fun html_short_signature do return new Template + + redef fun html_signature do var tpl = new Template if static_mtype != null then tpl.add ": " - tpl.add static_mtype.tpl_signature - end - return tpl - end -end - -redef class MMethod - redef fun tpl_signature do - var tpl = new Template - var params = new Array[String] - for param in intro.msignature.mparameters do - params.add param.name.html_escape - end - if not params.is_empty then - tpl.add "(" - tpl.add params.join(", ") - tpl.add ")" + tpl.add static_mtype.html_signature end return tpl end @@ -636,12 +656,12 @@ redef class MMethodDef return res end - redef fun tpl_signature do return msignature.tpl_signature + redef fun html_short_signature do return msignature.html_short_signature + redef fun html_signature do return msignature.html_signature end redef class MVirtualTypeProp redef fun html_link do return mvirtualtype.html_link - redef fun tpl_signature do return html_link end redef class MVirtualTypeDef @@ -652,41 +672,69 @@ redef class MVirtualTypeDef return res end - redef fun tpl_signature do + redef fun html_short_signature do return new Template + + redef fun html_signature do var tpl = new Template if bound == null then return tpl tpl.add ": " - tpl.add bound.tpl_signature + tpl.add bound.html_signature return tpl end end redef class MType - fun tpl_signature: Template is abstract + # Returns the signature of this type whithout bounds. + fun html_short_signature: Template is abstract + + # Returns the signature of this type. + fun html_signature: Template is abstract end redef class MClassType redef fun html_link do return mclass.html_link - redef fun tpl_signature do return html_link + redef fun html_short_signature do return html_link + redef fun html_signature do return html_link end redef class MNullableType - redef fun tpl_signature do + + redef fun html_short_signature do var tpl = new Template tpl.add "nullable " - tpl.add mtype.tpl_signature + tpl.add mtype.html_short_signature + return tpl + end + + redef fun html_signature do + var tpl = new Template + tpl.add "nullable " + tpl.add mtype.html_signature return tpl end end redef class MGenericType - redef fun tpl_signature do + redef fun html_short_signature do + var lnk = html_link + var tpl = new Template + tpl.add new Link.with_title(lnk.href, mclass.name.html_escape, lnk.title) + tpl.add "[" + for i in [0..arguments.length[ do + tpl.add arguments[i].html_short_signature + if i < arguments.length - 1 then tpl.add ", " + end + tpl.add "]" + return tpl + end + + redef fun html_signature do var lnk = html_link var tpl = new Template tpl.add new Link.with_title(lnk.href, mclass.name.html_escape, lnk.title) tpl.add "[" for i in [0..arguments.length[ do - tpl.add arguments[i].tpl_signature + tpl.add arguments[i].html_signature if i < arguments.length - 1 then tpl.add ", " end tpl.add "]" @@ -698,38 +746,64 @@ redef class MParameterType redef fun html_link do return new Link.with_title("{mclass.nitdoc_url}#FT_{name.to_cmangle}", name, "formal type") end - redef fun tpl_signature do return html_link + + redef fun html_short_signature do return html_link + redef fun html_signature do return html_link end redef class MVirtualType redef fun html_link do return mproperty.intro.html_link - redef fun tpl_signature do return html_link + redef fun html_signature do return html_link end redef class MSignature - redef fun tpl_signature do + + redef fun html_short_signature do var tpl = new Template if not mparameters.is_empty then tpl.add "(" for i in [0..mparameters.length[ do - tpl.add mparameters[i].tpl_signature + tpl.add mparameters[i].html_short_signature + if i < mparameters.length - 1 then tpl.add ", " + end + tpl.add ")" + end + return tpl + end + + redef fun html_signature do + var tpl = new Template + if not mparameters.is_empty then + tpl.add "(" + for i in [0..mparameters.length[ do + tpl.add mparameters[i].html_signature if i < mparameters.length - 1 then tpl.add ", " end tpl.add ")" end if return_mtype != null then tpl.add ": " - tpl.add return_mtype.tpl_signature + tpl.add return_mtype.html_signature end return tpl end end redef class MParameter - fun tpl_signature: Template do + + # Returns `self` name and ellipsys if any. + fun html_short_signature: Template do + var tpl = new Template + tpl.add name + if is_vararg then tpl.add "..." + return tpl + end + + # Returns `self` name with it's static type and ellipsys if any. + fun html_signature: Template do var tpl = new Template tpl.add "{name}: " - tpl.add mtype.tpl_signature + tpl.add mtype.html_signature if is_vararg then tpl.add "..." return tpl end @@ -777,7 +851,7 @@ end # Additions to `model_ext`. redef class MRawType - redef fun tpl_signature do + redef fun html_signature do var tpl = new Template for part in parts do @@ -793,7 +867,7 @@ end redef class MInnerClass redef fun nitdoc_url do return inner.nitdoc_url - redef fun tpl_signature do return inner.tpl_signature + redef fun html_signature do return inner.html_signature end redef class MInnerClassDef @@ -801,7 +875,7 @@ redef class MInnerClassDef redef fun html_link_to_anchor do return inner.html_link_to_anchor redef fun html_link do return inner.html_link - redef fun tpl_signature do return inner.tpl_signature + redef fun html_signature do return inner.html_signature redef fun tpl_definition do var tpl = new TplClassDefinition