summaryrefslogtreecommitdiff
path: root/giscanner/mallardwriter.py
diff options
context:
space:
mode:
Diffstat (limited to 'giscanner/mallardwriter.py')
-rw-r--r--giscanner/mallardwriter.py11
1 files changed, 11 insertions, 0 deletions
diff --git a/giscanner/mallardwriter.py b/giscanner/mallardwriter.py
index 23a14a71..65123a88 100644
--- a/giscanner/mallardwriter.py
+++ b/giscanner/mallardwriter.py
@@ -64,6 +64,8 @@ class MallardFormatter(object):
result += self.escape(para[:pos])
rest = para[pos + 1:]
link = re.split('[^a-zA-Z_:-]', rest, maxsplit=1)[0]
+ if link.endswith(':'):
+ link = link[:-1]
if '::' in link:
type_name, signal_name = link.split('::')
if type_name in self._namespace.ctypes:
@@ -73,6 +75,15 @@ class MallardFormatter(object):
else:
xref = link
xref_name = link
+ elif ':' in link:
+ type_name, property_name = link.split(':')
+ if type_name in self._namespace.ctypes:
+ type_ = self._namespace.get_by_ctype(type_name)
+ xref = '%s.%s-%s' % (self._namespace.name, type_.name, property_name)
+ xref_name = '%s.%s:%s' % (self._namespace.name, type_.name, property_name)
+ else:
+ xref = link
+ xref_name = link
elif link in self._namespace.ctypes:
type_ = self._namespace.get_by_ctype(link)
xref = '%s.%s' % (self._namespace.name, type_.name)