@@ -135,8 +135,25 @@ def update_env(self, md: Markdown, config: dict) -> None: # noqa: D102 (ignore
135
135
self .env .filters ["crossref" ] = self .do_crossref
136
136
self .env .filters ["multi_crossref" ] = self .do_multi_crossref
137
137
self .env .filters ["order_members" ] = self .do_order_members
138
+ self .env .filters ["format_code" ] = self .do_format_code
138
139
self .env .filters ["format_signature" ] = self .do_format_signature
139
140
141
+ def do_format_code (self , code : str , line_length : int ) -> str :
142
+ """Format code using Black.
143
+
144
+ Parameters:
145
+ code: The code to format.
146
+ line_length: The line length to give to Black.
147
+
148
+ Returns:
149
+ The same code, formatted.
150
+ """
151
+ code = code .strip ()
152
+ if len (code ) < line_length :
153
+ return code
154
+ formatter = _get_black_formatter ()
155
+ return formatter (code , line_length )
156
+
140
157
def do_format_signature (self , signature : str , line_length : int ) -> str :
141
158
"""Format a signature using Black.
142
159
@@ -151,7 +168,9 @@ def do_format_signature(self, signature: str, line_length: int) -> str:
151
168
if len (code ) < line_length :
152
169
return code
153
170
formatter = _get_black_formatter ()
154
- return formatter (code , line_length )
171
+ formatted = formatter (f"def { code } : pass" , line_length )
172
+ # remove starting `def ` and trailing `: pass`
173
+ return formatted [4 :- 5 ].strip ()[:- 1 ]
155
174
156
175
def do_order_members (self , members : Sequence [Object | Alias ], order : Order ) -> Sequence [Object | Alias ]:
157
176
"""Order members given an ordering method.
@@ -219,8 +238,6 @@ def _get_black_formatter():
219
238
220
239
def formatter (code , line_length ): # noqa: WPS430
221
240
mode = Mode (line_length = line_length )
222
- formatted = format_str (f"def { code } : pass" , mode = mode )
223
- # remove starting `def ` and trailing `: pass`
224
- return formatted [4 :- 5 ].strip ()[:- 1 ]
241
+ return format_str (code , mode = mode )
225
242
226
243
return formatter
0 commit comments