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)[源代码]

构造一个语法对象以呈现语法突出显示的代码。

参数
  • code (str) -- 要突出显示的代码。

  • lexer (Lexer | str) -- 要使用的词法分析器(请参阅https://pygments.org/docs/lexers/)

  • theme (str, optional) -- 颜色主题,也称为俾格森风格(请参阅https://pygments.org/docs/styles/#getting-a-list-of-available-styles).默认为“monokai”。

  • dedent (bool, optional) -- 启用去掉初始空格。默认为False。

  • line_numbers (bool, optional) -- 启用线号呈现。默认为False。

  • start_line (int, optional) -- 行号的起始号。默认为1。

  • line_range (Tuple[int | None, int | None], optional) -- 如果给定,则应该是要呈现的开始行和结束行的元组。如果元组中的值为无,则表示该范围在该方向上是开放的。

  • highlight_lines (Set[int]) -- 要突出显示的一组行号。

  • code_width (Optional[int]) -- 要呈现的代码的宽度(不包括行号),或 None 要使用所有可用宽度,请执行以下操作。

  • tab_size (int, optional) -- 选项卡的大小。默认为4。

  • word_wrap (bool, optional) -- 启用自动换行。

  • background_color (str, optional) -- 可选背景颜色,或无以使用主题颜色。默认为无。

  • indent_guides (bool, optional) -- 显示缩进辅助线。默认为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)[源代码]

从文件构造语法对象。

参数
  • path (str) -- 要突出显示的文件的路径。

  • encoding (str) -- 对文件进行编码。

  • lexer (str | Lexer, optional) -- 要使用的词法分析器。如果没有,将从路径/文件内容中自动检测词法分析器。

  • theme (str, optional) -- 颜色主题,也称为俾格森风格(请参阅https://pygments.org/docs/styles/#getting-a-list-of-available-styles).默认为“emacs”。

  • dedent (bool, optional) -- 启用去掉初始空格。默认为True。

  • line_numbers (bool, optional) -- 启用线号呈现。默认为False。

  • start_line (int, optional) -- 行号的起始号。默认为1。

  • line_range (Tuple[int, int], optional) -- 如果给定,则应该是要呈现的开始行和结束行的元组。

  • highlight_lines (Set[int]) -- 要突出显示的一组行号。

  • code_width (Optional[int]) -- 要呈现的代码的宽度(不包括行号),或 None 要使用所有可用宽度,请执行以下操作。

  • tab_size (int, optional) -- 选项卡的大小。默认为4。

  • word_wrap (bool, optional) -- 启用代码的自动换行。

  • background_color (str, optional) -- 可选背景颜色,或无以使用主题颜色。默认为无。

  • indent_guides (bool, optional) -- 显示缩进辅助线。默认为False。

  • padding (PaddingDimensions) -- 要在语法周围应用的填充。默认为0(无填充)。

返回

可以打印到控制台的语法对象

返回类型

[Syntax]

classmethod get_theme(name)[源代码]

获取语法主题实例。

参数

name (Union[str, SyntaxTheme]) --

返回类型

SyntaxTheme

classmethod guess_lexer(path, code=None)[源代码]

根据路径和可选的代码字符串猜测要使用的Pygments词法分析器的别名。如果提供了代码,它将使用代码和文件名的组合来确定要使用的最佳词法分析器。例如,如果文件是 index.html 并且该文件包含Django模板语法,则返回“html+Django”。如果该文件是 index.html ,并且不使用模板语言,则将使用“html”词法分析器。如果未提供代码字符串,则将根据文件扩展名选择词法分析器。

参数
  • path (AnyStr) -- 包含您希望知道其词法分析器的代码的文件的路径。

  • code (str, optional) -- 如果没有为提供的路径找到词法分析器,将用作备用的可选代码字符串。

返回

与提供的路径/代码最匹配的Pygments词法分析器的名称。

返回类型

str

highlight(code, line_range=None)[源代码]

突出显示代码并返回一个文本实例。

参数
  • code (str) -- 要突出显示的代码。

  • line_range (Tuple[int, int], optional) -- 要突出显示的可选行范围。

返回

包含突出显示的语法的文本实例。

返回类型

Text

property lexer: Optional[Lexer]

此语法的词法分析器,如果未找到词法分析器,则为None。

如果向构造函数传递了字符串,则尝试按名称查找词法分析器。

stylize_range(style, start, end)[源代码]

在代码的一部分上添加自定义样式,该样式将在呈现时应用于语法显示。行号从1开始,而列索引从0开始。

参数
  • style (StyleType) -- 要应用的样式。

  • start (Tuple[int, int]) -- 范围的开始,格式为 [line number, column index]

  • end (Tuple[int, int]) -- 范围的末尾,格式为 [line number, column index]

返回类型

None