feat: реализована вспомогательная функция получения строк исходного кода
This commit is contained in:
@ -19,11 +19,20 @@ def _get_source_lines(
|
|||||||
Собирает выборку из строк исходного кода так, чтобы она
|
Собирает выборку из строк исходного кода так, чтобы она
|
||||||
подходила по количесту строчек
|
подходила по количесту строчек
|
||||||
"""
|
"""
|
||||||
start = max(srcline - max_height//2, 1) + 1
|
# номер строки, с которого начнется отрисовка (НЕ ИНДЕКС)
|
||||||
|
start = max(srcline - max_height//2, 1)
|
||||||
|
# сколько строк, находится над "серединной"
|
||||||
upper_length = srcline - start
|
upper_length = srcline - start
|
||||||
end =
|
# номер строки, на которой закругляемся
|
||||||
|
end = min(
|
||||||
|
srcline + (max_height - upper_length - 1),
|
||||||
|
len(lines)
|
||||||
|
)
|
||||||
|
return SourceLines(
|
||||||
|
active=srcline,
|
||||||
|
begining_number=start,
|
||||||
|
lines=lines[start-1:end].copy()
|
||||||
|
)
|
||||||
|
|
||||||
def main(debugger: Debugger, srcfile: str):
|
def main(debugger: Debugger, srcfile: str):
|
||||||
layout = Layout()
|
layout = Layout()
|
||||||
@ -33,3 +42,11 @@ def main(debugger: Debugger, srcfile: str):
|
|||||||
)
|
)
|
||||||
rprint(layout)
|
rprint(layout)
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
with open("test.dasm", 'r') as f:
|
||||||
|
lines = f.read().split('\n')
|
||||||
|
srclines = _get_source_lines(8, lines, 7)
|
||||||
|
print(f"focus: {srclines.active}; start: {srclines.begining_number}")
|
||||||
|
print("_"*20)
|
||||||
|
print(*srclines.lines, sep="\n")
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user