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