From c556b67fbcd0372a411f81471251abae1c60bed9 Mon Sep 17 00:00:00 2001 From: ElectronixTM Date: Mon, 31 Mar 2025 13:21:43 +0300 Subject: [PATCH] =?UTF-8?q?feat:=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B0=20=D1=84=D1=83=D0=BA=D0=BD=D1=86=D0=B8=D1=8F?= =?UTF-8?q?=20=D0=BF=D0=BE=D0=B4=D0=BA=D1=80=D0=B0=D1=88=D0=B8=D0=B2=D0=B0?= =?UTF-8?q?=D0=BD=D0=B8=D1=8F=20=D1=82=D0=B5=D0=BA=D1=81=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/dbg_tui.py | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/src/dbg_tui.py b/src/dbg_tui.py index c335624..4d7416c 100644 --- a/src/dbg_tui.py +++ b/src/dbg_tui.py @@ -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")