From e4eb489416aa916bd70857c2db97b1eb067f693c Mon Sep 17 00:00:00 2001 From: CSP Date: Mon, 17 Jul 2023 00:42:26 +0530 Subject: [PATCH] fixed auto pair completion bug for quotes --- .../components/editors/texteditor/text.py | 20 +++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/biscuit/core/components/editors/texteditor/text.py b/biscuit/core/components/editors/texteditor/text.py index 70a9a027..547ee4fe 100644 --- a/biscuit/core/components/editors/texteditor/text.py +++ b/biscuit/core/components/editors/texteditor/text.py @@ -66,6 +66,15 @@ def config_bindings(self): self.bind("", self.auto_completion.move_up) self.bind("", self.auto_completion.move_down) + # self.bind("", lambda e: self.complete_pair("}")) + # self.bind("", lambda e: self.complete_pair("]")) + # self.bind("", lambda e: self.complete_pair(")")) + + # self.bind("", lambda e: self.surrounding_selection("\'")) + # self.bind("", lambda e: self.surrounding_selection("\"")) + + # self.mark_set(tk.INSERT, "insert+1c") + def key_release_events(self, event): if event.keysym not in ("Up", "Down", "Return"): self.show_autocomplete(event) @@ -197,20 +206,19 @@ def show_autocomplete(self, event): def complete_pair(self, char): self.insert(tk.INSERT, char) self.mark_set(tk.INSERT, "insert-1c") - + def surrounding_selection(self, char): - line_text = self.get("insert linestart", tk.INSERT) - count_quotes = line_text.count(char) - - if count_quotes and count_quotes % 2 == 1: + next_char = self.get("insert", "insert+1c") + if next_char == char: self.mark_set(tk.INSERT, "insert+1c") + self.delete("insert-1c", "insert") return "break" if self.tag_ranges(tk.SEL): self.insert(char, tk.SEL_LAST) self.insert(char, tk.SEL_FIRST) return - + self.complete_pair(char) return "break"