MCPcopy Create free account
hub / github.com/defold/defold / gen_doc

Function gen_doc

scripts/dmsdk/gen_cpp.py:88–134  ·  view source on GitHub ↗
(docs, name, renamed, indent=1, language='C++')

Source from the content-addressed store, hash-verified

86 return ('\n' + indent_str + ' * ').join(lines)
87
88def gen_doc(docs, name, renamed, indent=1, language='C++'):
89 doc = _find_doc(docs, name)
90 if not doc:
91 return f""" /*#
92 * Generated from [ref:{name}]
93 */"""
94
95 lines = []
96 _add_line(lines, None, doc.get('brief', ''))
97
98 desc = doc.get('desc', doc.get('brief', ''))
99 desc = _format_doc_lines(desc, indent)
100 _add_line(lines, None, desc)
101
102 doctype = doc.get('type', None)
103 if doctype:
104 lines.append(f'@{doctype}')
105 else:
106 doctype = 'function'
107
108 _add_line(lines, 'name', renamed)
109 _add_line(lines, 'language', language)
110
111 if doctype in ['function', 'typedef']:
112 for param in doc.get('params', []):
113 _add_param(lines, 'param', param)
114
115 _add_param(lines, 'return', doc.get('return', None))
116
117 elif doctype in ['struct', 'enum']:
118 for member in doc.get('members', []):
119 _add_param(lines, 'member', member)
120
121 for (_, v) in doc.get('notes', []):
122 v = _format_doc_lines(v, indent)
123 _add_line(lines, 'note', v)
124
125 for (_, v) in doc.get('examples', []):
126 # TODO: Filter out languages that aren't C++
127 if 'objective-c' in v:
128 v = v.replace('\\@', '@')
129
130 v = _format_doc_lines('\n' + v, indent)
131 _add_line(lines, 'examples', v)
132
133 indent_str = get_indent(indent)
134 return indent_str + '/*# ' + _format_doc_lines(lines, indent) + '\n'+ indent_str + ' */'
135
136def get_cpp_func(decl):
137 ret_type = decl['type']['qualType']

Callers 2

add_c_docsFunction · 0.70
gen_cpp_headerFunction · 0.70

Calls 8

appendMethod · 0.80
replaceMethod · 0.80
_find_docFunction · 0.70
_add_lineFunction · 0.70
_format_doc_linesFunction · 0.70
_add_paramFunction · 0.70
get_indentFunction · 0.70
getMethod · 0.65

Tested by

no test coverage detected