summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJasper St. Pierre <jstpierre@mecheye.net>2013-01-09 01:56:41 -0500
committerJasper St. Pierre <jstpierre@mecheye.net>2013-01-09 03:16:13 -0500
commit709408994a2806678c6c3258de2820a322f4e0c7 (patch)
treec3bab833c7f5eebe889380d47b02c9c29576796e
parent0211b0c2bf20b04c558feff4528e63152934aa50 (diff)
downloadgobject-introspection-709408994a2806678c6c3258de2820a322f4e0c7.tar.gz
mallardwriter: Consolidate xref building and page naming code
Simple code cleanups.
-rw-r--r--giscanner/mallardwriter.py31
1 files changed, 23 insertions, 8 deletions
diff --git a/giscanner/mallardwriter.py b/giscanner/mallardwriter.py
index 0c9b9967..a6827094 100644
--- a/giscanner/mallardwriter.py
+++ b/giscanner/mallardwriter.py
@@ -215,8 +215,7 @@ class MallardFormatter(object):
except (AttributeError, KeyError), e:
return match
- xref_name = "%s.%s:%s" % (node.namespace.name, type_node.name, node.name)
- return '<link xref="%s">%s</link>' % (make_page_id(node), xref_name)
+ return self.format_xref(node)
def _process_signal(self, match, props):
type_node = self._resolve_type(props['type_name'])
@@ -228,23 +227,21 @@ class MallardFormatter(object):
except (AttributeError, KeyError), e:
return match
- xref_name = "%s.%s::%s" % (node.namespace.name, type_node.name, node.name)
- return '<link xref="%s">%s</link>' % (make_page_id(node), xref_name)
+ return self.format_xref(node)
def _process_type_name(self, match, props):
node = self._resolve_type(props['type_name'])
if node is None:
return match
- xref_name = "%s.%s" % (node.namespace.name, node.name)
- return '<link xref="%s">%s</link>' % (make_page_id(node), xref_name)
+
+ return self.format_xref(node)
def _process_function_call(self, match, props):
node = self._resolve_symbol(props['symbol_name'])
if node is None:
return match
- return '<link xref="%s">%s</link>' % (make_page_id(node),
- self.format_function_name(node))
+ return self.format_xref(node)
def _process_fundamental(self, match, props):
return self.fundamentals.get(props['fundamental'], match)
@@ -274,6 +271,24 @@ class MallardFormatter(object):
def format_type(self, type_):
raise NotImplementedError
+ def format_page_name(self, node):
+ namespace = node.namespace
+ if isinstance(node, ast.Namespace):
+ return 'Index'
+ elif isinstance(node, ast.Function):
+ return self.format_function_name(node)
+ elif isinstance(node, ast.Property) and node.parent is not None:
+ return '%s.%s:%s' % (namespace.name, node.parent.name, node.name)
+ elif isinstance(node, ast.Signal) and node.parent is not None:
+ return '%s.%s::%s' % (namespace.name, node.parent.name, node.name)
+ elif isinstance(node, ast.VFunction) and node.parent is not None:
+ return '%s.%s::%s' % (namespace.name, node.parent.name, node.name)
+ else:
+ return make_page_id(node)
+
+ def format_xref(self, node):
+ return '<link xref="%s">%s</link>' % (make_page_id(node), self.format_page_name(node))
+
def format_property_flags(self, property_, construct_only=False):
flags = []
if property_.readable and not construct_only: