@@ -106,13 +106,6 @@ def parse_functions(self):
106106 if 'description' in preview_img :
107107 preview_img ['description_html' ] = utils .to_html (preview_img ['description' ], single_paragraph = True )
108108
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-
116109 # Prepare parameters & returns for syntax display
117110 syntaxes = {
118111 'single' : None ,
@@ -123,6 +116,10 @@ def parse_functions(self):
123116 parameters = []
124117 returns = None
125118 has_single_syntax = True
119+ ignore_parameters = {
120+ 'client' : None ,
121+ 'server' : None ,
122+ }
126123
127124 if function .get ('shared' ):
128125 # Function may have different syntax for client/server
@@ -134,6 +131,13 @@ def parse_functions(self):
134131 has_single_syntax = False
135132 break
136133 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
137141 else :
138142 has_single_syntax = True
139143
@@ -150,12 +154,18 @@ def parse_parameters_and_returns(parameters, returns):
150154 }
151155 }
152156 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+ }
153163 if parameter .get ('default' ):
154- syntax ['arguments' ]['optional' ].append (parameter )
164+ syntax ['arguments' ]['optional' ].append (parameter_custom )
155165 else :
156- syntax ['arguments' ]['required' ].append (parameter )
166+ syntax ['arguments' ]['required' ].append (parameter_custom )
157167 if returns :
158- syntax ['returns' ]['description ' ] = returns .get ('description' , None )
168+ syntax ['returns' ]['description_html ' ] = utils . to_html ( returns .get ('description' ), single_paragraph = True )
159169 for value in returns .get ('values' ):
160170 syntax ['returns' ]['values' ].append (value )
161171 syntax ['returns' ]['values_type' ] = syntax ['returns' ]['values' ][0 ].get ('type' )
@@ -178,11 +188,17 @@ def parse_parameters_and_returns(parameters, returns):
178188 # Get client parameters and returns, complete missing with shared
179189 client = function .get ('client' )
180190 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' ]]
181194 client_returns = client .get ('returns' ) or shared_returns
182195
183196 # Get server parameters and returns, complete missing with shared
184197 server = function .get ('server' )
185198 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' ]]
186202 server_returns = server .get ('returns' ) or shared_returns
187203
188204 syntaxes ['client' ] = parse_parameters_and_returns (client_parameters , client_returns )
0 commit comments