Example #1
0
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]
Example #2
0
 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."))