From 0dc325466efb1cfe33f2c8ce2a53f7f4dd5de301 Mon Sep 17 00:00:00 2001 From: serr Date: Wed, 5 Feb 2025 22:36:12 +0300 Subject: [PATCH] =?UTF-8?q?q=20->=20=D0=B2=D1=8B=D0=B9=D1=82=D0=B8,=20?= =?UTF-8?q?=D0=BD=D0=BE=20=D0=B5=D1=81=D0=BB=D0=B8=20=D1=84=D0=B0=D0=B9?= =?UTF-8?q?=D0=BB=20=D0=B1=D1=8B=D0=BB=20=D0=B8=D0=B7=D0=BC=D0=B5=D0=BD?= =?UTF-8?q?=D0=B5=D0=BD,=20=D1=82=D0=BE=20=D0=B2=D0=BE=D0=B7=D0=BC=D0=BE?= =?UTF-8?q?=D0=B6=D0=B5=D0=BD=20=D0=B2=D1=8B=D1=85=D0=BE=D0=B4=20=D0=B1?= =?UTF-8?q?=D0=B5=D0=B7=20=D1=81=D0=BE=D1=85=D1=80=D0=B0=D0=BD=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D1=8F=20=D1=82=D0=BE=D0=BB=D1=8C=D0=BA=D0=BE=20=D1=87?= =?UTF-8?q?=D0=B5=D1=80=D0=B5=D0=B7=20q!?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mvc/models.py | 6 ++++-- mvc/views.py | 3 ++- 2 files changed, 6 insertions(+), 3 deletions(-) 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 # Начало видимой части текста