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
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