feat: добавлена фукнция подкрашивания текста
This commit is contained in:
@ -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")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user