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:
ManimCompatMobA 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 callingCode.get_styles_list(); style classes can be retrieved withCode.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). Iffill_coloris not specified, it is taken from the selectedformatter_style.paragraph_config (dict[str, Any] | None) – Keyword arguments passed to the constructor of the
Paragraphobjects holding the code, and the line numbers. Default settings are stored in the class attributedefault_paragraph_config(which can also be modified directly). Thecolorsetting 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_stylerather than settingparagraph_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_managerThis mob's scene-owned animation manager.
basisThe Mob's orientation and scale, as a flattened 3x3 matrix of shape
(*, 9).casts_shadowsWhether this Mob's geometry blocks light on its way from a light source to another surface -- whether it casts a shadow.
childrenThe Mobs attached below this one, in attachment order.
closed_shellWhether this Mob's triangles form a CLOSED shell -- every camera ray that enters the geometry crosses a second time on its way out.
draws_descendantsWhether
get_render_primitivesreturns geometry belonging to this Mob's DESCENDANTS as well as its own.forwardGet the direction the Mob is facing.
lifespanThis mob's [spawn, despawn) interval on its Scene timeline (a
Lifespan).locationThe Mob's position in world space, shape
(*, 3).normalized_basisThe Mob's orientation with scale divided out, shape
(*, 9).parentsThe Mobs this one is attached to, in attachment order.
receives_shadowsWhether this Mob's surfaces are darkened by shadows cast onto them.
rightGet the Mob's own rightward direction.
scale_coefficientThe Mob's scale along its own right, up and forward axes, shape
(*, 3).stroke_colorThe color of the circuit's border stroke.
two_sidedWhether this Mob's geometry should be lit from whichever side the ray arrives on.
upGet the Mob's own upward direction.
xThe Mob's x coordinate in world units, shape
(*, 1).xyThe Mob's x and y coordinates in world units, shape
(*, 2).yThe Mob's y coordinate in world units, shape
(*, 1).zThe Mob's z coordinate in world units, shape
(*, 1).z_indexWhich of two exactly coplanar circuits draws in front (higher wins).