feat: реализована вспомогательная функция получения строк исходного кода

This commit is contained in:
ElectronixTM
2025-03-31 12:58:37 +03:00
parent d8a51cc1cd
commit aeaede0097

View File

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