[gi-docgen/namespace-for-included-docs] generate: Use the appropriate namespace for indices
- From: Emmanuele Bassi <ebassi src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gi-docgen/namespace-for-included-docs] generate: Use the appropriate namespace for indices
- Date: Fri, 29 Jul 2022 13:04:20 +0000 (UTC)
commit 0524047ada3e6a5572c43dd36201ebe589d08095
Author: Emmanuele Bassi <ebassi gnome org>
Date: Fri Jul 29 14:02:00 2022 +0100
generate: Use the appropriate namespace for indices
When including the ancestors and implemented interfaces of a class in
its index, we need to resolve eventual links in the short documentation
using the appropriate namespace, not the current one.
This allows us to fix the case in which an ancestor in another namespace
uses a link without specifying the namespace.
Fixes: #137
gidocgen/gdgenerate.py | 30 +++++++++++++++++-------------
1 file changed, 17 insertions(+), 13 deletions(-)
---
diff --git a/gidocgen/gdgenerate.py b/gidocgen/gdgenerate.py
index 604a12d..42ed782 100644
--- a/gidocgen/gdgenerate.py
+++ b/gidocgen/gdgenerate.py
@@ -189,12 +189,14 @@ def gen_index_ancestor(ancestor_type, namespace, config, md=None):
ns = ancestor_type.namespace or namespace.name
res = namespace.repository.find_class(ancestor_name, ns)
if res is not None:
- ancestor_ns = res[0].name
+ ancestor_ns_name = res[0].name
ancestor_ctype = res[1].base_ctype
+ ancestor_ns = res[0]
ancestor = res[1]
else:
- ancestor_ns = ancestor_type.namespace or namespace.name
+ ancestor_ns_name = ancestor_type.namespace or namespace.name
ancestor_ctype = ancestor_type.base_ctype
+ ancestor_ns = None
ancestor = None
n_methods = 0
methods = []
@@ -214,19 +216,19 @@ def gen_index_ancestor(ancestor_type, namespace, config, md=None):
if n_methods > 0 and n_methods < 24:
for m in ancestor.methods:
if not config.is_hidden(ancestor_name, "method", m.name):
- methods.append(gen_index_func(m, namespace, md))
+ methods.append(gen_index_func(m, ancestor_ns, md))
for p in ancestor.properties.values():
if not config.is_hidden(ancestor_name, "property", p.name):
n_properties += 1
- properties.append(gen_index_property(p, namespace, md))
+ properties.append(gen_index_property(p, ancestor_ns, md))
for s in ancestor.signals.values():
if not config.is_hidden(ancestor_name, "signal", s.name):
n_signals += 1
- signals.append(gen_index_signal(s, namespace, md))
+ signals.append(gen_index_signal(s, ancestor_ns, md))
return {
- "namespace": ancestor_ns,
+ "namespace": ancestor_ns_name,
"name": ancestor_name,
- "fqtn": f"{ancestor_ns}.{ancestor_name}",
+ "fqtn": f"{ancestor_ns_name}.{ancestor_name}",
"type_cname": ancestor_ctype,
"properties": properties,
"n_properties": n_properties,
@@ -245,12 +247,14 @@ def gen_index_implements(iface_type, namespace, config, md=None):
ns = iface_type.namespace or namespace.name
res = namespace.repository.find_interface(iface_name, ns)
if res is not None:
- iface_ns = res[0].name
+ iface_ns_name = res[0].name
iface_ctype = res[1].base_ctype
+ iface_ns = res[0]
iface = res[1]
else:
- iface_ns = iface_type.namespace or namespace.name
+ iface_ns_name = iface_type.namespace or namespace.name
iface_ctype = iface_type.base_ctype
+ iface_ns = None
iface = None
n_methods = 0
methods = []
@@ -268,17 +272,17 @@ def gen_index_implements(iface_type, namespace, config, md=None):
if n_methods > 0 and n_methods < 24:
for m in iface.methods:
if not config.is_hidden(iface_name, "method", m.name):
- methods.append(gen_index_func(m, namespace, md))
+ methods.append(gen_index_func(m, iface_ns, md))
for p in iface.properties.values():
if not config.is_hidden(iface_name, "property", p.name):
n_properties += 1
- properties.append(gen_index_property(p, namespace, md))
+ properties.append(gen_index_property(p, iface_ns, md))
for s in iface.signals.values():
if not config.is_hidden(iface.name, "signal", s.name):
n_signals += 1
- signals.append(gen_index_signal(s, namespace, md))
+ signals.append(gen_index_signal(s, iface_ns, md))
return {
- "namespace": iface_ns,
+ "namespace": iface_ns_name,
"name": iface_name,
"fqtn": f"{iface_ns}.{iface_name}",
"type_cname": iface_ctype,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]