Ejemplo n.º 1
0
    def apply_query_check(self):
        buf = self.get_buffer()
        text = self.get_full_text()
        marks = buf.get_mark('err_l'), buf.get_mark('err_r')
        if all(marks):
            return False  # Already there, the error is already highlighted.

        try:
            parse_query(text)
            return True
        except QueryParseException as err:
            iter_l = buf.get_iter_at_offset(err.pos)
            iter_r = buf.get_iter_at_offset(err.pos)
            iter_l.backward_word_start()
            iter_r.forward_word_end()

            if GTK_SOURCE_AVAILABLE:
                buf.create_source_mark('err_l', 'error', iter_l)
                buf.create_source_mark('err_r', 'error', iter_r)
            else:
                buf.create_mark('err_l', iter_l, False)
                buf.create_mark('err_r', iter_r, False)

            buf.apply_tag_by_name('error', iter_l, iter_r)

            self.emit('parse-error', err.pos, err.msg)
            return False
Ejemplo n.º 2
0
 def _check_query_syntax(self, query_text):
     try:
         LOGGER.debug('Compiled Query: ' + parse_query(query_text))
         return None, -1
     except QueryParseException as error:
         logging.debug('Invalid Query Syntax: ' + str(error.msg))
         return error.msg, error.pos