def tab_suggest(buff: Gtk.TextBuffer, listore=None): global store text = str( buff.get_text(buff.get_start_iter(), buff.get_iter_at_mark(buff.get_insert()), False)) completions = None for _ in range(5): try: completions = Script(text).complete() break except: return if len(completions) == 1: com = str(completions[0].name) text = buff.get_insert() start_it = buff.get_start_iter() text = str(buff.get_text(start_it, buff.get_iter_at_mark(text), False)) sp1 = text.split(' ')[-1].split('.') it1 = buff.get_iter_at_mark(buff.get_insert()) it2 = buff.get_iter_at_mark(buff.get_insert()) lin = it1.get_line() while 1: _k = it1.backward_char() if not _k: break #if sp1[-1] == it1.get_char(): # break if it1.get_line() < lin: it1.forward_char() break if it1.get_char().isspace(): it1.forward_char() break if '\n' in list(it1.get_char()): it1.forward_char() break if it1.get_char() != "_" and it1.get_char().isalnum() is False: it1.forward_char() break buff.delete(it1, it2) buff.insert_at_cursor(com) store = 0 elif completions is not None and len(completions) > 0: store = [x.name for x in completions if x]
def on_tv_paste_import_buffer_paste_done(self, buff: Gtk.TextBuffer, *args): text = buff.get_text(buff.get_start_iter(), buff.get_end_iter(), False) buff.delete(buff.get_start_iter(), buff.get_end_iter()) try: self.item_effects.import_armips_effect_code( self._get_current_effect(), text) self.module.mark_item_effects_as_modified() md = SkyTempleMessageDialog(MainController.window(), Gtk.DialogFlags.DESTROY_WITH_PARENT, Gtk.MessageType.INFO, Gtk.ButtonsType.OK, _("Patch successfully imported."), is_success=True) md.run() md.destroy() except Exception as err: display_error(sys.exc_info(), str(err), _("Error importing ASM code."))