Update reference resolver for nested resolution

pull/66/head
Anthony Johnson 9 years ago
parent b6b1bb0f8b
commit 49af2b252a

@ -253,7 +253,8 @@ class DotNetPythonMapper(PythonMapperBase):
# Always exist
self.id = obj.get('uid', obj.get('id'))
self.name = obj.get('fullName', self.id)
self.definition = obj.get('definition', self.id)
self.name = obj.get('fullName', self.definition)
# Optional
self.fullname = obj.get('fullName')
@ -436,8 +437,40 @@ class DotNetPythonMapper(PythonMapperBase):
Spec identifiers are used in parameter and return type definitions, but
should be a user-friendly version instead. Use docfx ``references``
lookup mapping for resolution.
If the spec identifier reference has a ``spec.csharp`` key, this implies
a compound reference that should be linked in a special way. Resolve to
a nested reference, with the corrected nodes.
.. note::
This uses a special format that is interpreted by the domain for
parameter type and return type fields.
:param obj_name: spec identifier to resolve to a correct reference
:returns: resolved string with one or more references
:rtype: str
"""
return self.references.get(obj_name, {}).get('fullName', obj_name)
ref = self.references.get(obj_name)
if ref is None:
return obj_name
resolved = ref.get('fullName', obj_name)
spec = ref.get('spec.csharp', [])
parts = []
for part in spec:
if part.get('name') == '<':
parts.append('{')
elif part.get('name') == '>':
parts.append('}')
elif 'fullName' in part and 'uid' in part:
parts.append('{fullName}<{uid}>'.format(**part))
elif 'uid' in part:
parts.append(part['uid'])
elif 'fullName':
parts.append(part['fullName'])
if parts:
resolved = ''.join(parts)
return resolved
class DotNetNamespace(DotNetPythonMapper):

@ -60,6 +60,9 @@ GitHub
{% block content %}
.. dn:{{ obj.ref_type }}:: {{ obj.definition }}
:hidden:
.. dn:{{ obj.ref_type }}:: {{ obj.name }}
{%- for item_type in obj.item_map.keys() %}

@ -7,7 +7,7 @@
{% endif %}
{%- for param in obj.parameters %}
{% if param.desc %}
:param {{ param.name }}: {{ param.desc|indent(8) }}
{% endif %}

Loading…
Cancel
Save