Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 16 additions & 3 deletions manim/mobject/text/code_mobject.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,15 @@
from pygments import highlight
from pygments.formatters.html import HtmlFormatter
from pygments.lexers import get_lexer_by_name, guess_lexer, guess_lexer_for_filename
from pygments.styles import get_all_styles
from pygments.styles import get_all_styles, get_style_by_name

from manim.constants import *
from manim.mobject.geometry.arc import Dot
from manim.mobject.geometry.shape_matchers import SurroundingRectangle
from manim.mobject.opengl.opengl_compatibility import ConvertToOpenGL
from manim.mobject.types.vectorized_mobject import VGroup, VMobject
from manim.typing import StrPath
from manim.utils.color import WHITE, ManimColor
from manim.utils.color import BLACK, GRAY, WHITE


class Code(VMobject, metaclass=ConvertToOpenGL):
Expand Down Expand Up @@ -107,7 +107,7 @@ def construct(self):
_styles_list_cache: list[str] | None = None
default_background_config: dict[str, Any] = {
"buff": 0.3,
"fill_color": ManimColor("#222"),
"fill_color": None,
"stroke_color": WHITE,
"corner_radius": 0.2,
"stroke_width": 1,
Expand Down Expand Up @@ -203,6 +203,7 @@ def __init__(
paragraph_config = {}
base_paragraph_config = self.default_paragraph_config.copy()
base_paragraph_config.update(paragraph_config)
base_paragraph_config.update({"color": BLACK})

from manim.mobject.text.text_mobject import Paragraph

Expand All @@ -214,8 +215,16 @@ def __init__(
for start, end, color in color_range:
line[start:end].set_color(color)

selected_style = get_style_by_name(formatter_style)
if add_line_numbers:
base_paragraph_config.update({"alignment": "right"})

line_number_color: str = selected_style.line_number_color
if line_number_color == "inherit":
base_paragraph_config.update({"color": GRAY})
else:
base_paragraph_config.update({"color": line_number_color})

self.line_numbers = Paragraph(
*[
str(i)
Expand All @@ -239,6 +248,10 @@ def __init__(
background_config_base = self.default_background_config.copy()
background_config_base.update(background_config)

if background_config_base["fill_color"] is None:
background_color: str = selected_style.background_color
background_config_base.update({"fill_color": background_color})

if background == "rectangle":
self.background = SurroundingRectangle(
self,
Expand Down
Loading