Опция переноса строк отсутствует в библиотеке pygments
.
Вы можете расширить ImageFormatter
и переопределить его метод format
для вставки новых токенов строк и переноса строк кода. В методе format
передается список токенов.
Сконцентрируйтесь на выполнении этой процедуры на Token.Literal.String.Double
токенах, чтобы быть более точным.
В противном случае отформатируйте code
, прежде чем он будет передан в функции highlight
. Вы можете сделать это вручную или программно, используя линтер. Большинство линтеров не исправляют длинные строки.
Например, с autopep8 , оказывает незначительное влияние на код
import autopep8
autopep8.fix_code(code, options=autopep8.parse_args(['']))
code
, должен быть написан вручную как:
code = """
print(
"Reading through Pygments' formatters doc(https://pygments.org/docs/formatters/), "
"I cannot find how to wrap code when using the ImageFormatter in order to export my "
"highlighted code to a png image (i.e. let's say I want my image to be 600px, "
"or 300 characters at font size, wide). It seems like wrapping is essential "
"when exporting to an image, is the option missing from Pygments at this moment?"
)
"""