Example #1
0
def get_parser(view, **kwargs):
    if vu.is_xml(view):
        return etree.XMLParser(**kwargs)
    elif vu.is_html(view):
        return etree.HTMLParser(**kwargs)
    else:
        raise Exception(messages.NO_PARSER_FOR_SYNTAX % exalt.get_syntax(view))
    def run(self, edit):
        view = self.view

        if not vu.is_xml(view) or len(vu.get_content(view).strip()) == 0:
            return

        try:
            parser = parsetools.get_parser(view, encoding=encodings.UTF8)
            doc = parsetools.parse_string(view, parser, vu.get_content(view))

            if vu.is_xslt(view):
                version = doc.getroot().get(constants.VERSION)
                relax_ng = validator.get_xslt_relaxng_path(version)

                v = validator.get_validator_for_namespace(
                    isoschematron.RELAXNG_NS)(view, doc, relax_ng)

                invoke_async(lambda: v, 0)
            else:
                invoke_async(lambda: validator.try_validate(view, doc), 0)
        except etree.XMLSyntaxError as e:
            message = str(e)

            if constants.LXML_NO_DTD_FOUND not in message:
                error = parser.error_log.filter_from_errors()[0]
                return vu.show_error(view, message, error)
Example #3
0
    def run(self, edit):
        view = self.view

        if not vu.is_xml(view) or len(vu.get_content(view).strip()) == 0:
            return

        try:
            parser = parsetools.get_parser(view, encoding=encodings.UTF8)
            doc = parsetools.parse_string(view, parser, vu.get_content(view))

            if vu.is_xslt(view):
                version = doc.getroot().get(constants.VERSION)
                relax_ng = validator.get_xslt_relaxng_path(version)

                v = validator.get_validator_for_namespace(
                      isoschematron.RELAXNG_NS)(view, doc, relax_ng)

                invoke_async(lambda: v, 0)
            else:
                invoke_async(lambda: validator.try_validate(view, doc), 0)
        except etree.XMLSyntaxError as e:
            message = str(e)

            if constants.LXML_NO_DTD_FOUND not in message:
                error = parser.error_log.filter_from_errors()[0]
                return vu.show_error(view, message, error)
    def run(self, edit):
        view = self.view
        region = sublime.Region(0, view.size())

        formatted = formatter.format_region(view,
                                            region,
                                            xml_declaration=vu.is_xml(view))

        view.replace(edit, region, formatted)
Example #5
0
    def run(self, edit):
        view = self.view
        region = sublime.Region(0, view.size())

        formatted = formatter.format_region(
            view,
            region,
            xml_declaration=vu.is_xml(view)
        )

        view.replace(edit, region, formatted)