rich.syntax¶
- class rich.syntax.Syntax(code, lexer, *, theme='monokai', dedent=False, line_numbers=False, start_line=1, line_range=None, highlight_lines=None, code_width=None, tab_size=4, word_wrap=False, background_color=None, indent_guides=False, padding=0)[source]¶
构造一个 Syntax 对象以渲染语法高亮的代码。
- 参数
code (str) – 要高亮的代码。
lexer (Lexer | str) – 要使用的词法分析器(参见 https://pygments.pythonlang.cn/docs/lexers/)
theme (str, 可选) – 颜色主题,也称为 Pygments 样式(参见 https://pygments.pythonlang.cn/docs/styles/#getting-a-list-of-available-styles)。默认为“monokai”。
dedent (bool, 可选) – 启用剥离初始空格。默认为 False。
line_numbers (bool, 可选) – 启用渲染行号。默认为 False。
start_line (int, 可选) – 行号的起始数字。默认为 1。
line_range (Tuple[int | None, int | None], 可选) – 如果给出,应该是一个表示要渲染的起始行和结束行的元组。元组中为 None 的值表示该方向上的范围是开放的。
highlight_lines (Set[int]) – 要高亮显示的行号集。
code_width (Optional[int]) – 要渲染的代码宽度(不包括行号),或
None
以使用所有可用宽度。tab_size (int, 可选) – 制表符大小。默认为 4。
word_wrap (bool, 可选) – 启用自动换行。
background_color (str, 可选) – 可选的背景颜色,或 None 以使用主题颜色。默认为 None。
indent_guides (bool, 可选) – 显示缩进指南。默认为 False。
padding (PaddingDimensions) – 要应用于语法周围的填充。默认为 0(无填充)。
- property default_lexer: Lexer¶
如果没有指定或无效,则要使用的 Pygments 词法分析器。
- classmethod from_path(path, encoding='utf-8', lexer=None, theme='monokai', dedent=False, line_numbers=False, line_range=None, start_line=1, highlight_lines=None, code_width=None, tab_size=4, word_wrap=False, background_color=None, indent_guides=False, padding=0)[source]¶
从文件构造一个 Syntax 对象。
- 参数
path (str) – 要高亮显示的文件路径。
encoding (str) – 文件编码。
lexer (str | Lexer, 可选) – 要使用的词法分析器。如果为 None,将从路径/文件内容自动检测词法分析器。
theme (str, 可选) – 颜色主题,也称为 Pygments 样式(参见 https://pygments.pythonlang.cn/docs/styles/#getting-a-list-of-available-styles)。默认为“emacs”。
dedent (bool, 可选) – 启用剥离初始空格。默认为 True。
line_numbers (bool, 可选) – 启用渲染行号。默认为 False。
start_line (int, 可选) – 行号的起始数字。默认为 1。
line_range (Tuple[int, int], 可选) – 如果给出,应该是一个表示要渲染的起始行和结束行的元组。
highlight_lines (Set[int]) – 要高亮显示的行号集。
code_width (Optional[int]) – 要渲染的代码宽度(不包括行号),或
None
以使用所有可用宽度。tab_size (int, 可选) – 制表符大小。默认为 4。
word_wrap (bool, 可选) – 启用代码的自动换行。
background_color (str, 可选) – 可选的背景颜色,或 None 以使用主题颜色。默认为 None。
indent_guides (bool, 可选) – 显示缩进指南。默认为 False。
padding (PaddingDimensions) – 要应用于语法周围的填充。默认为 0(无填充)。
- 返回值
可以打印到控制台的 Syntax 对象
- 返回类型
[Syntax]
- classmethod guess_lexer(path, code=None)[source]¶
根据路径和可选的代码字符串推断要使用的 Pygments 词法分析器的别名。如果提供了代码,它将结合代码和文件名来确定要使用的最佳词法分析器。例如,如果文件是
index.html
并且文件包含 Django 模板语法,则将返回 “html+django”。如果文件是index.html
,并且未使用任何模板语言,则将使用 “html” 词法分析器。如果没有提供代码字符串,则将根据文件扩展名选择词法分析器。