diff --git a/mvc/models.py b/mvc/models.py index 76ecd07..233e020 100644 --- a/mvc/models.py +++ b/mvc/models.py @@ -14,7 +14,7 @@ class VimModel: def __init__(self, displayLinesCount: int, displayColsCount: int): self.displayLinesCount = displayLinesCount self.displayColsCount = displayColsCount - self.showLineNumbers = False + self.showLineNumbers = True self.displayBuffer = [] # буфер для хранения всех строк self.dump = [] self.currentLine = 0 # текущий индекс строки @@ -157,7 +157,8 @@ class VimModel: self.commandBuffer.clear() match cmd: case "q": # Выход из программы - return ReturnCode.EXIT_CODE + if self.displayBuffer == self.dump: + return ReturnCode.EXIT_CODE case "q!": # Выход без сохранения return ReturnCode.EXIT_CODE case "wq!" | "x": # Записать в текущий файл + выйти @@ -288,6 +289,7 @@ class VimModel: with open(file_path, "w") as file: for line in self.displayBuffer: file.write(''.join(line) + '\n') + self.Dump() print(f"In file '{file_path}' written successfully.") except Exception as e: print(f"Error writing file: {str(e)}") diff --git a/mvc/views.py b/mvc/views.py index 6459dbd..7ea4fd3 100644 --- a/mvc/views.py +++ b/mvc/views.py @@ -34,6 +34,7 @@ class CursesAdapter: curses.curs_set(1) # Make cursor visible curses.start_color() curses.init_pair(1, curses.COLOR_MAGENTA, curses.COLOR_BLACK) # Фиолетовый текст на черном фоне + self.colorPair = curses.color_pair(1) def Refresh(self) -> None: """Apply changes""" @@ -84,7 +85,7 @@ class VimView: if show_line_numbers: line_number = f"{i + scrollY + 1:6} " # 6 символов на номер строки # Выводим номер строки фиолетовым цветом - self.curses_adapter.screen.addstr(i, 0, line_number, curses.color_pair(1)) + self.curses_adapter.screen.addstr(i, 0, line_number, self.curses_adapter.colorPair) # Выводим текст с учетом прокрутки и ширины нумерации visible_text_start = scrollX # Начало видимой части текста