From c0241f81c45d8f5a0d6aa3d77beb15af3d0d7cdb Mon Sep 17 00:00:00 2001 From: billyeatcookies Date: Fri, 22 Apr 2022 22:34:02 +0300 Subject: [PATCH] Bracket filling Fixes #5 --- src/components/text.py | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/src/components/text.py b/src/components/text.py index a8a8191..0461b15 100644 --- a/src/components/text.py +++ b/src/components/text.py @@ -33,7 +33,7 @@ def __init__(self, master, *args, **kwargs): def config_bindings(self): self.textw.bind("", self.enter_key_events) - self.textw.bind("", self.show_autocomplete) + self.textw.bind("", self.key_release_events) for btn in ["", "", "", "", "", "", ""]: self.textw.bind(btn, self.auto_completion.hide) @@ -52,6 +52,29 @@ def config_bindings(self): # self.textw.insert(tk.INSERT, "-") # return "break" + + def key_release_events(self, event): + self.show_autocomplete(event) + if self.update_current_line(): + print(event.keysym) + if event.keysym not in ["braceleft", "bracketleft", "parenleft"]: + return + + match self.current_line[-1]: + case "{": + self.textw.insert(tk.INSERT, "}") + self.textw.mark_set("insert", "insert-1c") + case "[": + self.textw.insert(tk.INSERT, "]") + self.textw.mark_set("insert", "insert-1c") + case "(": + self.textw.insert(tk.INSERT, ")") + self.textw.mark_set("insert", "insert-1c") + case _: + pass + + # case ":" | ",": + # self.textw.insert(tk.INSERT, " ") def move_to_next_word(self): self.textw.mark_set(tk.INSERT, self.textw.index("insert+1c wordend"))