Code

Qualified name: algan.mobs.manim\_compat.Code

class Code(code_file=None, code_string=None, language=None, formatter_style='vim', tab_width=4, add_line_numbers=True, line_numbers_from=1, background='rectangle', background_config=None, paragraph_config=None)

Bases: ManimCompatMob

A highlighted source code listing.

Parameters:
  • code_file (StrPath | None) – The path to the code file to display.

  • code_string (str | None) – Alternatively, the code string to display.

  • language (str | None) – The programming language of the code. If not specified, it will be guessed from the file extension or the code itself.

  • formatter_style (str | type[Style]) – The style to use for the code highlighting. This can be either the name of a Pygments style or a custom Pygments style class. Defaults to "vim". A list of all available styles can be obtained by calling Code.get_styles_list(); style classes can be retrieved with Code.get_pygments_style().

  • tab_width (int) – The width of a tab character in spaces. Defaults to 4.

  • add_line_numbers (bool) – Whether to display line numbers. Defaults to True.

  • line_numbers_from (int) – The first line number to display. Defaults to 1.

  • background (Literal['rectangle', 'window']) – The type of background to use. Can be either "rectangle" (the default) or "window".

  • background_config (dict[str, Any] | None) – Keyword arguments passed to the background constructor. Default settings are stored in the class attribute default_background_config (which can also be modified directly). If fill_color is not specified, it is taken from the selected formatter_style.

  • paragraph_config (dict[str, Any] | None) – Keyword arguments passed to the constructor of the Paragraph objects holding the code, and the line numbers. Default settings are stored in the class attribute default_paragraph_config (which can also be modified directly). The color setting is ignored because colors are determined by the selected Pygments style.

Notes

Note

The Pygments style controls the colors of the rendered code, including its default foreground, background, and line number colors. To customize the color scheme, pass a custom Pygments style class via formatter_style rather than setting paragraph_config["color"]. See Creating own styles with Pygments for details.

For example, a built-in style can be subclassed without importing its style class directly:

from ... import *
from pygments.token import Comment

BaseStyle = Code.get_pygments_style("vim")

class CustomStyle(BaseStyle):
    background_color = "#1e1e1e"
    line_number_color = "#858585"
    styles = {
        **BaseStyle.styles,
        Comment: "italic #6a9955",
    }


class Example(Scene):
    def construct(self):
        rendered_code = Code(
            code_string="print('Hello, world!')  # greeting",
            language="python",
            formatter_style=CustomStyle,
        )

        self.add(rendered_code)
        self.wait(2)

Methods

Attributes

animation_manager

This mob's scene-owned animation manager.

basis

The Mob's orientation and scale, as a flattened 3x3 matrix of shape (*, 9).

casts_shadows

Whether this Mob's geometry blocks light on its way from a light source to another surface -- whether it casts a shadow.

children

The Mobs attached below this one, in attachment order.

closed_shell

Whether this Mob's triangles form a CLOSED shell -- every camera ray that enters the geometry crosses a second time on its way out.

draws_descendants

Whether get_render_primitives returns geometry belonging to this Mob's DESCENDANTS as well as its own.

forward

Get the direction the Mob is facing.

lifespan

This mob's [spawn, despawn) interval on its Scene timeline (a Lifespan).

location

The Mob's position in world space, shape (*, 3).

normalized_basis

The Mob's orientation with scale divided out, shape (*, 9).

parents

The Mobs this one is attached to, in attachment order.

receives_shadows

Whether this Mob's surfaces are darkened by shadows cast onto them.

right

Get the Mob's own rightward direction.

scale_coefficient

The Mob's scale along its own right, up and forward axes, shape (*, 3).

stroke_color

The color of the circuit's border stroke.

two_sided

Whether this Mob's geometry should be lit from whichever side the ray arrives on.

up

Get the Mob's own upward direction.

x

The Mob's x coordinate in world units, shape (*, 1).

xy

The Mob's x and y coordinates in world units, shape (*, 2).

y

The Mob's y coordinate in world units, shape (*, 1).

z

The Mob's z coordinate in world units, shape (*, 1).

z_index

Which of two exactly coplanar circuits draws in front (higher wins).