diff options
author | Philip Chimento <philip.chimento@gmail.com> | 2015-12-12 18:13:56 -0800 |
---|---|---|
committer | rockon999 <rockon999@users.noreply.github.com> | 2018-08-06 02:53:45 -0500 |
commit | 2635fb9fa3e223ae299a4306acf9dc85c6745637 (patch) | |
tree | 311c05bf769bafb0ca702e25ce633ab00d8e5663 /giscanner/doctemplates | |
parent | c7014b82d930d10e2dc88cd2ab9eb880f78e69c1 (diff) | |
download | gobject-introspection-2635fb9fa3e223ae299a4306acf9dc85c6745637.tar.gz |
devdocs: Don't render private fields
Skip private fields such as "priv" and "parent_instance". Unfortunately
not all private structure and parent instance fields are marked private,
and not all of them are named "priv" or "parent_instance".
This also includes fields that are contained within anonymous unions.
Diffstat (limited to 'giscanner/doctemplates')
-rw-r--r-- | giscanner/doctemplates/devdocs/Gjs/_index.tmpl | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/giscanner/doctemplates/devdocs/Gjs/_index.tmpl b/giscanner/doctemplates/devdocs/Gjs/_index.tmpl index 8d45e871..6f5e9729 100644 --- a/giscanner/doctemplates/devdocs/Gjs/_index.tmpl +++ b/giscanner/doctemplates/devdocs/Gjs/_index.tmpl @@ -3,16 +3,34 @@ if isinstance(node, ast.Class): ancestors = formatter.get_inheritable_types(node) + fields = getattr(node, 'fields', []) + extra_fields = [getattr(f.anonymous_node, 'fields', []) for f in fields + if f.anonymous_node is not None] + extra_fields = [field for sublist in extra_fields for field in sublist] + non_private_fields = [f for f in fields + extra_fields + if not formatter.is_private_field(node, f)] + def get_ancestor_counts(*kinds): counts = {} for a in ancestors: - count = sum([len(getattr(a, kind, [])) for kind in kinds]) + count = 0 + for kind in kinds: + if kind == 'fields': + count += len(non_private_fields) + else: + count += len(getattr(a, kind, [])) if count: counts[a] = count return counts def should_render(*kinds): - has_nonempty = any([getattr(node, kind, []) for kind in kinds]) + has_nonempty = False + for kind in kinds: + if kind == 'fields': + if non_private_fields: + has_nonempty = True + elif getattr(node, kind, []): + has_nonempty = True return has_nonempty or get_ancestor_counts(*kinds) %> @@ -125,7 +143,7 @@ % if should_render('fields'): <h2 id="index-fields">Fields</h2> ${inherited('fields')} - % if getattr(node, 'fields', []): + % if non_private_fields: <table> <thead> <tr> @@ -136,7 +154,7 @@ </tr> </thead> <tbody> - % for f in node.fields: + % for f in non_private_fields: <tr> <td><span class="entry" href="#${formatter.make_anchor(f)}">${f.name}</span></td> <td>${formatter.format_type(f.type)}</td> |