File size: 5,291 Bytes
dc00adb | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 | # 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)
Bases: [`VMobject`](manim.mobject.types.vectorized_mobject.VMobject.md#manim.mobject.types.vectorized_mobject.VMobject)
A highlighted source code listing.
### Examples
Normal usage:
```default
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:
* **Parameters:**
* **code_file** ([*StrPath*](manim.typing.md#manim.typing.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 calling
[`Code.get_styles_list()`](#manim.mobject.text.code_mobject.Code.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
[`Paragraph`](manim.mobject.text.text_mobject.Paragraph.md#manim.mobject.text.text_mobject.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).
### Methods
| [`get_styles_list`](#manim.mobject.text.code_mobject.Code.get_styles_list) | Get the list of all available formatter styles. |
|------------------------------------------------------------------------------|---------------------------------------------------|
### Attributes
| `animate` | Used to animate the application of any method of `self`. |
|-----------------------------|------------------------------------------------------------------------|
| `animation_overrides` | |
| `color` | |
| `default_background_config` | |
| `default_paragraph_config` | |
| `depth` | The depth of the mobject. |
| `fill_color` | If there are multiple colors (for gradient) this returns the first one |
| `height` | The height of the mobject. |
| `n_points_per_curve` | |
| `sheen_factor` | |
| `stroke_color` | |
| `width` | The 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** ([*StrPath*](manim.typing.md#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*)
#### *classmethod* get_styles_list()
Get the list of all available formatter styles.
* **Return type:**
list[str]
|