From 3db3150a7e221dbc2c6cbb1c8337c131b6f4aad2 Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Fri, 25 Oct 2024 12:33:07 -0700 Subject: [PATCH] feat: add input interruption from background threads --- aider/io.py | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/aider/io.py b/aider/io.py index 9aad37a93..4db74d378 100644 --- a/aider/io.py +++ b/aider/io.py @@ -345,6 +345,10 @@ class InputOutput: else: print() + def interrupt_input(self): + if self.prompt_session and self.prompt_session.app: + self.prompt_session.app.exit() + def get_input( self, root, @@ -399,17 +403,20 @@ class InputOutput: show = ". " try: - if self.prompt_session: - line = self.prompt_session.prompt( - show, - completer=completer_instance, - reserve_space_for_menu=4, - complete_style=CompleteStyle.MULTI_COLUMN, - style=style, - key_bindings=kb, - ) - else: - line = input(show) + try: + if self.prompt_session: + line = self.prompt_session.prompt( + show, + completer=completer_instance, + reserve_space_for_menu=4, + complete_style=CompleteStyle.MULTI_COLUMN, + style=style, + key_bindings=kb, + ) + else: + line = input(show) + except (EOFError, KeyboardInterrupt): + return "" except UnicodeEncodeError as err: self.tool_error(str(err)) return ""