комманда <S>, очищающая текущую строку и начинающая режим ввода с данной строки

master
serr 2025-02-04 18:46:16 +03:00
parent b37156ef79
commit 620efdbaaf
3 changed files with 8 additions and 0 deletions

View File

@ -27,6 +27,8 @@ def main():
controller.SetStrategy(NormalStrategy(model, view.curses_adapter))
case ReturnCode.SET_COMMAND_MODE:
controller.SetStrategy(CommandStrategy(model, view.curses_adapter))
case ReturnCode.SET_EDIT_MODE:
controller.SetStrategy(EditStrategy(model, view.curses_adapter))
case ReturnCode.EXIT_CODE:
break

View File

@ -62,6 +62,7 @@ class EditStrategy(Strategy):
def HandleInput(self, symbolCode) -> int:
"""Обработка ввода пользователя"""
match symbolCode:
case self.adapter.KEY_ESCAPE: return ReturnCode.SET_BASIC_MODE
case self.adapter.KEY_LEFT: self.model.MoveLeft()
case self.adapter.KEY_RIGHT: self.model.MoveRight()
case self.adapter.KEY_UP: self.model.MoveUp()

View File

@ -5,6 +5,7 @@ class ReturnCode(Enum):
EXIT_CODE = -100
SET_BASIC_MODE = -99
SET_COMMAND_MODE = -98
SET_EDIT_MODE = -97
class VimModel:
def __init__(self):
@ -51,6 +52,10 @@ class VimModel:
return ReturnCode.GOOD
case "q":
return ReturnCode.EXIT_CODE
case "S":
self.currentCol = 0
self.displayBuffer[self.currentLine] = []
return ReturnCode.SET_EDIT_MODE
def Enter(self) -> None:
# Разделяем текущую строку на две части