@@ -106,13 +106,6 @@ def parse_functions(self):
106
106
if 'description' in preview_img :
107
107
preview_img ['description_html' ] = utils .to_html (preview_img ['description' ], single_paragraph = True )
108
108
109
- if ('returns' in type_info ) and ('description' in type_info ['returns' ]):
110
- type_info ['returns' ]['description_html' ] = utils .to_html (type_info ['returns' ]['description' ], single_paragraph = True )
111
-
112
- if 'parameters' in type_info :
113
- for parameter in type_info ['parameters' ]:
114
- parameter ['description_html' ] = utils .to_html (parameter ['description' ], single_paragraph = True )
115
-
116
109
# Prepare parameters & returns for syntax display
117
110
syntaxes = {
118
111
'single' : None ,
@@ -123,6 +116,10 @@ def parse_functions(self):
123
116
parameters = []
124
117
returns = None
125
118
has_single_syntax = True
119
+ ignore_parameters = {
120
+ 'client' : None ,
121
+ 'server' : None ,
122
+ }
126
123
127
124
if function .get ('shared' ):
128
125
# Function may have different syntax for client/server
@@ -134,6 +131,13 @@ def parse_functions(self):
134
131
has_single_syntax = False
135
132
break
136
133
last_syntax_type = type_name
134
+ # Check if client or server defs have ignore_parameters
135
+ for type_name in ['client' , 'server' ]:
136
+ type_info = function .get (type_name )
137
+ if type_info :
138
+ if type_info .get ('ignore_parameters' ):
139
+ ignore_parameters [type_name ] = type_info ['ignore_parameters' ]
140
+ has_single_syntax = False
137
141
else :
138
142
has_single_syntax = True
139
143
@@ -150,12 +154,18 @@ def parse_parameters_and_returns(parameters, returns):
150
154
}
151
155
}
152
156
for parameter in parameters :
157
+ parameter_custom = {
158
+ 'name' : parameter .get ('name' ),
159
+ 'type' : parameter .get ('type' ),
160
+ 'description_html' : utils .to_html (parameter .get ('description' ), single_paragraph = True ),
161
+ 'default' : parameter .get ('default' ),
162
+ }
153
163
if parameter .get ('default' ):
154
- syntax ['arguments' ]['optional' ].append (parameter )
164
+ syntax ['arguments' ]['optional' ].append (parameter_custom )
155
165
else :
156
- syntax ['arguments' ]['required' ].append (parameter )
166
+ syntax ['arguments' ]['required' ].append (parameter_custom )
157
167
if returns :
158
- syntax ['returns' ]['description ' ] = returns .get ('description' , None )
168
+ syntax ['returns' ]['description_html ' ] = utils . to_html ( returns .get ('description' ), single_paragraph = True )
159
169
for value in returns .get ('values' ):
160
170
syntax ['returns' ]['values' ].append (value )
161
171
syntax ['returns' ]['values_type' ] = syntax ['returns' ]['values' ][0 ].get ('type' )
@@ -178,11 +188,17 @@ def parse_parameters_and_returns(parameters, returns):
178
188
# Get client parameters and returns, complete missing with shared
179
189
client = function .get ('client' )
180
190
client_parameters = client .get ('parameters' ) or shared_parameters
191
+ # Exclude ignore_parameters['client'] from client parameters
192
+ if ignore_parameters ['client' ]:
193
+ client_parameters = [p for p in client_parameters if p ['name' ] not in ignore_parameters ['client' ]]
181
194
client_returns = client .get ('returns' ) or shared_returns
182
195
183
196
# Get server parameters and returns, complete missing with shared
184
197
server = function .get ('server' )
185
198
server_parameters = server .get ('parameters' ) or shared_parameters
199
+ # Exclude ignore_parameters['server'] from server parameters
200
+ if ignore_parameters ['server' ]:
201
+ server_parameters = [p for p in server_parameters if p ['name' ] not in ignore_parameters ['server' ]]
186
202
server_returns = server .get ('returns' ) or shared_returns
187
203
188
204
syntaxes ['client' ] = parse_parameters_and_returns (client_parameters , client_returns )
0 commit comments