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")