from mvc.models import VimModel from mvc.views import VimView, CursesAdapter from mvc.controllers import Controller, ReturnCode from mvc.controllers import EditStrategy, CommandStrategy, NormalStrategy def main(): adapter = CursesAdapter() model = VimModel(adapter.lines, adapter.cols) view = VimView(adapter) # start mode - navigation mode strategy = NormalStrategy(model, adapter) controller = Controller(strategy) # Загрузка файла для редактирования file_path = "example.txt" # Укажите путь к файлу model.LoadFile(file_path) while True: view.Render(model.displayBuffer, model.currentLine, model.currentCol, model.scrollX, model.scrollY, model.ModeBar()) symbolCode = view.curses_adapter.GetChar() match controller.HandleInput(symbolCode): case ReturnCode.SET_BASIC_MODE: 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.curses_adapter.Cleanup() if __name__ == "__main__": main()