def handle_signature(self, sig, signode):
container_class_name = self.env.temp_data.get('swift:class')
enum_case = None
assoc_value = None
raw_value = None
# split on ( -> first part is case name
parts = [x.strip() for x in sig.split('(', maxsplit=1)]
enum_case = parts[0].strip()
if len(parts) > 1:
parts = parts[1].rsplit('=', maxsplit=1)
assoc_value = parts[0].strip()
if len(parts) > 1:
raw_value = parts[1].strip()
if assoc_value == "":
assoc_value = None
else:
assoc_value = "(" + assoc_value
else:
parts = [x.strip() for x in sig.split('=', maxsplit=1)]
enum_case = parts[0].strip()
if len(parts) > 1:
raw_value = parts[1].strip()
# Add class name
signode += addnodes.desc_name(enum_case, enum_case)
if assoc_value:
signode += addnodes.desc_type(assoc_value, assoc_value)
if raw_value:
signode += addnodes.desc_addname(raw_value, " = " + raw_value)
if container_class_name:
enum_case = container_class_name + '.' + enum_case
return enum_case, enum_case, True
评论列表
文章目录