From: Tomeu Vizoso Date: Sat, 13 Aug 2011 14:13:41 +0000 (+0200) Subject: g-ir-doc-tool: Add alias elements (typedef) X-Git-Tag: GOBJECT_INTROSPECTION_1_29_17~67^2~3 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=652a04100e37055c7ae427cd3113ec1d4efac9c3;p=platform%2Fupstream%2Fgobject-introspection.git g-ir-doc-tool: Add alias elements (typedef) --- diff --git a/giscanner/docbookwriter.py b/giscanner/docbookwriter.py index bf6c9d1..2d24291 100644 --- a/giscanner/docbookwriter.py +++ b/giscanner/docbookwriter.py @@ -96,7 +96,7 @@ class DocBookFormatter(object): return "%s ()" % method.symbol def get_page_name(self, node): - if node.gtype_name is None: + if isinstance(node, ast.Alias) or node.gtype_name is None: return node.ctype return node.gtype_name @@ -307,7 +307,7 @@ class DocBookWriter(object): self._formatter.set_namespace(self._namespace) for name, node in self._namespace.iteritems(): - if isinstance(node, (ast.Class, ast.Record, ast.Interface)): + if isinstance(node, (ast.Class, ast.Record, ast.Interface, ast.Alias)): page_name = self._formatter.get_page_name(node) self._add_node(node, page_name) @@ -315,8 +315,10 @@ class DocBookWriter(object): page = DocBookPage(name, node) self._add_page(page) - if isinstance(node, (ast.Class, ast.Record, ast.Interface)): + if isinstance(node, (ast.Class, ast.Record, ast.Interface, ast.Alias)): page.id = node.ctype + + if isinstance(node, (ast.Class, ast.Record, ast.Interface)): for method in node.methods: method.parent_class = node page.add_method(DocBookEntity(method.name, "method", method)) @@ -356,7 +358,8 @@ class DocBookWriter(object): self._writer.write_tag( "title", [("role", "synopsis.title")], "Synopsis") - self._writer.write_tag("anchor", [("id", page.name)]) + if not isinstance(page.ast, ast.Alias): + self._writer.write_tag("anchor", [("id", page.name)]) with self._writer.tagcontext('synopsis'): self._writer.disable_whitespace() @@ -425,7 +428,12 @@ class DocBookWriter(object): ("role", "details")]): self._writer.write_tag("title", [("role", "details.title")], "Details") - self._render_struct(page.ast) + + if isinstance(page.ast, ast.Alias): + self._render_alias(page.ast) + else: + self._render_struct(page.ast) + for entity in page.get_methods(): self._render_method(entity) @@ -447,6 +455,19 @@ class DocBookWriter(object): for entity in page.get_signals(): self._render_signal(entity) + def _render_alias(self, alias): + with self._writer.tagcontext('refsect2', + [('id', "%s" % alias.ctype), + ('role', 'typedef')]): + self._writer.write_tag("title", [], "%s" % alias.ctype) + with self._writer.tagcontext("indexterm", [("zone", "%s" % alias.ctype)]): + self._writer.write_tag("primary", [("sortas", alias.name)], alias.ctype) + self._writer.write_tag("programlisting", + [], + "typedef %s %s" % (alias.target.ctype, + alias.ctype)) + self._writer.write_tag("para", [], alias.doc) + def _render_struct(self, struct): with self._writer.tagcontext('refsect2', [('id', "%s-struct" % struct.ctype), diff --git a/tests/doctool/GIRepository-2.0-expected.xml b/tests/doctool/GIRepository-2.0-expected.xml index 9b1a94f..87cecf7 100644 --- a/tests/doctool/GIRepository-2.0-expected.xml +++ b/tests/doctool/GIRepository-2.0-expected.xml @@ -8,21 +8,394 @@ xmlns="http://docbook.org/ns/docbook" version="5.0"> GIRepository Documentation + + GIArgInfo + + Synopsis + +struct GIArgInfo; + + + + Details + + GIArgInfo + + GIArgInfo + + typedef GIBaseInfo GIArgInfo + Represents an argument. + + + + + GICallableInfo + + Synopsis + +struct GICallableInfo; + + + + Details + + GICallableInfo + + GICallableInfo + + typedef GIBaseInfo GICallableInfo + Represents a callable, either #GIFunctionInfo, #GICallbackInfo or +#GIVFuncInfo. + + + + + GICallbackInfo + + Synopsis + +struct GICallbackInfo; + + + + Details + + GICallbackInfo + + GICallbackInfo + + typedef GIBaseInfo GICallbackInfo + Represents a callback, eg arguments and return value. + + + + + GIConstantInfo + + Synopsis + +struct GIConstantInfo; + + + + Details + + GIConstantInfo + + GIConstantInfo + + typedef GIBaseInfo GIConstantInfo + Represents a constant. + + + + + GIEnumInfo + + Synopsis + +struct GIEnumInfo; + + + + Details + + GIEnumInfo + + GIEnumInfo + + typedef GIBaseInfo GIEnumInfo + Represents an enum or a flag. + + + + + GIErrorDomainInfo + + Synopsis + +struct GIErrorDomainInfo; + + + + Details + + GIErrorDomainInfo + + GIErrorDomainInfo + + typedef GIBaseInfo GIErrorDomainInfo + Represents a #GError error domain. + + + + + GIFieldInfo + + Synopsis + +struct GIFieldInfo; + + + + Details + + GIFieldInfo + + GIFieldInfo + + typedef GIBaseInfo GIFieldInfo + Represents a field of a #GIStructInfo or a #GIUnionInfo. + + + + + GIFunctionInfo + + Synopsis + +struct GIFunctionInfo; + + + + Details + + GIFunctionInfo + + GIFunctionInfo + + typedef GIBaseInfo GIFunctionInfo + Represents a function, eg arguments and return value. + + + + + GIInterfaceInfo + + Synopsis + +struct GIInterfaceInfo; + + + + Details + + GIInterfaceInfo + + GIInterfaceInfo + + typedef GIBaseInfo GIInterfaceInfo + Represents an interface. + + + + + GIObjectInfo + + Synopsis + +struct GIObjectInfo; + + + + Details + + GIObjectInfo + + GIObjectInfo + + typedef GIBaseInfo GIObjectInfo + Represents an object. + + + + + GIPropertyInfo + + Synopsis + +struct GIPropertyInfo; + + + + Details + + GIPropertyInfo + + GIPropertyInfo + + typedef GIBaseInfo GIPropertyInfo + Represents a property of a #GIObjectInfo or a #GIInterfaceInfo. + + + + + GIRegisteredTypeInfo + + Synopsis + +struct GIRegisteredTypeInfo; + + + + Details + + GIRegisteredTypeInfo + + GIRegisteredTypeInfo + + typedef GIBaseInfo GIRegisteredTypeInfo + Represent a registered type. + + + + + GISignalInfo + + Synopsis + +struct GISignalInfo; + + + + Details + + GISignalInfo + + GISignalInfo + + typedef GIBaseInfo GISignalInfo + Represents a signal. + + + + + GIStructInfo + + Synopsis + +struct GIStructInfo; + + + + Details + + GIStructInfo + + GIStructInfo + + typedef GIBaseInfo GIStructInfo + Represents a struct. + + + + + GITypeInfo + + Synopsis + +struct GITypeInfo; + + + + Details + + GITypeInfo + + GITypeInfo + + typedef GIBaseInfo GITypeInfo + Represents type information, direction, transfer etc. + + + + + GIUnionInfo + + Synopsis + +struct GIUnionInfo; + + + + Details + + GIUnionInfo + + GIUnionInfo + + typedef GIBaseInfo GIUnionInfo + Represents a union. + + + + + GIVFuncInfo + + Synopsis + +struct GIVFuncInfo; + + + + Details + + GIVFuncInfo + + GIVFuncInfo + + typedef GIBaseInfo GIVFuncInfo + Represents a virtual function. + + + + + GIValueInfo + + Synopsis + +struct GIValueInfo; + + + + Details + + GIValueInfo + + GIValueInfo + + typedef GIBaseInfo GIValueInfo + Represents a enum value of a #GIEnumInfo. + + + - GIAttributeIter Synopsis + +struct GIAttributeIter; + + Details + + struct GIAttributeIter + + GIAttributeIter + + struct GIAttributeIter; + + - GIBaseInfo Synopsis + +struct GIBaseInfo; gboolean g_base_info_equal (GIBaseInfo *baseinfo, GIBaseInfo *info2); gchar * g_base_info_get_attribute (GIBaseInfo *baseinfo, @@ -40,8 +413,15 @@ void g_base_info_unref (GIBaseInfo *baseinfo); - + Details + + struct GIBaseInfo + + GIBaseInfo + + struct GIBaseInfo; + g_base_info_equal () @@ -423,11 +803,12 @@ drops to 0, the info is freed. - GIRepository Synopsis + +struct GIRepository; GList * g_irepository_enumerate_versions (GIRepository *repository, gchar *namespace_); GIEnumInfo * g_irepository_find_by_error_domain (GIRepository *repository, @@ -476,8 +857,15 @@ drops to 0, the info is freed. GObject +----GIRepository - + Details + + struct GIRepository + + GIRepository + + struct GIRepository; + g_irepository_enumerate_versions () @@ -1257,29 +1645,52 @@ not specified, the latest will be used. - GIRepositoryClass Synopsis + +struct GIRepositoryClass; + + Details + + struct GIRepositoryClass + + GIRepositoryClass + + struct GIRepositoryClass; + + - GIRepositoryPrivate Synopsis + +struct GIRepositoryPrivate; + + Details + + struct GIRepositoryPrivate + + GIRepositoryPrivate + + struct GIRepositoryPrivate; + + - GITypelib Synopsis + +struct GITypelib; void g_typelib_free (GITypelib *typelib); gchar * g_typelib_get_namespace (GITypelib *typelib); gboolean g_typelib_symbol (GITypelib *typelib, @@ -1287,8 +1698,15 @@ not specified, the latest will be used. gpointer *symbol); - + Details + + struct GITypelib + + GITypelib + + struct GITypelib; + g_typelib_free () @@ -1377,21 +1795,43 @@ not specified, the latest will be used. - GIUnresolvedInfo Synopsis + +struct GIUnresolvedInfo; + + Details + + struct GIUnresolvedInfo + + GIUnresolvedInfo + + struct GIUnresolvedInfo; + + - _GIBaseInfoStub Synopsis + +struct _GIBaseInfoStub; + + Details + + struct _GIBaseInfoStub + + _GIBaseInfoStub + + struct _GIBaseInfoStub; + +