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