feat: добавлена фукнция подкрашивания текста

This commit is contained in:
ElectronixTM
2025-03-31 13:21:43 +03:00
parent aeaede0097
commit c556b67fbc

View File

@ -3,6 +3,8 @@ from dataclasses import dataclass
from rich import print as rprint
from rich.layout import Layout
from rich.live import Live
from rich.text import Text
from rich.console import Console
@dataclass
class SourceLines:
@ -10,6 +12,12 @@ class SourceLines:
begining_number: int
lines: list[str]
@dataclass
class RichedSourceLines:
active: int
begining_number: int
lines: list[Text]
def _get_source_lines(
srcline: int,
lines: list[str],
@ -33,7 +41,18 @@ def _get_source_lines(
begining_number=start,
lines=lines[start-1:end].copy()
)
def _source_lines_to_rich(srclines: SourceLines) -> RichedSourceLines:
riched_lines = RichedSourceLines(
active=srclines.active,
begining_number=srclines.begining_number,
lines=list(map(Text, srclines.lines))
)
active_index = srclines.active - srclines.begining_number
active_line = riched_lines.lines[active_index]
active_line.stylize('bold red')
return riched_lines
def main(debugger: Debugger, srcfile: str):
layout = Layout()
layout.split_column(
@ -43,10 +62,12 @@ def main(debugger: Debugger, srcfile: str):
rprint(layout)
if __name__ == "__main__":
console = Console()
with open("test.dasm", 'r') as f:
lines = f.read().split('\n')
srclines = _get_source_lines(8, lines, 7)
srclines = _get_source_lines(20, lines, 7)
riched = _source_lines_to_rich(srclines)
print(f"focus: {srclines.active}; start: {srclines.begining_number}")
print("_"*20)
print(*srclines.lines, sep="\n")
console.print(*riched.lines, sep="\n")