Code¶
Qualified name: manim.mobject.text.code\_mobject.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)[source]¶
Bases:
VMobjectA highlighted source code listing.
Examples
Normal usage:
listing = Code( "helloworldcpp.cpp", tab_width=4, formatter_style="emacs", background="window", language="cpp", background_config={"stroke_color": WHITE}, paragraph_config={"font": "Noto Sans Mono"}, )
We can also render code passed as a string. As the automatic language detection can be a bit flaky, it is recommended to specify the language explicitly:
Example: CodeFromString ¶
from manim import * class CodeFromString(Scene): def construct(self): code = '''from manim import Scene, Square class FadeInSquare(Scene): def construct(self): s = Square() self.play(FadeIn(s)) self.play(s.animate.scale(2)) self.wait()''' rendered_code = Code( code_string=code, language="python", background="window", background_config={"stroke_color": "maroon"}, ) self.add(rendered_code)
class CodeFromString(Scene): def construct(self): code = '''from manim import Scene, Square class FadeInSquare(Scene): def construct(self): s = Square() self.play(FadeIn(s)) self.play(s.animate.scale(2)) self.wait()''' rendered_code = Code( code_string=code, language="python", background="window", background_config={"stroke_color": "maroon"}, ) self.add(rendered_code)- 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) – The style to use for the code highlighting. Defaults to
"vim". A list of all available styles can be obtained by callingCode.get_styles_list().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).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).
Methods
Get the list of all available formatter styles.
Attributes
alwaysCall a method on a mobject every frame.
animateUsed to animate the application of any method of
self.animation_overridescolordefault_background_configdefault_paragraph_configdepthThe depth of the mobject.
fill_colorIf there are multiple colors (for gradient) this returns the first one
heightThe height of the mobject.
n_points_per_curvesheen_factorstroke_colorwidthThe width of the mobject.
code- _original__init__(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)¶
Initialize self. See help(type(self)) for accurate signature.
- Parameters:
code_file (TypeAliasForwardRef('~manim.typing.StrPath') | None)
code_string (str | None)
language (str | None)
formatter_style (str)
tab_width (int)
add_line_numbers (bool)
line_numbers_from (int)
background (Literal['rectangle', 'window'])
background_config (dict[str, Any] | None)
paragraph_config (dict[str, Any] | None)